Bonjour tout le monde,

J'ai cette requête

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
SELECT id,val,creation_date 
FROM T_TEST  
WHERE val = '0'
basé sur la table

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
CREATE TABLE dbo.T_TEST  
(  
  id int identity(1,1),  
  val varchar(10),  
  creation_date datetime  
)
Et j'ai créé les quatres index suivants :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
CREATE INDEX IXNC_val_id_creationdate ON T_TEST (val,id,creation_date) 
CREATE INDEX IXNC_val_creationdate_id ON T_TEST (val,creation_date,id)
CREATE INDEX IXNC_val_INCLUDE_id_creationdate ON T_TEST (val) INCLUDE (id,creation_date)  
CREATE INDEX IXNC_val_INCLUDE_creationdate_id ON T_TEST (val) INCLUDE (creation_date,id)
Parmi ces quatre index l'optimiseur a choisi IXNC_val_INCLUDE_id_creationdate lors de l'exécution de la requête.

L'analyse des statistiques ne me permet pas d'expliquer le choix l'optimiseur.

Voici un écran des statistiques

Avez-vous une idée sur ce choix ?

Merci de m'éclairer .