Est-il possible de tracer une requete deja en cours d'execution
(afficher le lot SQL, le type d'acces choisi (table scan, ...)) ?
Un DBCC INPUTBUFFER m'informe sur le lot SQL en cours, un select sur
sysprocesses m'informe du type de commande (cmd) en cours; maintenant
comment obtenir l'integralit=E9 du code SQL en execution, la methode
d'acces, ...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Cactus Corp.
Bonjour !
Cette question m'intéresse également ! Lorsque l'on parcourt les processus via entreprise manager, il est possible de cliquer sur 'propriétés' et d'avoir la requête SQL en cours. Est-ce possible d'obtenir cela via une requête SQL ?
antonio
Bonjour !
Cette question m'intéresse également ! Lorsque l'on parcourt les processus
via entreprise manager, il est possible de cliquer sur 'propriétés' et d'avoir
la requête SQL en cours. Est-ce possible d'obtenir cela via une requête
SQL ?
Cette question m'intéresse également ! Lorsque l'on parcourt les processus via entreprise manager, il est possible de cliquer sur 'propriétés' et d'avoir la requête SQL en cours. Est-ce possible d'obtenir cela via une requête SQL ?
antonio
Fred BROUARD
Voici comment procéder :
DECLARE @Handle BINARY(30)
SELECT @Handle = sql_handle FROM master..sysprocesses WHERE spid = @@SPID
SELECT * FROM ::fn_get_sql(@Handle) AS SQL_COMMANDE
DECLARE @Handle BINARY(30) SELECT @Handle = sql_handle FROM master..sysprocesses WHERE spid = @@SPID
SELECT * FROM ::fn_get_sql(@Handle) AS SQL_COMMANDE
(1 ligne(s) affectée(s))
C'est la colonne text de la table retournée par la fonction système fn_get_sql qui donne le texte de la commande SQL visé par le n° de processus (SPID).
A +
-- 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 *************************
a écrit:
Bonjour,
Est-il possible de tracer une requete deja en cours d'execution (afficher le lot SQL, le type d'acces choisi (table scan, ...)) ?
Un DBCC INPUTBUFFER m'informe sur le lot SQL en cours, un select sur sysprocesses m'informe du type de commande (cmd) en cours; maintenant comment obtenir l'integralité du code SQL en execution, la methode d'acces, ...
Merci.
Voici comment procéder :
DECLARE @Handle BINARY(30)
SELECT @Handle = sql_handle
FROM master..sysprocesses
WHERE spid = @@SPID
SELECT *
FROM ::fn_get_sql(@Handle) AS SQL_COMMANDE
DECLARE @Handle BINARY(30)
SELECT @Handle = sql_handle
FROM master..sysprocesses
WHERE spid = @@SPID
SELECT *
FROM ::fn_get_sql(@Handle) AS SQL_COMMANDE
(1 ligne(s) affectée(s))
C'est la colonne text de la table retournée par la fonction système fn_get_sql
qui donne le texte de la commande SQL visé par le n° de processus (SPID).
A +
--
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 *************************
zorgb75@voila.fr a écrit:
Bonjour,
Est-il possible de tracer une requete deja en cours d'execution
(afficher le lot SQL, le type d'acces choisi (table scan, ...)) ?
Un DBCC INPUTBUFFER m'informe sur le lot SQL en cours, un select sur
sysprocesses m'informe du type de commande (cmd) en cours; maintenant
comment obtenir l'integralité du code SQL en execution, la methode
d'acces, ...
DECLARE @Handle BINARY(30) SELECT @Handle = sql_handle FROM master..sysprocesses WHERE spid = @@SPID
SELECT * FROM ::fn_get_sql(@Handle) AS SQL_COMMANDE
(1 ligne(s) affectée(s))
C'est la colonne text de la table retournée par la fonction système fn_get_sql qui donne le texte de la commande SQL visé par le n° de processus (SPID).
A +
-- 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 *************************
a écrit:
Bonjour,
Est-il possible de tracer une requete deja en cours d'execution (afficher le lot SQL, le type d'acces choisi (table scan, ...)) ?
Un DBCC INPUTBUFFER m'informe sur le lot SQL en cours, un select sur sysprocesses m'informe du type de commande (cmd) en cours; maintenant comment obtenir l'integralité du code SQL en execution, la methode d'acces, ...
Merci.
zorgb75
Merci... Comment faire maintenant pour visualiser uniquement l'instruction SQL en cours d'execution (exemple: dans le cas d'une sp avec plusieur select, un fn_get_sql va me rapatrier le code de la sp, et non l'odre SQL en cours d'exec) ?
Si il est possible d'obtenir cette info, est-il aussi possible d'obtenir le descriptif de l'operation en cours (table scan effectué, index scan, ...), le nombre d'I/O effectué, le nombre de cycle CPU, etc.... (Tout ca toujours pour l'instruction SQL en cours d'execution).
Merci
Merci...
Comment faire maintenant pour visualiser uniquement l'instruction SQL
en cours d'execution (exemple: dans le cas d'une sp avec plusieur
select, un fn_get_sql va me rapatrier le code de la sp, et non l'odre
SQL en cours d'exec) ?
Si il est possible d'obtenir cette info, est-il aussi possible
d'obtenir le descriptif de l'operation en cours (table scan effectué,
index scan, ...), le nombre d'I/O effectué, le nombre de cycle CPU,
etc.... (Tout ca toujours pour l'instruction SQL en cours d'execution).
Merci... Comment faire maintenant pour visualiser uniquement l'instruction SQL en cours d'execution (exemple: dans le cas d'une sp avec plusieur select, un fn_get_sql va me rapatrier le code de la sp, et non l'odre SQL en cours d'exec) ?
Si il est possible d'obtenir cette info, est-il aussi possible d'obtenir le descriptif de l'operation en cours (table scan effectué, index scan, ...), le nombre d'I/O effectué, le nombre de cycle CPU, etc.... (Tout ca toujours pour l'instruction SQL en cours d'execution).
Merci
M.Sauve
DBCC INPUTBUFFER
"Cactus Corp." wrote in message news:
Bonjour !
Cette question m'intéresse également ! Lorsque l'on parcourt les processus via entreprise manager, il est possible de cliquer sur 'propriétés' et d'avoir la requête SQL en cours. Est-ce possible d'obtenir cela via une requête SQL ?
antonio
DBCC INPUTBUFFER
"Cactus Corp." <nXewsXalaXksaX@nXxtg.XnetX> wrote in message
news:Omzcq7XnFHA.2156@TK2MSFTNGP14.phx.gbl...
Bonjour !
Cette question m'intéresse également ! Lorsque l'on parcourt les processus
via entreprise manager, il est possible de cliquer sur 'propriétés' et
d'avoir
la requête SQL en cours. Est-ce possible d'obtenir cela via une requête
SQL ?
Cette question m'intéresse également ! Lorsque l'on parcourt les processus via entreprise manager, il est possible de cliquer sur 'propriétés' et d'avoir la requête SQL en cours. Est-ce possible d'obtenir cela via une requête SQL ?
La proposition de FB quelques lignes au-dessus me semble mieux répondre à ce besoin...non ?
antonio
zorgb75
Effectivement la ::fn_get_sql rammene l'integralite du batch SQL executé. Mais le probleme, c'est que veux obtenir uniquement le lot SQL en cours d'execution (la requete bref) ainsi que les differentes informations d'acces aux données, la charge cpu, le nb d'I/O, ...
Exemple: Une sp comporte 2 requetes SELECT. Le premier ordre SQL utilise un table scan, et le deuxieme un index scan. Je lance l'execution de la sp. En cours d'execution, j'aimerai connaitre l'etat de l'execution: connaitre la requete en cours d'exec : (2eme SELECT par exemple), le type d'acces (plan) (index scan par exemple), etc...
j'instiste bien sur le fait que je ne peux pas lancer le profiler avant l'execution de la sp (car elle peut etre appellee à n'importe quel moment).
Merci;
Effectivement la ::fn_get_sql rammene l'integralite du batch SQL
executé. Mais le probleme, c'est
que veux obtenir uniquement le lot SQL en cours d'execution (la requete
bref) ainsi que les differentes informations
d'acces aux données, la charge cpu, le nb d'I/O, ...
Exemple:
Une sp comporte 2 requetes SELECT. Le premier ordre SQL utilise un
table scan, et le deuxieme un index scan.
Je lance l'execution de la sp. En cours d'execution, j'aimerai
connaitre l'etat de l'execution:
connaitre la requete en cours d'exec : (2eme SELECT par exemple), le
type d'acces (plan) (index scan par exemple), etc...
j'instiste bien sur le fait que je ne peux pas lancer le profiler avant
l'execution de la sp (car elle peut etre appellee à n'importe quel
moment).
Effectivement la ::fn_get_sql rammene l'integralite du batch SQL executé. Mais le probleme, c'est que veux obtenir uniquement le lot SQL en cours d'execution (la requete bref) ainsi que les differentes informations d'acces aux données, la charge cpu, le nb d'I/O, ...
Exemple: Une sp comporte 2 requetes SELECT. Le premier ordre SQL utilise un table scan, et le deuxieme un index scan. Je lance l'execution de la sp. En cours d'execution, j'aimerai connaitre l'etat de l'execution: connaitre la requete en cours d'exec : (2eme SELECT par exemple), le type d'acces (plan) (index scan par exemple), etc...
j'instiste bien sur le fait que je ne peux pas lancer le profiler avant l'execution de la sp (car elle peut etre appellee à n'importe quel moment).
Merci;
B.Mohamed
SQL Profiler
wrote in message news: Bonjour,
Est-il possible de tracer une requete deja en cours d'execution (afficher le lot SQL, le type d'acces choisi (table scan, ...)) ?
Un DBCC INPUTBUFFER m'informe sur le lot SQL en cours, un select sur sysprocesses m'informe du type de commande (cmd) en cours; maintenant comment obtenir l'integralité du code SQL en execution, la methode d'acces, ...
Merci.
SQL Profiler
<zorgb75@voila.fr> wrote in message
news:1123578538.327388.213490@f14g2000cwb.googlegroups.com...
Bonjour,
Est-il possible de tracer une requete deja en cours d'execution
(afficher le lot SQL, le type d'acces choisi (table scan, ...)) ?
Un DBCC INPUTBUFFER m'informe sur le lot SQL en cours, un select sur
sysprocesses m'informe du type de commande (cmd) en cours; maintenant
comment obtenir l'integralité du code SQL en execution, la methode
d'acces, ...
Est-il possible de tracer une requete deja en cours d'execution (afficher le lot SQL, le type d'acces choisi (table scan, ...)) ?
Un DBCC INPUTBUFFER m'informe sur le lot SQL en cours, un select sur sysprocesses m'informe du type de commande (cmd) en cours; maintenant comment obtenir l'integralité du code SQL en execution, la methode d'acces, ...