在日常使用工具进行 MML 解析、参数核查过程中,大部分查询结果可以满足日常使用需求。
但在近期使用过程中,发现部分特殊 MML 查询场景下,原解析结果存在一个细节问题:
执行查询时携带的参数信息没有被完整保留下来。
针对该问题,已完成优化升级。
本次更新在原有解析结果基础上新增“执行命令”字段,用于记录完整的 MML 执行信息,在不影响原有功能的基础上,进一步完善解析结果的准确与完整性。
一、问题发现
在使用过程中发现,部分 MML 查询存在以下几类特殊情况。
场景1:部分 MML 命令存在必需查询参数
部分华为 MML 查询命令,在执行查询时需要指定对应参数,否则无法正常执行查询。
例如:
某些查询需要指定:
柜号; 框号; 槽号。
未指定相关参数时,查询无法正常执行;

指定对应参数后,才能返回查询结果。

场景2:同一个 MML 命令,有参数和无参数时返回结果不同
在实际查询过程中发现:
同一个 MML 命令,在不同执行条件下,返回结果可能存在差异。
例如:
不指定查询参数执行; 指定查询参数执行。
两种情况下,虽然执行的是同一个查询命令,但最终返回的数据内容不同。
未指定参数的查询结果(DSP RRU:;)

指定参数的查询结果(DSP RRU:CN=0,SRN=60,SN=0;)

场景3:同一个 MML 命令,不同参数查询结果表结构相同
除了有参数和无参数的区别外,还存在另一种情况:
同一个 MML 命令,在指定不同查询参数后执行,返回结果的数据内容不同,但是结果表结构保持一致。
参数A查询命令:DSP BRDDORMANCY:QUERYTYPE=BOARD,QUERYMODE=HISTORY;

参数B查询:DSP BRDDORMANCY:QUERYTYPE=BOARD,QUERYMODE=HISTORY,PWRSAVINGFEATURE=TIMING_DORMANCY;

可以看到,两次查询返回的数据内容存在区别,但字段结构保持一致。

二、问题影响
以上场景在普通查询中并不常见,但在后续数据库分析过程中,会带来一定影响。
工具解析后的数据会进入数据库,后续通过 SQL 进行参数核查、数据关联以及自动化处理。
在部分场景下:
1. 数据关联需要使用查询参数信息
部分参数核查过程中,需要使用查询参数中的信息作为关联条件。
例如:
柜号; 框号; 槽号。
这些信息需要参与后续数据表关联,用于定位具体数据。
2. 多参数查询结果需要进一步区分
由于不同参数查询后的结果表结构一致。
当多个查询结果同时进入数据库后,仅通过原有信息无法进一步判断:
当前数据对应哪一次执行; 执行时具体携带了哪些参数。
在后续 SQL 查询时,需要增加条件进行数据筛选,避免出现不符合预期的匹配结果。
这也是本次增加“执行命令”字段的主要原因。
三、优化方案
针对以上情况,本次 MML 解析功能进行了优化。
在解析结果中新增字段:
执行命令
该字段用于保存 MML 实际执行时的完整命令内容。
升级前:

升级后:

通过新增“执行命令”字段,可以完整保留查询执行过程中的参数信息,为后续 SQL 分析提供更加准确的数据依据。
四、为什么保留查询命令字段?
可能有人会疑问:
既然执行命令已经包含完整信息,为什么不直接删除查询命令字段,只保留执行命令?
原因是:
查询命令字段本身属于解析结果的一部分,同时工具已有功能中存在对该字段的依赖。
特别是在参数自动化查询功能中,查询命令字段已经作为原有数据结构使用。
如果直接替换原字段,会影响之前已经完成的功能。

因此,本次升级采用新增字段方式:
保留查询命令字段,保证已有功能正常使用; 已有脚本的执行不受影响(未引用查询命令字段的) 新增执行命令字段,补充完整执行信息; 新旧功能兼容,不影响原有使用流程。
性能方面已进行测试验证,解析效率未受到影响。以解压后约3.4G文件为例,与升级前相比,解析时间仍稳定在2分钟以内。

五、本次升级效果
本次优化主要针对特殊 MML 查询场景。
对于普通参数查询:
无需任何调整,原有使用方式保持不变。
对于存在多参数查询、需要进一步确认数据来源的场景:
可以通过新增的“执行命令”字段获取完整执行信息,并在后续 SQL 查询中进行精准筛选。
通过此次升级,MML 解析结果的信息维度进一步完善,为参数核查、自动化分析提供更加准确的数据基础。
如果你在使用过程中发现解析存在问题,欢迎及时反馈。工具持续优化,持续提升网优日常工作的效率。
更新提示:只需下载V1.2.2的exe文件替换之前的exe文件,其他文件无须重复下载。
夜雨聆风