Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

"Debogger"

9 réponses
Avatar
YDN
Bonsoir à tous,
Ma question est un peu la suite de mes problèmes persistant d'hier.
Existe t il, sous sql server, un outils d'analyse permettant de savoir quels sont les trigger en cours d'execution. Et puis peut
être l'interpretation, résultat de leurs différentes commandes.
J'ai vu l'analyseur de requête, le générateur de profil, mais je n'y ai rien trouvé d'approchant.
Merci de toute contribution.
Merci d'avoir lu jusque là.
Désolé du reposte je me suis pris les pieds ... dans mon fil.

9 réponses

Avatar
Cédric Bellec
Bonjour,

L'Analyseur de requête de SQL Server 2000 permet de débuguer les procédures
stockées, les triggers et les fonctions.

Donc utilisez des procédures stockées et le débogueur pour inspecter ce qui
se passe dans vos triggers.

Une autre solution serait d'écrire depuis vos triggers des informations dans
une table de Trace.

Voici également un article en anglais sur les performances et l'optimisation
des triggers
http://www.sql-server-performance.com/trigger_tuning.asp

Cordialement,
Cédric


"YDN" a écrit dans le message de news:

Bonsoir à tous,
Ma question est un peu la suite de mes problèmes persistant d'hier.
Existe t il, sous sql server, un outils d'analyse permettant de savoir
quels sont les trigger en cours d'execution. Et puis peut
être l'interpretation, résultat de leurs différentes commandes.
J'ai vu l'analyseur de requête, le générateur de profil, mais je n'y ai
rien trouvé d'approchant.
Merci de toute contribution.
Merci d'avoir lu jusque là.
Désolé du reposte je me suis pris les pieds ... dans mon fil.



Avatar
Michel PRIORI
Voir le 'profiler' ("analyseur de profil" en français si j'ai bonne mémoire)



"YDN" a écrit :

Bonsoir à tous,
Ma question est un peu la suite de mes problèmes persistant d'hier.
Existe t il, sous sql server, un outils d'analyse permettant de savoir quels sont les trigger en cours d'execution. Et puis peut
être l'interpretation, résultat de leurs différentes commandes.
J'ai vu l'analyseur de requête, le générateur de profil, mais je n'y ai rien trouvé d'approchant.
Merci de toute contribution.
Merci d'avoir lu jusque là.
Désolé du reposte je me suis pris les pieds ... dans mon fil.





Avatar
YDN
Bonsoir et merci à tous les deux.
Oui c'est peut être l'analyseur de profil, moi j'avais parlé de :
J'ai vu l'analyseur de requête, le générateur de profil




C'est d'ailleurs plutôt gestionnaire de profil.
J'y ai vu tracer des tas d'événements dans la base, j'ai vu qu'on pouvait filter les événements à tracer (c'est paramètrable) mais
je n'ai pas su paramètrer de tracer les Trigger !
Mon problème est que j'ai fait un Trigger dont la syntaxe a été accepté ouf et pourtant je ne vois aucun résultat escompté !
J'aurais voulu au moins le voir passer en trace (je l'ai bien positionner sur le bon événement), et au mieux le voir interprêté
comme dans un "deboggueur" pour voir mon erreur.

Cédric :
L'Analyseur de requête de SQL Server 2000 permet de débuguer les procédures
stockées, les triggers et les fonctions.



Donc utilisez des procédures stockées et le débogueur pour inspecter ce qui
se passe dans vos triggers.



Une autre solution serait d'écrire depuis vos triggers des informations dans
une table de Trace.


Pouvez vous me donnez un peu plus d'indication tout ça est bien allèchant mais je n'ai pas encore vu un début de mise en oeuvre avec
mon serveur sql accessible en intermitence et mon absence complète (or mis F1) de doc..

J'ai lu http://www.sql-server-performance.com/trigger_tuning.asp mais je n'en suis pas à optimiser mon/mes triggers, j'en suis à
être sur qu'ils font quelques choses et comment les corriger...
A ce sujet vu qu'une formation semble difficile à obtenir connaissez vous de bonnes publications sur les Triggers, c'est ce dont
j'ai le plus besoin sous sql.

Par avance et pour vos précèdente contribution merci.
Merci d'avoir lu jusque là.



"Michel PRIORI" a écrit dans le message de news:

Voir le 'profiler' ("analyseur de profil" en français si j'ai bonne mémoire)



"YDN" a écrit :

Bonsoir à tous,
Ma question est un peu la suite de mes problèmes persistant d'hier.
Existe t il, sous sql server, un outils d'analyse permettant de savoir quels sont les trigger en cours d'execution. Et puis peut
être l'interpretation, résultat de leurs différentes commandes.
J'ai vu l'analyseur de requête, le générateur de profil, mais je n'y ai rien trouvé d'approchant.
Merci de toute contribution.
Merci d'avoir lu jusque là.
Désolé du reposte je me suis pris les pieds ... dans mon fil.







Avatar
Michel PRIORI
Par essence il n'y a rien de compliqué dans un trigger : c'est une procédure
transac avec quelques restrictions/avantages.
Parmi les avantages les plus spectaculaires :
-- la possibilité de travailler avec les tables inserted et deleted
-- le trigger instead of (qui ne doit être utilisé qu'avec des vues)
-- ...
Parmi les restrictions :
-- N'autorise que des ordres DML (pas de create ou alter ou ...)
-- ne permet pas un traitement ligne à ligne (en fait je pense que c'est
plutôt une bonne chose)
-- ...
Pour tout ça l'aide en ligne est bien.


Donc tu as le choix :
* tu peux exposer ton code au forum à moins que tu ne soit un fou furieux du
clavier et que ça fasse plus de 100 lignes
* copier coller ton code dans une procedure et débogger "normalement"
l'execution.

Voilà
@+
"YDN" a écrit :

Bonsoir et merci à tous les deux.
Oui c'est peut être l'analyseur de profil, moi j'avais parlé de :
>> J'ai vu l'analyseur de requête, le générateur de profil
C'est d'ailleurs plutôt gestionnaire de profil.
J'y ai vu tracer des tas d'événements dans la base, j'ai vu qu'on pouvait filter les événements à tracer (c'est paramètrable) mais
je n'ai pas su paramètrer de tracer les Trigger !
Mon problème est que j'ai fait un Trigger dont la syntaxe a été accepté ouf et pourtant je ne vois aucun résultat escompté !
J'aurais voulu au moins le voir passer en trace (je l'ai bien positionner sur le bon événement), et au mieux le voir interprêté
comme dans un "deboggueur" pour voir mon erreur.

Cédric :
>L'Analyseur de requête de SQL Server 2000 permet de débuguer les procédures
>stockées, les triggers et les fonctions.

>Donc utilisez des procédures stockées et le débogueur pour inspecter ce qui
>se passe dans vos triggers.

>Une autre solution serait d'écrire depuis vos triggers des informations dans
>une table de Trace.
Pouvez vous me donnez un peu plus d'indication tout ça est bien allèchant mais je n'ai pas encore vu un début de mise en oeuvre avec
mon serveur sql accessible en intermitence et mon absence complète (or mis F1) de doc..

J'ai lu http://www.sql-server-performance.com/trigger_tuning.asp mais je n'en suis pas à optimiser mon/mes triggers, j'en suis à
être sur qu'ils font quelques choses et comment les corriger...
A ce sujet vu qu'une formation semble difficile à obtenir connaissez vous de bonnes publications sur les Triggers, c'est ce dont
j'ai le plus besoin sous sql.

Par avance et pour vos précèdente contribution merci.
Merci d'avoir lu jusque là.



"Michel PRIORI" a écrit dans le message de news:

> Voir le 'profiler' ("analyseur de profil" en français si j'ai bonne mémoire)
>
>
>
> "YDN" a écrit :
>
>> Bonsoir à tous,
>> Ma question est un peu la suite de mes problèmes persistant d'hier.
>> Existe t il, sous sql server, un outils d'analyse permettant de savoir quels sont les trigger en cours d'execution. Et puis peut
>> être l'interpretation, résultat de leurs différentes commandes.
>> J'ai vu l'analyseur de requête, le générateur de profil, mais je n'y ai rien trouvé d'approchant.
>> Merci de toute contribution.
>> Merci d'avoir lu jusque là.
>> Désolé du reposte je me suis pris les pieds ... dans mon fil.
>>
>>
>>





Avatar
bruno reiter [MVP]
entre autres utilisations du instead of sur une table:
sur suppression (quand on veut interdire de supprimer et faire autre chose à
la place)
sur insertion pour gérer sa propre numérotation
...

br

"Michel PRIORI" wrote in message
news:
Par essence il n'y a rien de compliqué dans un trigger : c'est une
procédure
transac avec quelques restrictions/avantages.
Parmi les avantages les plus spectaculaires :
-- la possibilité de travailler avec les tables inserted et deleted
-- le trigger instead of (qui ne doit être utilisé qu'avec des vues)
-- ...
Parmi les restrictions :
-- N'autorise que des ordres DML (pas de create ou alter ou ...)
-- ne permet pas un traitement ligne à ligne (en fait je pense que c'est
plutôt une bonne chose)
-- ...
Pour tout ça l'aide en ligne est bien.


Donc tu as le choix :
* tu peux exposer ton code au forum à moins que tu ne soit un fou furieux
du
clavier et que ça fasse plus de 100 lignes
* copier coller ton code dans une procedure et débogger "normalement"
l'execution.

Voilà
@+
"YDN" a écrit :

Bonsoir et merci à tous les deux.
Oui c'est peut être l'analyseur de profil, moi j'avais parlé de :
>> J'ai vu l'analyseur de requête, le générateur de profil
C'est d'ailleurs plutôt gestionnaire de profil.
J'y ai vu tracer des tas d'événements dans la base, j'ai vu qu'on pouvait
filter les événements à tracer (c'est paramètrable) mais
je n'ai pas su paramètrer de tracer les Trigger !
Mon problème est que j'ai fait un Trigger dont la syntaxe a été accepté
ouf et pourtant je ne vois aucun résultat escompté !
J'aurais voulu au moins le voir passer en trace (je l'ai bien positionner
sur le bon événement), et au mieux le voir interprêté
comme dans un "deboggueur" pour voir mon erreur.

Cédric :
>L'Analyseur de requête de SQL Server 2000 permet de débuguer les
>procédures
>stockées, les triggers et les fonctions.

>Donc utilisez des procédures stockées et le débogueur pour inspecter ce
>qui
>se passe dans vos triggers.

>Une autre solution serait d'écrire depuis vos triggers des informations
>dans
>une table de Trace.
Pouvez vous me donnez un peu plus d'indication tout ça est bien allèchant
mais je n'ai pas encore vu un début de mise en oeuvre avec
mon serveur sql accessible en intermitence et mon absence complète (or
mis F1) de doc..

J'ai lu http://www.sql-server-performance.com/trigger_tuning.asp mais je
n'en suis pas à optimiser mon/mes triggers, j'en suis à
être sur qu'ils font quelques choses et comment les corriger...
A ce sujet vu qu'une formation semble difficile à obtenir connaissez vous
de bonnes publications sur les Triggers, c'est ce dont
j'ai le plus besoin sous sql.

Par avance et pour vos précèdente contribution merci.
Merci d'avoir lu jusque là.



"Michel PRIORI" a écrit dans le
message de news:

> Voir le 'profiler' ("analyseur de profil" en français si j'ai bonne
> mémoire)
>
>
>
> "YDN" a écrit :
>
>> Bonsoir à tous,
>> Ma question est un peu la suite de mes problèmes persistant d'hier.
>> Existe t il, sous sql server, un outils d'analyse permettant de savoir
>> quels sont les trigger en cours d'execution. Et puis peut
>> être l'interpretation, résultat de leurs différentes commandes.
>> J'ai vu l'analyseur de requête, le générateur de profil, mais je n'y
>> ai rien trouvé d'approchant.
>> Merci de toute contribution.
>> Merci d'avoir lu jusque là.
>> Désolé du reposte je me suis pris les pieds ... dans mon fil.
>>
>>
>>







Avatar
Fred BROUARD
Un moyen de tester si un trigger fait du boulot est de stocker le contenu de la
variable @@ROWCOUNT avec un indicateur de l'ordre dans une table particulière.

Exemple :

1) création de la table de suivi :
CREATE TABLE T_TRACE_TRIGGER_TTG
(TTG_ID INTEGER NOT NULL PRIMARY KEY,
TTG_DH DATETIME DEFAULT CURRENT_TIMESTAMP,
TTG_BASE VARCHAR(128),
TTG_TABLE_CIBLE VARCHAR(128),
TTG_EVENEMENT VARCHAR(8)
CHECK (TTG_EVENEMENT IN ('INSERT', 'UPDATE', 'DELETE')),
TTG_TYPE VARCHAR(8) CHECK (TTG_TYPE IN ('AFTER', 'INSTEAD')),
TTG_LIGNES INTEGER,
TTG_TAG VARCHAR(8))

2) mise en place du pistage dans un trigger :

CREATE TRIGGER MPTQMP
ON DETAIL
FOR INSERT
AS
UPDATE DETAIL
SET MA_COLONNE_A_METTRE_A_JOUR = ENTETE.MA_COLONNE_SOURCE
FROM DETAIL D
INNER JOIN inserted i
ON D.COLONNE_CLEF = i.COLONNE_CLEF
INNER JOIN ENTETE E
ON D.COLONNE_CLEF=E.COLONNE_CLEF

INSERT INTO T_TRACE_TRIGGER_TTG (TTG_BASE, TTG_TABLE_CIBLE, TTG_EVENEMENT,
TTG_TYPE, TTG_LIGNES, TTG_TAG)
VALUES (DB_NAME(), 'DETAIL', 'INSERT', 'AFTER', @@ROWCOUNT, 'ABCD')

A +


YDN a écrit:
Bonsoir et merci à tous les deux.
Oui c'est peut être l'analyseur de profil, moi j'avais parlé de :

J'ai vu l'analyseur de requête, le générateur de profil





C'est d'ailleurs plutôt gestionnaire de profil.
J'y ai vu tracer des tas d'événements dans la base, j'ai vu qu'on pouvait filter les événements à tracer (c'est paramètrable) mais
je n'ai pas su paramètrer de tracer les Trigger !
Mon problème est que j'ai fait un Trigger dont la syntaxe a été accepté ouf et pourtant je ne vois aucun résultat escompté !
J'aurais voulu au moins le voir passer en trace (je l'ai bien positionner sur le bon événement), et au mieux le voir interprêté
comme dans un "deboggueur" pour voir mon erreur.

Cédric :

L'Analyseur de requête de SQL Server 2000 permet de débuguer les procédures
stockées, les triggers et les fonctions.




Donc utilisez des procédures stockées et le débogueur pour inspecter ce qui
se passe dans vos triggers.




Une autre solution serait d'écrire depuis vos triggers des informations dans
une table de Trace.



Pouvez vous me donnez un peu plus d'indication tout ça est bien allèchant mais je n'ai pas encore vu un début de mise en oeuvre avec
mon serveur sql accessible en intermitence et mon absence complète (or mis F1) de doc..

J'ai lu http://www.sql-server-performance.com/trigger_tuning.asp mais je n'en suis pas à optimiser mon/mes triggers, j'en suis à
être sur qu'ils font quelques choses et comment les corriger...
A ce sujet vu qu'une formation semble difficile à obtenir connaissez vous de bonnes publications sur les Triggers, c'est ce dont
j'ai le plus besoin sous sql.

Par avance et pour vos précèdente contribution merci.
Merci d'avoir lu jusque là.



"Michel PRIORI" a écrit dans le message de news:


Voir le 'profiler' ("analyseur de profil" en français si j'ai bonne mémoire)



"YDN" a écrit :


Bonsoir à tous,
Ma question est un peu la suite de mes problèmes persistant d'hier.
Existe t il, sous sql server, un outils d'analyse permettant de savoir quels sont les trigger en cours d'execution. Et puis peut
être l'interpretation, résultat de leurs différentes commandes.
J'ai vu l'analyseur de requête, le générateur de profil, mais je n'y ai rien trouvé d'approchant.
Merci de toute contribution.
Merci d'avoir lu jusque là.
Désolé du reposte je me suis pris les pieds ... dans mon fil.













--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
Avatar
YDN
Bonsoir à tous, bonsoir et merci à toi Michel PRIORI,
* copier coller ton code dans une procedure et débogger "normalement"
l'execution.


Mon code je l'avais déjà mis dans une autre ficelle, du coup je garde ta dernière suggestion dans ma besace et je t'en remercie
beaucoup.
Le début de ton message est trop technique pour mon niveau (actuel ?)
Je regarde ta sympathique suggestion dès que j'ai accès à mon serveur sql portable....
Merci d'avoir lu jusque là.

"Michel PRIORI" a écrit dans le message de news:

Par essence il n'y a rien de compliqué dans un trigger : c'est une procédure
transac avec quelques restrictions/avantages.
Parmi les avantages les plus spectaculaires :
-- la possibilité de travailler avec les tables inserted et deleted
-- le trigger instead of (qui ne doit être utilisé qu'avec des vues)
-- ...
Parmi les restrictions :
-- N'autorise que des ordres DML (pas de create ou alter ou ...)
-- ne permet pas un traitement ligne à ligne (en fait je pense que c'est
plutôt une bonne chose)
-- ...
Pour tout ça l'aide en ligne est bien.


Donc tu as le choix :
* tu peux exposer ton code au forum à moins que tu ne soit un fou furieux du
clavier et que ça fasse plus de 100 lignes
* copier coller ton code dans une procedure et débogger "normalement"
l'execution.

Voilà
@+
"YDN" a écrit :

Bonsoir et merci à tous les deux.
Oui c'est peut être l'analyseur de profil, moi j'avais parlé de :
>> J'ai vu l'analyseur de requête, le générateur de profil
C'est d'ailleurs plutôt gestionnaire de profil.
J'y ai vu tracer des tas d'événements dans la base, j'ai vu qu'on pouvait filter les événements à tracer (c'est paramètrable)
mais
je n'ai pas su paramètrer de tracer les Trigger !
Mon problème est que j'ai fait un Trigger dont la syntaxe a été accepté ouf et pourtant je ne vois aucun résultat escompté !
J'aurais voulu au moins le voir passer en trace (je l'ai bien positionner sur le bon événement), et au mieux le voir interprêté
comme dans un "deboggueur" pour voir mon erreur.

Cédric :
>L'Analyseur de requête de SQL Server 2000 permet de débuguer les procédures
>stockées, les triggers et les fonctions.

>Donc utilisez des procédures stockées et le débogueur pour inspecter ce qui
>se passe dans vos triggers.

>Une autre solution serait d'écrire depuis vos triggers des informations dans
>une table de Trace.
Pouvez vous me donnez un peu plus d'indication tout ça est bien allèchant mais je n'ai pas encore vu un début de mise en oeuvre
avec
mon serveur sql accessible en intermitence et mon absence complète (or mis F1) de doc..

J'ai lu http://www.sql-server-performance.com/trigger_tuning.asp mais je n'en suis pas à optimiser mon/mes triggers, j'en suis à
être sur qu'ils font quelques choses et comment les corriger...
A ce sujet vu qu'une formation semble difficile à obtenir connaissez vous de bonnes publications sur les Triggers, c'est ce dont
j'ai le plus besoin sous sql.

Par avance et pour vos précèdente contribution merci.
Merci d'avoir lu jusque là.



"Michel PRIORI" a écrit dans le message de news:

> Voir le 'profiler' ("analyseur de profil" en français si j'ai bonne mémoire)
>
>
>
> "YDN" a écrit :
>
>> Bonsoir à tous,
>> Ma question est un peu la suite de mes problèmes persistant d'hier.
>> Existe t il, sous sql server, un outils d'analyse permettant de savoir quels sont les trigger en cours d'execution. Et puis
>> peut
>> être l'interpretation, résultat de leurs différentes commandes.
>> J'ai vu l'analyseur de requête, le générateur de profil, mais je n'y ai rien trouvé d'approchant.
>> Merci de toute contribution.
>> Merci d'avoir lu jusque là.
>> Désolé du reposte je me suis pris les pieds ... dans mon fil.
>>
>>
>>







Avatar
YDN
Bonsoir à tous, Bonsoir et merci à toi Fred BROUARD,
Vraiment sans fausse flagornerie merci beaucoup.
J'avais repérer ton bouquin depuis longtemps, il m'a l'air très étayé, j'ai vu que les TRIGGER n'était qu'une partie du chapitre 7,
malgré qu'il soit indiqué lectorat débutant/avancé, je m'interroge vraiement sur le fait que je ne saurais comprendre que légèrement
ces quelques pages...
En tout cas je vais tester ta suggestion en espèrant arriver à en faire quelque chose.
J'ai vu ton autre poste où visiblement ton Trigger semble confirmer le miens qui (ne fais rien de mon point de vue, que je vais donc
réviser avec ton code).

Merci beaucoup, je tiendrai au minimum au courant de ma réussite ;-).
Merci d'avoir lu jusque là.


"Fred BROUARD" a écrit dans le message de news: %
Un moyen de tester si un trigger fait du boulot est de stocker le contenu de la variable @@ROWCOUNT avec un indicateur de l'ordre
dans une table particulière.

Exemple :

1) création de la table de suivi :
CREATE TABLE T_TRACE_TRIGGER_TTG
(TTG_ID INTEGER NOT NULL PRIMARY KEY,
TTG_DH DATETIME DEFAULT CURRENT_TIMESTAMP,
TTG_BASE VARCHAR(128),
TTG_TABLE_CIBLE VARCHAR(128),
TTG_EVENEMENT VARCHAR(8)
CHECK (TTG_EVENEMENT IN ('INSERT', 'UPDATE', 'DELETE')),
TTG_TYPE VARCHAR(8) CHECK (TTG_TYPE IN ('AFTER', 'INSTEAD')),
TTG_LIGNES INTEGER,
TTG_TAG VARCHAR(8))

2) mise en place du pistage dans un trigger :

CREATE TRIGGER MPTQMP
ON DETAIL
FOR INSERT
AS
UPDATE DETAIL
SET MA_COLONNE_A_METTRE_A_JOUR = ENTETE.MA_COLONNE_SOURCE
FROM DETAIL D
INNER JOIN inserted i
ON D.COLONNE_CLEF = i.COLONNE_CLEF
INNER JOIN ENTETE E
ON D.COLONNE_CLEF=E.COLONNE_CLEF

INSERT INTO T_TRACE_TRIGGER_TTG (TTG_BASE, TTG_TABLE_CIBLE, TTG_EVENEMENT,
TTG_TYPE, TTG_LIGNES, TTG_TAG)
VALUES (DB_NAME(), 'DETAIL', 'INSERT', 'AFTER', @@ROWCOUNT, 'ABCD')

A +


YDN a écrit:
Bonsoir et merci à tous les deux.
Oui c'est peut être l'analyseur de profil, moi j'avais parlé de :

J'ai vu l'analyseur de requête, le générateur de profil





C'est d'ailleurs plutôt gestionnaire de profil.
J'y ai vu tracer des tas d'événements dans la base, j'ai vu qu'on pouvait filter les événements à tracer (c'est paramètrable)
mais je n'ai pas su paramètrer de tracer les Trigger !
Mon problème est que j'ai fait un Trigger dont la syntaxe a été accepté ouf et pourtant je ne vois aucun résultat escompté !
J'aurais voulu au moins le voir passer en trace (je l'ai bien positionner sur le bon événement), et au mieux le voir interprêté
comme dans un "deboggueur" pour voir mon erreur.

Cédric :

L'Analyseur de requête de SQL Server 2000 permet de débuguer les procédures
stockées, les triggers et les fonctions.




Donc utilisez des procédures stockées et le débogueur pour inspecter ce qui
se passe dans vos triggers.




Une autre solution serait d'écrire depuis vos triggers des informations dans
une table de Trace.



Pouvez vous me donnez un peu plus d'indication tout ça est bien allèchant mais je n'ai pas encore vu un début de mise en oeuvre
avec mon serveur sql accessible en intermitence et mon absence complète (or mis F1) de doc..

J'ai lu http://www.sql-server-performance.com/trigger_tuning.asp mais je n'en suis pas à optimiser mon/mes triggers, j'en suis à
être sur qu'ils font quelques choses et comment les corriger...
A ce sujet vu qu'une formation semble difficile à obtenir connaissez vous de bonnes publications sur les Triggers, c'est ce dont
j'ai le plus besoin sous sql.

Par avance et pour vos précèdente contribution merci.
Merci d'avoir lu jusque là.



"Michel PRIORI" a écrit dans le message de news:


Voir le 'profiler' ("analyseur de profil" en français si j'ai bonne mémoire)



"YDN" a écrit :


Bonsoir à tous,
Ma question est un peu la suite de mes problèmes persistant d'hier.
Existe t il, sous sql server, un outils d'analyse permettant de savoir quels sont les trigger en cours d'execution. Et puis peut
être l'interpretation, résultat de leurs différentes commandes.
J'ai vu l'analyseur de requête, le générateur de profil, mais je n'y ai rien trouvé d'approchant.
Merci de toute contribution.
Merci d'avoir lu jusque là.
Désolé du reposte je me suis pris les pieds ... dans mon fil.













--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************



Avatar
YDN
Bonjour à tous,
Le trigger m'indique maintenant : "Impossible d'insérer la valeur NULL dans la colonne 'TTG_ID'' table
'SIGO.dbo.T.TRACE_TRIGGER_TTG' cette colonne n'accepte pas les valeurs NULL. INSERT a échoué.

Je pense que je dois en déduire que mon la partie :
CREATE TRIGGER MPTQMP
ON DETAIL
FOR INSERT
AS
UPDATE DETAIL
SET MA_COLONNE_A_METTRE_A_JOUR = ENTETE.MA_COLONNE_SOURCE
FROM DETAIL D
INNER JOIN inserted i
ON D.COLONNE_CLEF = i.COLONNE_CLEF
INNER JOIN ENTETE E
ON D.COLONNE_CLEF=E.COLONNE_CLEF



... de mon TRIGGER ne fait rien ?
Merci de me confirmer.

Merci d'avoir lu jusque là.






"Fred BROUARD" a écrit dans le message de news: %
Un moyen de tester si un trigger fait du boulot est de stocker le contenu de la variable @@ROWCOUNT avec un indicateur de l'ordre
dans une table particulière.

Exemple :

1) création de la table de suivi :
CREATE TABLE T_TRACE_TRIGGER_TTG
(TTG_ID INTEGER NOT NULL PRIMARY KEY,
TTG_DH DATETIME DEFAULT CURRENT_TIMESTAMP,
TTG_BASE VARCHAR(128),
TTG_TABLE_CIBLE VARCHAR(128),
TTG_EVENEMENT VARCHAR(8)
CHECK (TTG_EVENEMENT IN ('INSERT', 'UPDATE', 'DELETE')),
TTG_TYPE VARCHAR(8) CHECK (TTG_TYPE IN ('AFTER', 'INSTEAD')),
TTG_LIGNES INTEGER,
TTG_TAG VARCHAR(8))

2) mise en place du pistage dans un trigger :

CREATE TRIGGER MPTQMP
ON DETAIL
FOR INSERT
AS
UPDATE DETAIL
SET MA_COLONNE_A_METTRE_A_JOUR = ENTETE.MA_COLONNE_SOURCE
FROM DETAIL D
INNER JOIN inserted i
ON D.COLONNE_CLEF = i.COLONNE_CLEF
INNER JOIN ENTETE E
ON D.COLONNE_CLEF=E.COLONNE_CLEF

INSERT INTO T_TRACE_TRIGGER_TTG (TTG_BASE, TTG_TABLE_CIBLE, TTG_EVENEMENT,
TTG_TYPE, TTG_LIGNES, TTG_TAG)
VALUES (DB_NAME(), 'DETAIL', 'INSERT', 'AFTER', @@ROWCOUNT, 'ABCD')

A +


YDN a écrit:
Bonsoir et merci à tous les deux.
Oui c'est peut être l'analyseur de profil, moi j'avais parlé de :

J'ai vu l'analyseur de requête, le générateur de profil





C'est d'ailleurs plutôt gestionnaire de profil.
J'y ai vu tracer des tas d'événements dans la base, j'ai vu qu'on pouvait filter les événements à tracer (c'est paramètrable)
mais je n'ai pas su paramètrer de tracer les Trigger !
Mon problème est que j'ai fait un Trigger dont la syntaxe a été accepté ouf et pourtant je ne vois aucun résultat escompté !
J'aurais voulu au moins le voir passer en trace (je l'ai bien positionner sur le bon événement), et au mieux le voir interprêté
comme dans un "deboggueur" pour voir mon erreur.

Cédric :

L'Analyseur de requête de SQL Server 2000 permet de débuguer les procédures
stockées, les triggers et les fonctions.




Donc utilisez des procédures stockées et le débogueur pour inspecter ce qui
se passe dans vos triggers.




Une autre solution serait d'écrire depuis vos triggers des informations dans
une table de Trace.



Pouvez vous me donnez un peu plus d'indication tout ça est bien allèchant mais je n'ai pas encore vu un début de mise en oeuvre
avec mon serveur sql accessible en intermitence et mon absence complète (or mis F1) de doc..

J'ai lu http://www.sql-server-performance.com/trigger_tuning.asp mais je n'en suis pas à optimiser mon/mes triggers, j'en suis à
être sur qu'ils font quelques choses et comment les corriger...
A ce sujet vu qu'une formation semble difficile à obtenir connaissez vous de bonnes publications sur les Triggers, c'est ce dont
j'ai le plus besoin sous sql.

Par avance et pour vos précèdente contribution merci.
Merci d'avoir lu jusque là.



"Michel PRIORI" a écrit dans le message de news:


Voir le 'profiler' ("analyseur de profil" en français si j'ai bonne mémoire)



"YDN" a écrit :


Bonsoir à tous,
Ma question est un peu la suite de mes problèmes persistant d'hier.
Existe t il, sous sql server, un outils d'analyse permettant de savoir quels sont les trigger en cours d'execution. Et puis peut
être l'interpretation, résultat de leurs différentes commandes.
J'ai vu l'analyseur de requête, le générateur de profil, mais je n'y ai rien trouvé d'approchant.
Merci de toute contribution.
Merci d'avoir lu jusque là.
Désolé du reposte je me suis pris les pieds ... dans mon fil.













--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************