是否有程序或SQL查詢,我可以找到哪些SQL查詢正在SQL Server 2012上運行?我認爲在早期版本的SQL Server中有一個工具可以顯示實際查詢內容或存儲過程名稱?目前在SQL Server中運行查詢
回答
這裏是你需要安裝SQL事件探查器http://msdn.microsoft.com/en-us/library/bb500441.aspx什麼。不過,如果您希望在您的生產環境中執行此操作,我建議您通讀這一http://blog.sqlauthority.com/2009/08/03/sql-server-introduction-to-sql-server-2008-profiler-2/。 還有一種更好的方式來看待查詢看這一個,看看是否有幫助 http://www.youtube.com/watch?v=vvziPI5OQyE
您正在談論SQL Profiler。
根據您的權限,此查詢可能工作:
SELECT sqltext.TEXT,
req.session_id,
req.status,
req.command,
req.cpu_time,
req.total_elapsed_time
FROM sys.dm_exec_requests req
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS sqltext
編號:http://blog.sqlauthority.com/2009/01/07/sql-server-find-currently-running-query-t-sql
這確實有用,但有什麼方法可以找出參數值嗎? – jtate
有這一點,從SQL Server DMV的行動中書:
輸出顯示SPID(進程標識符) ecid(這類似於同一個spid中的線程,對於識別並行運行的查詢很有用),運行SQL的用戶,狀態(SQL是否正在運行或等待),等待狀態(爲什麼它正在等待) ,主機名,域名和開始時間(用於確定批處理運行的時間)。
好的部分是查詢和父查詢。例如,它顯示了一個存儲過程作爲父進程,以及正在運行的存儲過程中的查詢。這對我來說非常方便。我希望這可以幫助別人。
USE master
GO
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SELECT
er.session_Id AS [Spid]
, sp.ecid
, er.start_time
, DATEDIFF(SS,er.start_time,GETDATE()) as [Age Seconds]
, sp.nt_username
, er.status
, er.wait_type
, SUBSTRING (qt.text, (er.statement_start_offset/2) + 1,
((CASE WHEN er.statement_end_offset = -1
THEN LEN(CONVERT(NVARCHAR(MAX), qt.text)) * 2
ELSE er.statement_end_offset
END - er.statement_start_offset)/2) + 1) AS [Individual Query]
, qt.text AS [Parent Query]
, sp.program_name
, sp.Hostname
, sp.nt_domain
FROM sys.dm_exec_requests er
INNER JOIN sys.sysprocesses sp ON er.session_id = sp.spid
CROSS APPLY sys.dm_exec_sql_text(er.sql_handle)as qt
WHERE session_Id > 50
AND session_Id NOT IN (@@SPID)
ORDER BY session_Id, ecid
我用下面的查詢
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
我發現這比其他查詢顯示正在運行的作業更有幫助。這一個顯示主機和登錄,這很好,謝謝! – russds
- 1. ClickOnce運行SQL Server查詢
- 2. PHP運行SQL Server查詢
- 3. 如何運行在SQL Server中查詢SQL文件
- 4. TSql(sql server 2005)查詢運行緩慢
- 5. 該查詢運行SQL Server的更快
- 6. 如何在SQL Server中查找運行不正常的查詢?
- 7. MySQL嵌套查詢不會運行,在SQL Server上運行
- 8. 更新查詢在SQL Server中運行但不在Oracle中
- 9. SQL Server查詢在ADO.NET中運行速度比在SSMS中慢
- 10. SQL查詢超時從C#運行,在SQL Server Management Studio中快速運行
- 11. 運行sql查詢,該查詢在日期前刪除列
- 12. Zeppelin Oracle SQL查詢運行前線
- 13. SQL Server Express似乎運行的查詢比SQL Server慢很多
- 14. 在SQL Server Management Studio中執行之前禁用查詢驗證
- 15. SQL查詢在SQL Server 2008標準上運行,但在企業上運行
- 16. SQL Server查詢下一行值,其中前一行的值爲
- 17. SQL查詢始終運行 - SQL Server 2008中
- 18. SQL Server反覆運行不在循環中的查詢
- 19. 在Python中運行sql server查詢時出錯error
- 20. 在Sql Server 2008中快速運行查詢
- 21. 顯示查詢需要在SQL Server中運行多長時間
- 22. 如何在SQL Server 2012中運行子查詢?
- 23. 簡單查詢在SQL Server中緩慢運行?
- 24. 如何在SQL Server中一次運行多個查詢
- 25. 查詢並不再在SQL Server中運行2014
- 26. 運行SQL查詢
- 27. 運行SQL查詢
- 28. 檢查在SQL Server上運行的「DROP」查詢
- 29. 查詢在SQL Server中
- 30. 每次運行SQL Server代理作業時運行查詢
SQL事件探查也就是說,不是嗎? :) –