Ich bekomme etwas komisch. i lief diese sql:wie das passiert SP sql server
SELECT Id , GameTypeId , PlayerId , BetAmount , Profit ,
DateAndTime
FROM Results
WHERE DateAndTime >= DATEADD (DAY , -1 , SYSDATETIME())
AND
DateAndTime < SYSDATETIME()
ORDER BY DateAndTime ASC;
i Nicht-Cluster-Index auf der Datumsspalte
und die tatsächliche Anzahl der Zeilen, die Rückkehr ist
672 Reihe von 1.600.016 Zeilen in der Tabelle. (die geschätzte Reihe war 1)
nach, dass ich diese SQL-Rennen:
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;
und die tatsächlichen Ausführungsplan TABLE SCANE war !!! und die tatsächliche Anzahl der Zeilen, die zurückgegeben werden, ist
672 Zeile von 1600016 Zeilen in der Tabelle. (die geschätzte Zeile war 144000 r0ws)
einige 1 wissen, was hier passiert ist?!?!?
Führen Sie 'SET SHOWPLAN_TEXT ON' aus und geben Sie genaue Ausführungspläne für beide Abfragen ein. – Quassnoi
Am besten ersetzen Sie den letzten Satz der Frage durch "Weiß jemand, was hier passiert ist und wie man den Tabellenscan vermeidet?" –