我们有一个包含超过 100.000.000 条记录的表,它是一个缓慢变化的维度,对于相同的持久键,字段 ValidFrom(在下面的屏幕截图中表示为 TaskDate)和 ValidUntil 决定记录在某个日期的有效性。
在尝试使用过滤索引、过滤统计信息、硬编码参数、动态 SQL 解决问题后......在一个特定问题上没有取得任何进展:优化器选择正确的索引,进行搜索,估计记录相对接近实际记录,但只有一个 CPU 线程读取某些内容。
不管我是用 MAXDOP 6 运行它,还是让它在所有可用的 CPU 上运行都没有关系。
我还能尝试什么?
第一次编辑:
一些评论集中在所涉及的数据大小上,而这不是问题所在。附加的是向上范围查询,它不仅仅是记录计数(最初用于演示惰性工作线程情况)。
这个惰性工作线程在读取时的直接后果是执行完全相同的键查找 - 只有一个线程正在接收记录并且有事情要做。
执行计划可以看这里: http: //pastebin.com/zJwZ56vh