相关疑难解决方法(0)

SQL server 如何在 Auto Create Statistics 设置为 OFF 的情况下生成查询计划

我想知道 SQL Server 如何生成“自动创建统计信息”设置为“关闭”的查询计划。

我在搜索答案时偶然发现了以下链接中的以下上下文(对不起,我搜索了,但找不到更好的)。

https://www.simple-talk.com/sql/performance/execution-plan-basics/

表变量从来没有生成统计信息,所以优化器总是假设它们只有一行,而不管它们的实际大小

虽然上面只适用于表变量,但我认为SQL Server会使用相同的原理来导出表的查询计划并决定做一个小测试。

我清除了 PROC 缓存并在具有 100 万条记录的表上运行以下查询

在此处输入图片说明

在此处输入图片说明

我的测试证明我错了,SQL Server 报告缺少统计数据(如预期),但是当没有统计数据时,估计行数为 31622(我预计为 1)。查询优化器是如何在没有统计信息的情况下得出这个值的?

sql-server execution-plan cardinality-estimates

6
推荐指数
1
解决办法
366
查看次数