¿Cómo puedo encontrar cuál es la consulta asociada que se está ejecutando si tengo el SPID? Tratando de averiguar qué consulta se está asociando ya que el proceso parece estar bloqueado.SQL Server - Proceso de ejecución - Consulta de SPID
11
A
Respuesta
10
¿qué versión del servidor sql? para el año 2000 y hasta puede hacer
dbcc inputbuffer (spid)
que dará a los primeros 255 caracteres
reemplazar SPID con el número numérico para SPID
para el año 2005 en adelante, el cambio @@ SPID para el SPID que están buscando
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
1
Si se mira en el monitor de la actividad que debe ser capaz de encontrar el SQL asociado con el SPID haciendo clic derecho y seleccionando la opción "detalles".
Éstos son algunos enlaces para empezar:
- http://support.microsoft.com/kb/298475
- http://msdn.microsoft.com/en-us/library/ms188272.aspx
- http://msdn.microsoft.com/en-us/library/ms175518.aspx
También puede matar desde allí como último recurso.
3
Suponiendo SQL Server 2005+
SELECT
CASE
WHEN statement_end_offset = -1
THEN text
ELSE SUBSTRING(text,statement_start_offset/2,(statement_end_offset- statement_start_offset)/2)
END, *
FROM sys.dm_exec_requests
CROSS APPLY sys.dm_exec_sql_text(sql_handle)
WHERE session_id = <whatever>
Es posible que desee descargar el procedimiento de "Who is Active?" que reúne mucha más información que eso.
12
--Find Current SQL Statements that are Running
SELECT SPID = er.session_id
,STATUS = ses.STATUS
,[Login] = ses.login_name
,Host = ses.host_name
,BlkBy = er.blocking_session_id
,DBName = DB_Name(er.database_id)
,CommandType = er.command
,ObjectName = OBJECT_NAME(st.objectid)
,CPUTime = er.cpu_time
,StartTime = er.start_time
,TimeElapsed = CAST(GETDATE() - er.start_time AS TIME)
,SQLStatement = st.text
FROM sys.dm_exec_requests er
OUTER APPLY sys.dm_exec_sql_text(er.sql_handle) st
LEFT JOIN sys.dm_exec_sessions ses
ON ses.session_id = er.session_id
LEFT JOIN sys.dm_exec_connections con
ON con.session_id = ses.session_id
WHERE st.text IS NOT NULL
Cuestiones relacionadas
- 1. Cómo matar/Terminar todo el proceso en ejecución en Sql Server 2008
- 2. SPID de un SqlConnection (SQL-Server) en ADO.NET
- 3. SQL Server Linked Server Ejemplo de consulta
- 4. SQL Server sp_ExecuteSQL y planes de ejecución
- 5. Seguimiento de la ejecución de una consulta SQL en SQL SERVER
- 6. Concluir correctamente la consulta SQL Server de larga ejecución desde ADO.NET
- 7. Orden de ejecución de la consulta SQL
- 8. Consultas actualmente en ejecución en SQL Server
- 9. Disparos de SQL Server - orden de ejecución
- 10. ¿Cómo puedo ver los parámetros de los procesos en ejecución actualmente en SQL Server 2008
- 11. SQL Server 2008 consulta de tabla cruzada
- 12. consulta de SQL Server con expresiones regulares?
- 13. Cómo se puede cancelar un proceso de ejecución de SQL Server mediante programación
- 14. Consulta de SQL Server Server - Contar el campo DateTime distinto
- 15. Deshacerse de Table Spool en SQL Server Plan de ejecución
- 16. Forzando un tiempo de espera de consulta en SQL Server
- 17. ¿Cómo puede un usuario cancelar una consulta de larga ejecución?
- 18. Cómo CLEAR ejecución de la consulta Estadísticas en SQL Server 2005/2008
- 19. SQL Server Agent Trabajo en ejecución lenta
- 20. fork() proceso de ejecución
- 21. ¿Cómo comparar una consulta SQL Server?
- 22. SQL Server Consulta para agrupar fechas secuenciales
- 23. Significado de sp_who Estado en SQL Server
- 24. Tamaño de conjunto de resultados de consulta de SQL Server
- 25. ¿Alguna guía sobre cómo aprender a interpretar el plan de ejecución de una consulta SQL en SQL Server 2005?
- 26. SQL Server Linked Server consulta que se queda sin memoria
- 27. Proceso de ejecución dado el proceso handle
- 28. Consulta de datos de estructura de árbol en SQL Server
- 29. SQL Server - Ejecución de grandes archivos de comandos
- 30. Insertar proceso almacenado de actualización en SQL Server
¿qué versión de SQL Server estás usando? –