先给结论:报告页数多于实际对象数量,通常不是“软件算错了”,而是统计口径与对象口径不一致。先确认报告里的“一条记录”到底是什么,再决定是改查询条件、改对象标识,还是在导出后去重。选错方向,去重会把真实问题一起删掉。
这个判断决定后续动作,不能跳过。把报告里的记录逐条对照实际对象,重点看两列:对象标识和产生记录的时间或触发条件。
可核对的证据是:随机抽十条记录,逐条回到实际对象上核对。如果十条里有八条能一一对应,说明是重复计数;如果对应关系本身就不稳定,说明口径不同,先别去重。
当报告的一条记录对应一次请求、一次加载或一次触发,而实际对象是一个页面、一个资源或一个功能模块时,页数虚高属于正常现象。
此时的动作是改查询,而不是改结果。在查询里按对象标识分组,对需要展示的指标选定聚合方式:计数类取去重计数,耗时类取分位值或均值。做完这一步再看数量,如果与实际对象数量接近,说明问题出在统计粒度。
这个动作的结果会直接影响下一步:如果分组后数量对上了,后续排查应基于聚合后的数据;如果分组后仍然偏多,说明对象标识本身不唯一,需要先统一标识。
另一种常见情况是,同一个实际对象在报告里有多个标识,比如带参数的地址、重定向后的地址、大小写或末尾斜杠不同的地址。报告把它们当成不同对象,数量自然偏多。
动作分三步:
假设一个页面存在带查询参数和不带参数两种形态,报告记为两条。归并规则是忽略指定参数。归并后数量减少一条。这只是一个假设例子,用于说明比较方法:先定义规则,再验证归并前后的对象是否真的等价,而不是看到数字变小就认为处理正确。
有些“重复”不能删。判断标准是:删除后是否会丢失独立的问题信息。
把这些例外单独列成一张清单,去重规则只作用于清单之外的记录。这样既能压低虚高的数量,又不会把需要跟进的差异一起删掉。
数量下降本身不能证明处理正确。请求量、记录数或某项统计归零,也可能是查询条件写错、时间范围收窄或过滤规则过严导致的。区分这两种解释的办法是:从去重后的结果里反向抽样,看被合并掉的记录是否确实指向同一个实际对象。
如果抽样发现被合并的记录指向不同对象,说明规则过宽,需要收紧;如果被合并的记录确实等价,且关键指标没有丢失,才可以把这个规则固定下来,用于后续同类报告。
最后一步是把确认后的口径写进查询或导出流程,而不是每次拿到报告再手工处理。具体软件的分组字段名称、去重函数和导出选项各不相同,需要以实际工具的当前文档为准核对,不要凭记忆套用。