我有一个SQL Server 2000查询,它执行聚簇索引扫描并显示非常多的行。对于我有260.000条记录的表,计划执行中显示的实际行数是...... 34.000.000。
这有意义吗?我误解了什么?
感谢。
答案 0 :(得分:3)
执行计划中显示的值是基于统计数据的估算值。普通查询如:
SELECT COUNT(*) FROM Table
对您的交易100%准确*。
*边缘情况可能因事务隔离级别而异。
有关统计数据的更多信息:
答案 1 :(得分:0)
如果您的行计数不在查询计划中,则需要更新统计信息,否则查询优化器可能会选择错误的计划。此外,聚簇索引扫描几乎就像表扫描...尝试修复索引,以便获得聚簇索引查找或至少索引搜索。
答案 2 :(得分:0)
但是......如果它是“实际行数”......为什么基于统计数据?
我假设在构建查询计划时使用了估计行数(并且从当时的统计信息中收集),并且实际行数是查询执行后添加的一些额外信息,用于用户调试和调整目的?
这不对吗?