J'ai utilisé ci-dessous query
dans l'un de mes stored procedures
SELECT officeid, rdate
FROM dbo.mytable
Where OfficeID = OfficeID
AND YEAR(h.rDate) = @year
AND MONTH(h.rDate) BETWEEN 1 AND 4
La requête ci-dessus n'est pas un SARG ( Search Argument)
en raison de l'utilisation de fuctions MONTH
y YEAR
en Where clause
. Cela conduit Index scan
pendant stored procedure
l'exécution. Existe-t-il un moyen de réécrire la requête ci-dessus pour traiter la logique ci-dessus (sans function
)
(P.S : rdate
es datetime
type de données et @year
es INT
type de données)