|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() Inscription : octobre 2005 Messages : 79 ![]() |
Bonjour,
J'explique un peu le contexte, j'ai réalisé une chaîne de traitement (korn shell / transact sql) pour éditer des statistiques téléphoniques (durée d'appel, temps d'attente, etc ...). Les tables à partir desquelles je m'appuie pour faire ces statistiques, sont alimentées par un bandeau téléphonique développé par une société externe. Ce bandeau s'appuie sur des serveurs de téléphonie CTI et SVI. Deux tables sont alimentées par ce bandeau : - une table stocke le début et la fin de connexion (TLM_CNX), - une autre table stocke les activitées (TLM_ACTIVITE) entre le début et la fin de connexion. Les enregistrements de date sont basés sur l'horloge des serveurs CTI et SVI, non sur le serveur ASE. Et si les serveurs CTI et SVI on un décalage d'horloge mes statistiques sont fausses et erronées. Pour palier à ce problème et en attendant de régler le problème de fond, j'ai ajouté des colonnes et posé des triggers. Le problème est que les performances ont chutées. Mes questions sont les suivantes : - Le code de mes triggers est il correct ? - Est ce que le fait de créer un trigger qui modifie des données dans la table sur laquelle il est basé, n'est pas la cause des mauvaises performances ? - Faut il modifier le schéma de lock ? Passer en DOL ? Code :
|
||
|
|
00
|
|
|
#2 |
![]() ![]() |
A priori le code des triggers semble correcte. Evidemment ces updates ajoutent des IOs lors des insert et update, en particulier si il y a beaucoup d'insert ou d'update par batch.
Si c'était possible je pense que j'ajouterai un colonne (p.ex. systemdate datetime default getdate()) qui pourrait être utilisée comme valeur de référence pour chaque enregistrement, permettant le calcul des heures de début et fin ajustées pour l'horloge du dataserver. L'utilisation du mode DOL n'a probablement pas d'influence sur les perfs dans ce cas (bien que cela devrait être confirmé.) 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 du Club
![]() Inscription : octobre 2005 Messages : 79 ![]() |
Je n'avais pas pensé au default sur un champ.
Merci beaucoup. |
|
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2006 Messages : 10 ![]() |
Bonjour,
Dans ton cas, je referais un calcule des statistiques (update all statistics) des tables modifiées (il me semble que tu as ajouté une colonne). Je pense que ça t'apportera un gain (à condition que tu ais un nombre de ligne > à 100 si mes souvenirs sont bons) En suite au sujet du passage en datarow, tout dépend des contentions que tu pourrais constater sur tes objets et du nombre d'écriture (ou toute autre activité transactionnelle) sur une même page de data ou d'indexe. Je suis assez partisan (dans les versions 12/12.5) du tout datarow quand on commence à parler de base dont l'activité TP est soutenue. Si tu fais un monitoring (sp_sysmon, pour plus de détail monitor/historical server ou les tables derived stat ase 12.5.3) tu auras les informations nécessaire qui pourront t'orienté dans tes choix. Dans tout les cas si tu passes en datarows, n'oublie pas de recréer tout tes trigger et de faire un sp_recompile sur les tables. |
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2006 Messages : 10 ![]() |
oups, mauvaise manip
|
|
|
00
|
|
|
#6 | |
|
Membre du Club
![]() Inscription : octobre 2005 Messages : 79 ![]() |
Citation:
|
|
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() Inscription : octobre 2005 Messages : 79 ![]() |
merci à vous deux pour ces précieux conseils !
|
|
|
00
|
|
|
#8 |
![]() ![]() |
J'éviterais le "update ALL statistics" - cela calcul des stats sur TOUTES les colonnes de la table, ce qui peut prendre très longtemps, et ce qui n'est pas nécessairement très utile pour l'optimiseur.
Par contre, le "update index statistics" est recommandé, puisque cela calcul les stats sur toutes les colonnes qui composent les indexes. 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
|
|
|
#9 | |
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2006 Messages : 10 ![]() |
Citation:
Dans l'enthousiasme je me suis emporté |
|
|
|
00
|
|
|
#10 | |
|
Membre du Club
![]() Inscription : octobre 2005 Messages : 79 ![]() |
Citation:
Merci encore une fois. |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com