SQL Server 查询调优与索引特性深度解析(上)
1. 自动统计更新阈值
对于非常大的表,默认的自动统计更新阈值(每 500 加上 20% 的更改)可能不足。例如,对于一个有 1 亿行的表,阈值是 20000500 次更改。若启用跟踪标志 2371,SQL Server 会随着表的增长逐渐降低百分比。详细信息可查看: http://blogs.msdn.com/b/saponsqlserver/archive/2011/09/07/changes-to-automatic-update-statistics-in-sql-server-traceflag-2371.aspx 。
2. 未知输入的基数估计
当统计信息可用且输入值已知时,SQL Server 会使用一些基数估计方法。但在某些情况下,会基于未知输入进行估计,具体情况如下:
- 没有可用的统计信息。
- 使用变量(而非参数),因为初始优化单元是整个批处理,变量值不可嗅探。
- 使用禁用嗅探的参数(例如指定 OPTIMIZE FOR UNKNOWN 提示)。
| 运算符 | 估计值 |
|---|---|
超级会员免费看
订阅专栏 解锁全文
9

被折叠的 条评论
为什么被折叠?



