在日常网优工作中,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
------------------------------------------------------------------------------------------------------------------------
脚本执行后输出结果示例:

工具下载链接:
https://wwatz.lanzoum.com/b011m29o4f
密码:2zqb