空值和零值不是同一种“没有数据”。空值通常表示工具没有拿到可判断的输入,零值表示工具拿到了输入并算出结果为零。先看字段是否可计算,再决定是补条件重查,还是接受这个零并进入下一步。
假设你查询某个页面在指定条件下的表现,结果里出现空单元格和数字 0。两者可能都被界面显示成“没有”,但含义不同。
把两者混在一起,最容易犯的错是把空值当成“表现差”,然后去优化一个根本没被工具计算的对象。
同一个空或零,可能有两种解释:一是查询条件把对象排除了,二是对象本身在该条件下确实为零。区分它们,不靠猜,靠可复现的对照。
注意,查询量、抓取量或某项统计归零,不能单独证明你的处理正确。它也可能是统计窗口、过滤条件、对象范围或数据处理延迟造成的。归零只是一个信号,不是结论。
遇到空值和零值混在一起,按下面顺序走,能减少无效重查:
这个顺序的实际作用是:先排除不可计算,再判断零是否可信。只有确认零可信,才值得把它作为下一步优化的起点;否则你会在一个没有被计算的对象上反复调整。
假设你查询一个页面在某个条件下的表现,第一次返回空,第二次返回 0。先不要认定页面表现变差了。更合理的检查是:第一次的条件是否把该页面排除在外,第二次是否因为条件放宽而进入计算范围。若放宽后返回 0,说明输入已完整,零是可用的结果;若放宽后仍为空,说明问题在对象识别或字段适用性,继续调条件也不会得到有意义的零。
具体工具对空值和零值的显示方式、字段适用范围和重查限制,需要以该工具当前说明为准,不同工具并不一致。
如果证据指向条件限制,下一步是补全或放宽查询条件,再重查,直到返回可计算的结果。如果证据指向真实零值,下一步不是继续重查,而是把这个零当作已知结果,去检查它是否符合预期,再决定是否调整对象或策略。把空值当零值处理,会浪费排查时间;把零值当空值反复重查,同样会掩盖真实结果。区分这两者,本身就是一次有效的判断。