Answers:
如何确定统计数据的默认样本量?
我会引用Blogs.msdn的文章
自动更新统计算法:
因此,表行中的每500 + 20%变化都会触发自动更新统计信息。当然,我们在SQL 2012中有一个改进的算法,它是SQRT(1000 *表行),效果更好。
触发时,它将使用默认的采样率,这是算法计算采样率的方法。
1)如果表<8MB,它将使用全扫描更新统计信息。
2)如果表> 8MB,则遵循算法。随着表中行数的增加,它会降低采样率,以确保我们不会扫描太多数据。这不是固定值,而是在优化器的控制下。它也不是线性算法。
例如:如果我们有1,000,000行,它将使用30%的采样率,但是当行数增加到8,000,000时,它将降低到10%的采样率。这些采样率不受DBA控制,但由优化程序决定。
为了进一步了解,我建议您阅读
自动更新统计信息默认采样测试作者:乔·萨克(Joe Sack)
Erin Stellato 的更新统计数据的样本大小和持续时间