【发布时间】:2011-01-13 11:53:21
【问题描述】:
你好,我得到了一些奇怪的东西。我运行了这个 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;
实际的执行计划是 TABLE SCANE !!!并且返回的实际行数是 表中 1600016 行中的 672 行。 (估计行是 144000 r0ws)
有些人知道这里发生了什么?!?!?
【问题讨论】:
-
请勿重复发帖
标签: sql-server database tsql sql-execution-plan