Nous avons un petit problème avec l'une de nos requêtes, qui est exécutée dans une application .Net (4.5) via System.Data.SqlClient.SqlCommand
.SQL Server ignorant l'index et effectue une analyse de table
Le problème est que la requête va effectuer une analyse de table qui est très lente. Ainsi, le plan d'exécution montre le balayage de table ici
Ainsi, les spectacles de texte, que le filtre à Termine.Datum et Termine.EndDatum provoquant le balayage de table. Mais pourquoi le serveur SQL ignore-t-il les index? Il existe deux index sur Termine.Datum et Termine.EndDatum. Nous avons également essayé d'ajouter un troisième avec Datum et EndDatum combinés. Les index sont tous les index non groupés et les deux champs sont DateTime.
De toute évidence, 'statistics 'est obsolète !! .. Les statistiques de mise à jour tentent à nouveau d'exécuter la requête –
Affichez également les détails de la requête et de l'index pour obtenir une réponse plus précise. Partagez le plan d'exécution ici https://www.brentozar.com/pastetheplan/ –
Deux index séparés n'aideront certainement pas puisque vous essayez deux requêtes de plage. L'indice combiné unique * pourrait être utile mais non garanti. –