SQL Server 2000 - “实际行数”到底是啥?
Posted
技术标签:
【中文标题】SQL Server 2000 - “实际行数”到底是啥?【英文标题】:SQL Server 2000 - What really is the "Actual Number of Rows"?SQL Server 2000 - “实际行数”到底是什么? 【发布时间】:2009-01-12 20:08:39 【问题描述】:我有一个 SQL Server 2000 查询,它执行聚集索引扫描并显示大量行。对于我有 260.000 条记录的表,计划执行中显示的实际行数是...... 34.000.000。
这有意义吗?我误会了什么?
谢谢。
【问题讨论】:
【参考方案1】:执行计划上显示的值是基于统计的估计值。普通查询如:
SELECT COUNT(*) FROM Table
100% 准确您的交易*。
这是related question。
*边缘情况可能因事务隔离级别而异。
有关统计数据的更多信息:
Updating statistics How often and how (maintenance plans++)【讨论】:
【参考方案2】:如果您的行数超出查询计划,您需要更新统计信息,否则查询优化器可能会选择错误的计划。此外,聚集索引扫描几乎就像表扫描......尝试修复索引,以便获得聚集索引查找或至少索引查找。
【讨论】:
【参考方案3】:但是...如果是“实际行数”...为什么要基于统计数据?
我假设在构建查询计划时使用估计行数(并从当时的统计数据中收集),而实际行数是查询执行后添加的一些额外信息,用于用户调试和调整目的?
这不是吗?
【讨论】:
以上是关于SQL Server 2000 - “实际行数”到底是啥?的主要内容,如果未能解决你的问题,请参考以下文章
怎样把sql server2000数据库转化为sql server2000的数据库