Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

FORCE ORDER

5 réponses
Avatar
Jean-Nicolas BERGER
Bonjour,
Sous SQL Server 2005 SP2, il m'arrive de temps en temps (encore une fois
hier) de tomber sur une instruction SELECT pas trop complexe (4 à 5
jointures INNER JOIN) avec des tables moyennement volumineuses (de quelques
milliers d'enreg à 1 ou 2 millions) qui se met à prendre 30 secondes voire
plus en durée d'exécution.
Après analyse, l'ordre des jointures ne me parait pas incorrect et, en
dernier ressort, je positionne un OPTION (FORCE ORDER), et là, miracle, la
durée retombe en dessous de la seconde !
Quelqu'un saurait-il me dire pourquoi un simple FORCE ORDER semble
nécessaire pour que la détermination du plan d'exécution ne parte pas en
vrille ?
Merci d'avance pour vos retours d'expérience.
JN.

5 réponses

Avatar
Fred BROUARD
Jean-Nicolas BERGER a écrit :
Bonjour,
Sous SQL Server 2005 SP2, il m'arrive de temps en temps (encore une fois
hier) de tomber sur une instruction SELECT pas trop complexe (4 à 5
jointures INNER JOIN) avec des tables moyennement volumineuses (de quelques
milliers d'enreg à 1 ou 2 millions) qui se met à prendre 30 secondes voire
plus en durée d'exécution.
Après analyse, l'ordre des jointures ne me parait pas incorrect et, en
dernier ressort, je positionne un OPTION (FORCE ORDER), et là, miracle, la
durée retombe en dessous de la seconde !
Quelqu'un saurait-il me dire pourquoi un simple FORCE ORDER semble
nécessaire pour que la détermination du plan d'exécution ne parte pas en
vrille ?
Merci d'avance pour vos retours d'expérience.
JN.




depusi quand vos index n'ont-il pas été défragmenté ? Quel sont les
dates de calculs des dernières statistiques ??

A +

--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************
Avatar
Jean-Nicolas BERGER
>>



depusi quand vos index n'ont-il pas été défragmenté ? Quel sont les dates
de calculs des dernières statistiques ??



Bonjour Fred,

Le calcul des statistiques est automatique (et assynchrone).
Et pour ce qui est des indexes et de leur fragmentation, j'ai un REBUILD des
CLUSTERED au moins une fois par jour. Et dans le cas d'espèce de ce test,
j'ai essayé de forcer une reconstruction des indexes sans que cela ne change
grand chose aux performances.

Le plus étonnant est en fait que l'optimiseur parte en vrille et que le fait
de le brider avec le FORCE ORDER améliore les performances avec un ratio
d'au moins 100.!!!

JN.

PS : Petite correction : je ne suis pas en SP2 mais en Cumulative patch 6
(post SP2). Mais ces symptômes avaient de mémoire déjà été observés à
l'époque où nous étions en SP1...
Avatar
Pascal Deliot
La remise a jour automatique des statistiques peut ne pas être suffisante.
Essayez des les reinitialiser avec un echantillon complet.

"Jean-Nicolas BERGER" <noreply> a écrit dans le message de
news:%




depusi quand vos index n'ont-il pas été défragmenté ? Quel sont les dates
de calculs des dernières statistiques ??



Bonjour Fred,

Le calcul des statistiques est automatique (et assynchrone).
Et pour ce qui est des indexes et de leur fragmentation, j'ai un REBUILD
des CLUSTERED au moins une fois par jour. Et dans le cas d'espèce de ce
test, j'ai essayé de forcer une reconstruction des indexes sans que cela
ne change grand chose aux performances.

Le plus étonnant est en fait que l'optimiseur parte en vrille et que le
fait de le brider avec le FORCE ORDER améliore les performances avec un
ratio d'au moins 100.!!!

JN.

PS : Petite correction : je ne suis pas en SP2 mais en Cumulative patch 6
(post SP2). Mais ces symptômes avaient de mémoire déjà été observés à
l'époque où nous étions en SP1...



Avatar
Jean-Nicolas BERGER
> La remise a jour automatique des statistiques peut ne pas être suffisante.
Essayez des les reinitialiser avec un echantillon complet.



Je vais essayer de coupler ça à ma procédure de reconstruction des indexes,
et je vous tiens au courant.
Merci.
JN.
Avatar
Fred BROUARD
Jean-Nicolas BERGER a écrit :
La remise a jour automatique des statistiques peut ne pas être suffisante.
Essayez des les reinitialiser avec un echantillon complet.



Je vais essayer de coupler ça à ma procédure de reconstruction des indexes,
et je vous tiens au courant.
Merci.
JN.




Et il faut reconstruire aussi les index non cluster .

inspirez vous de la procédure que j'ai mise en ligne (et qu'il faudrait
adapter pour 2005, mais elle marche quand même bien...)

http://sqlpro.developpez.com/optimisation/MaintenanceIndex/

A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************