Hello
Des différents possibilité pour mettre à jour les statistiques, est-ce qu'il y a un intérêt à ne pas utiliser systématiquement la plus complète : update all statistics ?
Hello
Des différents possibilité pour mettre à jour les statistiques, est-ce qu'il y a un intérêt à ne pas utiliser systématiquement la plus complète : update all statistics ?
Oui, des raisons de perf. Le update all statistiques va faire un histogramme pour toutes les colonnes, ce qui est fort coûteux en terme de ressouces.
Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2
N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD
Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !
Oui je suis d'accord mais si on a les ressources est-ce que l'update all ne garantit pas de meilleurs choix de la part de l'optimiseur ?
Oui, il garantit les statistics les plus fournies.
Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2
N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD
Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !
ok mais
dans le cas où j'ai une appli qui utilise beaucoup de requêtes dynamiques (pas de proc), le update all va avoir tendance à générer plus de combinaisons de plans et donc ralentir l'exécution globale des requêtes.
C'est en effet possible. Comme souvent dans notre métier il est difficile de donner une réponse catégorique - il y a trop souvent des élements spécifiques au site qui détermine la meilleurs solution.
Personellement je standardise sur "update index statistics", et (en 12.5.x en tout cas), je positionne les paramètres 'histogram tuning factor' à 10, et 'number of histogram steps' à 50. Ces paramètres permettent à Sybase de génèrer un nombre variables de "step" pour les histogrammes (entre 50 et 500 steps, en fonction de la structure des données.)
Michael
Michael Peppler
Membre de TeamSybase - www.teamsybase.com
"A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson
Personnellement, je suis ~ mpeppler.
Jamais de update all car excessif...
Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2
N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD
Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !
OK pour ne pas mettre un update all par défaut.
Dans un cas, l'optimiseur n'arrive pas à choisir le bon plan, dbcc tracecon(3604,302,310) pour s'en assurer.
Plutôt que de faire un update all (sur 1 table de 15millions de ligne), je vais voir en utilisant les plans abstraits pour résoudre ce problème.
Et puis l'update all, en générant plus de statistiques, va offrir à l'optimiseur beaucoup plus de choix pour sélectionner le meilleur plan d'exécution. Comme l'application utilise beaucoup de requêtes dynamiques, au final, cela ne m'apporterait plus d'inconvénient que d'avantage.
Il faut aussi s'assurer que les stats sont bien à jour, et peut-être changer le nombre de step pour l'histogramme.
Michael Peppler
Membre de TeamSybase - www.teamsybase.com
"A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager