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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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 *************************
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 *************************
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 *************************
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...
>>
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...
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...
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...
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:%23eliOhNCJHA.4340@TK2MSFTNGP02.phx.gbl...
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...
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...
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.
> 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.
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 *************************
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...)
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 *************************
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 *************************