小编Dua*_*ane的帖子

SQL Server:没有直方图的准确行估计?

我正在探索 SQL Server 中的优化器,特别是直方图,我看到了一些奇怪的结果。

如果我执行下面的查询,我知道字段上没有直方图,SQL Server 会输出一个行估计值,等于实际结果。如果我要在我使用的地方运行相同的查询DECLARE @i NUMERIC(19,2) = 30.0而不是常量WHERE [Rate] < @i,那么估计值94.8与我对显示的查询的期望一样,因为数据库没有关于该字段的统计信息。

查询估计

所以我的问题是为什么 SQL Server 在没有该字段的统计信息时输出正确的结果?


AUTO_CREATE_STATISTICS按照我的回答所示关闭时,我在行估计中遇到了一些奇怪的行为。

表上存在一个约束,限制[Rate]在 之间6.5 - 200.0。估计取决于如果在实验时有很大的差异>,使用或>=以及24.064格式的查询,其中谓词表示隐式转换输入money

对于WHERE [Rate] > 6.5估计值28.44,然后以高于 的速率停止100

对于WHERE [Rate] > 7排除小数的地方,28.44估计一直运行到255

对于WHERE [Rate] >= 6.528.44估算使用长达约100然后改到17.7764多达1000之前估计下降到1。

所以似乎没有太多的一致性。似乎 …

sql-server optimization

7
推荐指数
1
解决办法
500
查看次数

标签 统计

optimization ×1

sql-server ×1