2011-01-10 25 views
8

? Estoy tratando de solucionar un problema que está surgiendo en nuestro nuevo servidor SQL. Mientras veo los procesos en ejecución (sp_who2) no puedo decir con qué parámetros se inició un proceso.¿Cómo puedo ver los parámetros de los procesos en ejecución actualmente en SQL Server 2008

puedo encontrar el nombre del proc usando: DBCC INPUTBUFFER (spid)

que puede incluso encontrar algo de información adicional, pero no puede ver una forma de mostrar los parámetros.

(http://sqlserverpedia.com/blog/sql-server-bloggers/sql-server-%E2%80%93-get-last-running-query-based-on-spid/)

Sé que puedo ver los parámetros si hago un rastro, pero eso no ayuda en este caso.

+0

Tiene permiso para hacer "sp_who2" y "dbcc" pero no ejecuta un rastro? –

Respuesta

6

Tienes que echarle un vistazo a SP_WhoisActive de Adam Machanic que te da toda la información que necesitas y te da toda la consulta en xml para que puedas hacer clic y ver qué se está ejecutando.
http://sqlblog.com/files/folders/release/entry29675.aspx

+0

Acabo de probar 'create proC#foo @a int como waitfor delay '01: 00'' then' exeC#foo 1' No puedo ver el valor de los parámetros en ninguna parte de la salida. –

+4

Esta es una gran herramienta, sin embargo, todavía no veo los parámetros utilizados para llamar al proceso. Estoy llamando así: 'exec sp_WhoIsActive @get_outer_command = 1'. Me da dos columnas: sql_text y sql_command. sql_command me da algo como "MyDB.dbo.MyProc; 1" donde el 1 es un número de versión del proceso, no los parámetros enviados. sql_text me da la declaración en el proceso que se está ejecutando. Hay muchas opciones para esta llamada, ¿me falta una que muestre los parámetros? – Pez

0

Editar: Encontré este código interesante: select dest.* from sys.dm_exec_requests as der cross apply sys.dm_exec_sql_text (der.sql_handle) as dest where session_id = @spid. Por favor pruebalo.

http://msdn.microsoft.com/en-us/library/ms181929%28v=SQL.100%29.aspx

Parece que no se puede hacer sin dejar rastro. Hay pocas publicaciones más con preguntas similares: Can parameterized queries be fully captured using DBCC INPUTBUFFER?

Puede usar DBCC INPUTBUFFER (spid) pero solo si sp se inicia desde SSMS.

Mira esto http://sqlblog.com/tags/Who+is+Active/default.aspx. Si no puede agregar esta sp a su caja, habrá un código que puede ser útil.

Editar: Solo mostrará qué enunciado de su sp se está ejecutando, y no los parámetros.

+0

Su edición más reciente solo muestra la definición 'create proc', no los parámetros pasados. –

0

¿Se puede cambiar el proceso almacenado para registrar los parámetros? ¿Quizás inserte en una tabla los parámetros para el diagnóstico?

Cuestiones relacionadas