相关疑难解决方法(0)

>= 和 > 的基数估计,用于步骤内统计值

我试图了解 SQL Server 如何尝试估计 SQL Server 2014 中的“大于”和“大于等于”where 子句。

我想我确实了解基数估计,例如,如果我这样做

    select * from charge where charge_dt >= '1999-10-13 10:47:38.550'
Run Code Online (Sandbox Code Playgroud)

基数估计是 6672,可以很容易地计算为 32(EQ_ROWS) + 6624(RANGE_ROWS) + 16 (EQ_ROWS) = 6672(下面截图中的直方图)

在此处输入图片说明

但是当我这样做时

    select * from charge where charge_dt >= '1999-10-13 10:48:38.550' 
Run Code Online (Sandbox Code Playgroud)

(将时间增加到 10:48 所以它不是一步)

估计是 4844.13。

那是怎么计算的?

performance sql-server sql-server-2014 cardinality-estimates performance-tuning

10
推荐指数
2
解决办法
538
查看次数