2012-01-13 71 views
0

我們有這種反覆出現的情況,我們的應用程序每週幾次停止響應。我想要做的是能夠查看在SQL Server上運行的查詢的文本。是否可以記錄在SQL Server上執行的每個查詢的文本?

我可以使用sp_who來查看打開的連接,但它不顯示實際的查詢文本。

如果我能看到凍結我的數據庫的查詢,我可以有一個優化的起點。

這發生在幾分鐘前,我們的系統管理員不得不重新啓動這個盒子。這種重新啓動是不可持續的。

我應該採取哪些措施?

我想查看在我的服務器上運行的查詢的實際文本。

SQL Server 2000的

+0

SSMS>工具> SQL Server Profiler中 – 2012-01-13 21:49:28

回答

1

使用此而塊正在發生的事情:

SELECT 
    r.session_id AS spid 
     ,r.cpu_time,r.reads,r.writes,r.logical_reads 
     ,r.blocking_session_id AS BlockingSPID 
     ,LEFT(OBJECT_NAME(st.objectid, st.dbid),50) AS ShortObjectName 
     ,LEFT(DB_NAME(r.database_id),50) AS DatabaseName 
     ,s.program_name 
     ,s.login_name 
     ,OBJECT_NAME(st.objectid, st.dbid) AS ObjectName 
     ,SUBSTRING(st.text, (r.statement_start_offset/2)+1,((CASE r.statement_end_offset 
                    WHEN -1 THEN DATALENGTH(st.text) 
                    ELSE r.statement_end_offset 
                   END - r.statement_start_offset 
                  )/2 
                  ) + 1 
       ) AS SQLText 
    FROM sys.dm_exec_requests       r 
     JOIN sys.dm_exec_sessions      s ON r.session_id = s.session_id 
     CROSS APPLY sys.dm_exec_sql_text (sql_handle) st 
    WHERE [email protected]@SPID 

這將列出所有活動的SPID,誰阻止他們,每個SPID

編輯的SQL
這個查詢是針對SQL Server 2005+的,最初的問題沒有說明SQL Server 2000

+0

我得到這個錯誤「消息174,15級,狀態1,第5行 的OBJECT_NAME函數需要1個參數」運行上面的SQL – holaSenor 2012-01-13 21:56:04

+0

時候還什麼是後面的空白空間「FROM sys.dm_exec_requests'和'JOIN sys.dm_exec_sessions'? – holaSenor 2012-01-13 21:57:01

+0

sql server 2000?空白是這樣的所有表別名值對齊,我發現很容易看到很多連接,並迅速看到所有的別名值 – 2012-01-13 21:57:14

相關問題