|
在日常网优工作中,LTE异频切换参数核查几乎是绕不开的“基本功”。 尤其是A3 / A4 / A5事件,大家都熟,但真正落到参数层面,经常会遇到几个典型痛点: 那些你一定遇到过的痛点 1. 参数分散,查询繁琐
在网管上,切换事件和门限参数是分开查询的: 一条命令几十个字段,想找3个关键参数,基本靠“眼力+经验”。 2. 逻辑关系不直观 比如很多人知道: - A3:邻区优于服务小区
- A4:邻区超过门限
- A5:双门限
但在LTE异频场景中: A5_2 的门限其实用的是 A4 的RSRP门限! 这点如果不结合参数,很容易理解偏差。 3. Excel也救不了复杂关联 就算导出到Excel: - 还是要查找、筛选、比对
- 参数之间没有“结构化关联”
- 分析效率低、容易遗漏
这个脚本解决了什么?这套SQL脚本的核心思路是: 把“事件 + 参数 + 门限”全部结构化整合到一张表里 实现效果就是: - 每个异频频点一行
- 对应事件类型(A3/A4/A5)
- 所有关联门限参数集中展示
- 参数之间关系一目了然
脚本带来的几个关键提升1. 一次查询,全量结果通过以下几类数据关联: - 小区基础信息
- 异频邻区
- 切换参数组
- A3 / A4 / A5门限
最终汇总到一张结果表 2. 事件与门限“强绑定” 例如: | 事件 | 对应门限 | A3 | A1/A2 + Offset | A4 | A1/A2 + 覆盖RSRP门限 | A5 | A1/A2 + 覆盖RSRP门限 |
特别是: A5_2 = A4的RSRP门限,在结果中直接体现,不再需要“脑补关系”。 3. 支持按条件精准筛选AND "异频切换参数组ID" = 0-- AND "异频频点" = '38400'另外脚本本身就支持整网和指定条件批量查询 4. 重复字段 ≠ 冗余,而是“可读性优化”脚本中你会发现: A4 和 A5 的A1/A2门限被重复展示 这其实是刻意设计: 查看A4 → 只看A4相关列 查看A5 → 不用再跳表找A1/A2 本质是“以人读数据”为中心,而不是以表结构为中心 实际使用流程(已工具化)整个流程已经打通: 1️⃣ 执行 MML 命令 (脚本头已给出,在集中任务管理中查询导出) 2️⃣ 解析入库 (MML 解析更新,仅涉及脚本中这几条命令的结果,几秒完成) 3️⃣ 加载脚本 (脚本库目录选择 JSON 文件名,双击分组名、脚本) 4️⃣ 执行 SQL 脚本 (支持整网或指定条件查询) 5️⃣ 执行结果处理 ,表格右键,可直接: - 复制数据(含/不含表头)
- 导出 Excel / CSV / TXT 到本地
思维升级:从“表格处理”到“数据建模”很多人习惯: 导出 → Excel → 筛选 → 查找 但本质上这些数据是:结构化数据 所以更优解应该是: 总结一句话所有的出发点,是用“数据库思维”驱动数据分析。 本身就是结构化数据, - 在数据库中用SQL处理,
- 远比在Excel中高效、灵活、可扩展。
---------------------------------------------------------------------------------------------------------------------------------------------------------- 完整的SQL脚本: /* 脚本中所涉及查询命令 LST EUTRANINTERNFREQ:; LST ENODEBFUNCTION:; LST CELL:; LST INTERFREQHOGROUP:; 该脚本的作用:把4G异频切换事件及门限规范化 */
--统计小区基础信息 DROP TABLE if EXISTS temp_小区信息基础表_LTE; create TEMPORARY table temp_小区信息基础表_LTE as select distinct a.网元名 ,a.eNodeB标识 as ENB,b.小区名称 ,b.小区标识,b.本地小区标识,b.频带, b.下行带宽,b.小区发送和接收模式 通道数,a.eNodeB标识*256+b.小区标识 as ECI,'460-00-' || a.eNodeB标识 || '-' || b.小区标识 as ECGI from 查询eNodeB功能配置 a inner join 查询小区静态参数 b on a.网元名 = b.网元名; create TEMPORARY table temp_小区信息基础表_LTE_筛选 as SELECT * FROM temp_小区信息基础表_LTE where 1=1 and _查询条件_ in ({aa_str}) ; --统计切换事件类型 DROP TABLE if EXISTS temp_统计切换事件类型及参数组ID; CREATE TEMPORARY TABLE temp_统计切换事件类型及参数组ID as SELECT c."网元名","小区名称",ENB,"小区标识",c."本地小区标识","频带","下行带宽","ECI","ECGI", "下行频点" as 异频频点,"异频切换触发事件类型",b."异频切换参数组ID" FROM 查询EUTRAN异频相邻频点 a INNER JOIN 查询异频切换参数组 b on a."网元名" = b."网元名" AND a."本地小区标识" = b."本地小区标识" INNER JOIN temp_小区信息基础表_LTE_筛选 c on a."网元名" = c."网元名" and a."本地小区标识" = c."本地小区标识" ; --整理A3相关事件 DROP TABLE if EXISTS temp_整理A3相关事件; CREATE TEMPORARY TABLE temp_整理A3相关事件 as SELECT"网元名","本地小区标识","异频切换参数组ID","基于A3的异频A1 RSRP触发门限(dBm)", "基于A3的异频A2 RSRP触发门限(dBm)","异频A3偏置(0.5dB)", 'A3事件' AS 切换事件类型 FROM 查询异频切换参数组 ; --整理A4相关事件 DROP TABLE if EXISTS temp_整理A4相关事件; CREATE TEMPORARY TABLE temp_整理A4相关事件 as SELECT"网元名","本地小区标识","异频切换参数组ID","基于A4A5异频A1 RSRP触发门限(dBm)", "基于A4A5异频A2 RSRP触发门限(dBm)","基于覆盖的异频RSRP触发门限(dBm)" AS '基于覆盖的异频RSRP触发门限(dBm)-A4', 'A4事件' AS 切换事件类型 FROM 查询异频切换参数组 ;
--整理A5相关事件 DROP TABLE if EXISTS temp_整理A5相关事件; CREATE TEMPORARY TABLE temp_整理A5相关事件 as SELECT"网元名","本地小区标识","异频切换参数组ID","基于A4A5异频A1 RSRP触发门限(dBm)", "基于A4A5异频A2 RSRP触发门限(dBm)", "异频切换A5 RSRQ门限1(0.5dB)" AS "异频切换A5 RSRQ门限1(0.5dB)-A5_1", "基于覆盖的异频RSRP触发门限(dBm)" AS '基于覆盖的异频RSRP触发门限(dBm)-A5_2', 'A5事件' AS 切换事件类型 FROM 查询异频切换参数组 ;
--汇总事件到一张表中 DROP TABLE if EXISTS TEMP_汇总事件到小区; CREATE TEMPORARY TABLE TEMP_汇总事件到小区 AS SELECT a.*, "基于A3的异频A1 RSRP触发门限(dBm)","基于A3的异频A2 RSRP触发门限(dBm)","异频A3偏置(0.5dB)", c."基于A4A5异频A1 RSRP触发门限(dBm)" AS '基于A4A5异频A1 RSRP触发门限(dBm)-A4_A1', c."基于A4A5异频A2 RSRP触发门限(dBm)" AS '基于A4A5异频A2 RSRP触发门限(dBm)_A4_A2', "基于覆盖的异频RSRP触发门限(dBm)-A4", d."基于A4A5异频A1 RSRP触发门限(dBm)", d."基于A4A5异频A2 RSRP触发门限(dBm)", "异频切换A5 RSRQ门限1(0.5dB)-A5_1","基于覆盖的异频RSRP触发门限(dBm)-A5_2" from temp_统计切换事件类型及参数组ID a LEFT JOIN temp_整理A3相关事件 b on a."网元名" = b."网元名" and a."本地小区标识" = b."本地小区标识" and a."异频切换触发事件类型" = b.切换事件类型 and a."异频切换参数组ID" = b."异频切换参数组ID" LEFT JOIN temp_整理A4相关事件 c on a."网元名" = c."网元名" and a."本地小区标识" = c."本地小区标识" and a."异频切换触发事件类型" = c.切换事件类型 and a."异频切换参数组ID" = c."异频切换参数组ID" LEFT JOIN temp_整理A5相关事件 d on a."网元名" = d."网元名" and a."本地小区标识" = d."本地小区标识" and a."异频切换触发事件类型" = d.切换事件类型 and a."异频切换参数组ID" = d."异频切换参数组ID" ;
SELECT * FROM TEMP_汇总事件到小区 WHERE 1=1 -- AND "异频频点" = '38400' --可以在条件中取指定异频频点 AND "异频切换参数组ID" = 0 --可以在条件中指定参数组ID ---------------------------------------------------------------------------------------------------------------------------------------------------------- 脚本执行后输出结果
|