SQL Server, en essayant d'optimiser ma requête, en utilisant TOP, supérieur à et order par?

C'est ma requête

SELECT TOP 3 guid FROM eventlog WHERE (guid > 2291399 AND batch_uid = -1) ORDER BY date_created ASC 

Je cours ce qquery dans un slider de procédure stockée environ 25 fois. Ce qui provoque le SP à courir pendant 10 secondes plus.

Quelqu'un peut-il me conseiller où je pourrais optimiser ma requête?

J'ai essayé les index suivants

 CREATE INDEX eventlog_003 ON eventlog (batch_uid,date_created,guid); CREATE INDEX eventlog_004 ON eventlog (date_created,guid); CREATE INDEX eventlog_005 ON eventlog (guid,batch_uid,date_created ASC); CREATE INDEX eventlog_006 ON eventlog (batch_uid,date_created ASC,guid); 

Voici quelques statistics.

entrez la description de l'image ici

Il semble que la plupart du time est passé à faire cette parsing d'index. J'ai trouvé quelques infos dans cette question . En bref, il est préférable d'get la database pour essayer de faire une search d'index plutôt qu'une parsing (une parsing nécessitant la vérification des champs de la table qui ne sont pas dans l'index). Il semblerait que l'une des façons de réduire le time nécessaire serait de créer un index ascendant sur guid , batch_uid et date_created .