Bonjour,

J'ai une requête qui, lorque je l'analyse avec SET STATISTICS IO ON, me fait beaucoup trop de logical reads (plus de 25000) sur maTableA.

Voici la requête, sans le SELECT

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
FROM dbo.maTableA(nolock)
INNER JOIN dbo.maTableB (nolock) ON maTableA.ID_A = maTableB.ID_A
WHERE maTableA.maColonne1 = 1
AND maTableA.maColonne2 < GETDATE()
AND (maTableA.maColonne3 < GETDATE() OR maTableA.maColonne3 IS NULL)
AND maTableA.maColonne4 NOT IN (maListeDeValeurs)
Pour l'optimiser, je décide donc de faire un index non cluster sur maTableA avec un FILLFACTOR à 50 (beaucoup d'insert et d'update sur maTableA), et PAD_INDEX à ON, qui porte sur les colonnes ID_A, maColonne1 , maColonne2, maColonne3 et maColonne4.
Malheureusement, j'ai toujours le même nombre de logical reads sur maTableA, c'est donc que je n'ai pas compris grand chose à la conception d'indexes ...

Quelqu'un peut-il m'expliquer ?

En vous remerciant