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
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.
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)
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![]()
Partager