|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Futur Membre du Club
![]() Inscription : novembre 2006 Messages : 41 ![]() |
Bonjour,
J'ai un select qui met beaucoup de temps à s'executer : j'ai donc commencé par faire un count(*) avant de lister les champs dont j'ai besoin et voici le résultat sur une petite période : Code :
Que faire d'autre SVP ? Merci de votre aide ! Code :
|
||||
|
|
00
|
|
|
#2 |
![]() ![]() |
Il est clair que sans index sur odmdhcreat ASE doit faire un table scan.
Avec un index il pourra (probablement fortement) réduire le nombre d'IO (suivant la taille de la table, et sa structure il pourrait s'agir d'un facteur 10 voir 100 ou plus...). Il n'y a à priori pas vraiment d'autre optimization possible pour cette requête. 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 |
|
|
00
|
|
|
#3 |
|
Membre à l'essai
![]() Inscription : juillet 2007 Messages : 47 ![]() |
Merci pour la réponse !
Je me pose justement des questions sur la mise en place des index : la base de données utilisée dans ma requête (select) est une copie à J-1 de celle de production qui ne comporte par d'index sur la colonne qui m'interesse dans ma clasue where (odmdhcreat). Il faudrait donc que j'ajoute un index sur la base de production si je souhaite améliorer les performances de ma requête : est-ce que cela aura un impact nuisible sur l'utilisation de la base de production (ralentissement) car j'ai lu sur le site de Sybase que : L'ajout d'index soigneusement choisis dans une base de données bien conçue permet d'obtenir d'excellentes performances avec Adaptive Server. Celles-ci peuvent cependant baisser si vous ajoutez des index sans avoir procédé à une analyse adaptée. De plus, les insertions, mises à jour et suppressions peuvent prendre plus de temps si un grand nombre d'index doit être mis à jour. D'une manière générale, n'ajoutez pas d'index qui ne se justifie pas. http://manuals.sybase.com/onlinebook...T_RESTART_N%25 Comment le savoir ? D'une façon générale, faut-il créer des index sur toutes les clés primaires et étrangères ? Merci encore ! |
|
|
00
|
|
|
#4 |
![]() ![]() |
L'ajout d'un index implique plus de travail lorsque la table est modifiée (insert/update/delete) puisque ce nouvel index doit être mis à jour.
Une solution alternative serait d'inclure la création de l'indexe dans le processus de copie de la J-1 (donc après le load database) 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 |
|
|
00
|
|
|
#5 |
|
Membre à l'essai
![]() Inscription : juillet 2007 Messages : 47 ![]() |
Oui effectivement je vais faire des tests poour voir si cela accélère les performances des traitements (select) et en tenant compte du temps de création journalier de cet index.
|
|
|
00
|
|
|
#6 |
|
Membre à l'essai
![]() Inscription : juillet 2007 Messages : 47 ![]() |
Je ne trouve pas l'endoit en bas de page où cocher l'option "Résolu" pour cette discussion...
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com