我得到一些奇怪的东西。我运行了这个sql:
SELECT Id , GameTypeId , PlayerId , BetAmount , Profit ,
DateAndTime
FROM Results
WHERE DateAndTime >= DATEADD (DAY , -1 , SYSDATETIME ())
AND
DateAndTime < SYSDATETIME ()
ORDER BY DateAndTime ASC;
我在日期列上有非聚集索引
返回的实际行数是
表中 1600016 行中的 672 行。
(预计行数为 1)
之后我运行了这个sql:
declare @d DATETIME2(7)
set @d = DATEADD (DAY , -1 , SYSDATETIME ())
declare @d2 DATETIME2(7)
set @d2 = SYSDATETIME ()
SELECT Id , GameTypeId , PlayerId , BetAmount , Profit ,
DateAndTime
FROM Results
WHERE DateAndTime >= @d
AND
DateAndTime < @d2
ORDER BY DateAndTime ASC;
实际的执行计划是表扫描!
返回的实际行数是
表中 1600016 行中的 672 行。
(估计行数为 144000 r0ws)
有人知道这里发生了什么吗?!?!?