|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Olivier Albertini Inscription : avril 2006 Messages : 194 ![]() |
Bonjour,
J'ai trois façons de faire un Trigger l'un avec des curseurs l'autre avec une table temporaire, et un autre avec une énorme requête qui utilise les "union all" et "intersect"... J'ai fait les trois et j'aimerais voir le gain ou la perte de performance pour chacun... Je sais qu'il y a le "Activity Monitor" dans SQL Management studio mais je sais pas m'en servir ... Le plus important serait de voir le temps d'exécution après s'il y a plus c'est que mieux !!! Je spécifie que je connais déjà le résultat, soit l'énorme requête, la table temporaire et les curseurs dans l'ordre de rapidité, mais il me faudrait des preuves. Merci de votre aide membre de développez ! |
|
00
|
|
|
#2 | ||||
![]() ![]() Alexandre ChemlaConsultant en Business Intelligence Inscription : février 2006 Messages : 1 770 ![]() |
Un petit
Code :
ou encore Code :
|
||||
|
|
10
|
|
|
#3 |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 667 ![]() |
Bonjour,
Attention à ce que vous retourne SET STATISTICS TIME, car :
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
|
10
|
|
|
#4 | ||
|
Membre régulier
![]() Olivier Albertini Inscription : avril 2006 Messages : 194 ![]() |
si je suis pas le seul sur l'instance ça expliquerait le fait que le résultat de mon message contient une centaine de
Code :
car j'ai fait un INSERT et je suis sur d'être le seul a utiliser la table... Donc je comprends pas pourquoi j'aurais une centaine de message... |
||
|
00
|
|
|
#5 |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 667 ![]() |
Cela est dû aux diverses instructions qui composent l'instruction qui déclenche le trigger et a l'exécution du trigger lui-même.
Il y a je crois deux sorties par instruction ... @++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
|
10
|
|
|
#6 | |
|
Membre régulier
![]() Olivier Albertini Inscription : avril 2006 Messages : 194 ![]() |
Citation:
ou il faut compter à la main xD |
|
|
00
|
|
|
#7 |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 667 ![]() |
Le mieux est pour cela d'utiliser le Profiler ou bien les statistiques du client.
Mais dans ce dernier cas, vous n'aurez que la durée totale d'exécution ... @++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
|
10
|
|
|
#8 | |
|
Membre régulier
![]() Olivier Albertini Inscription : avril 2006 Messages : 194 ![]() |
Citation:
(ps le lien ne marche pas pour moi "statistiques du client") |
|
|
00
|
|
|
#9 |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 667 ![]() |
Désolé pour les statistiques du client, je viens de corriger le lien.
Pour le Profiler, j'ai créé un tutoriel sur les traces côté serveur. Dans votre cas, vous n'avez besoin que d'une trace côté client, donc vous pouvez suivre le tutoriel jusqu'au paragraphe II inclus. Après avoir décoché tous les événements précochés, cliquez sur le bouton "Show all events", puis dans la catégorie T-SQL, cochez la colonne TextData et duration (en microsecondes) de l'événement SQL:StmtCompleted. Ajoutez également Reads et Writes pour avoir le nombre de pages lues et écrites par chaque requête. Cliquez enfin sur le bouton "Run". Exécutez maintenant vos requêtes : elle vont s'afficher dans le Profiler, avec leur caractéristiques d'exécution Si vous exécutez une trace alors que vous êtes plusieurs à exécuter des requêtes sur la base de données ou que vous êtes en production, sélectionnez toujours le minimum de colonnes et d'événements, afin de minimiser la charge. N'oubliez également jamais d'enregistrer dans un fichier (Cochez la case portant le même nom à la 2e capture d'écran de mon tutoriel @++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
|
00
|
Copyright © 2000-2012 - www.developpez.com