我有一個很長的列表中的一些緩慢運行的存儲過程在我們想監視的數據庫之一。我們正在運行SQL Server 2012企業版。我知道SQL Server分析器不再是推薦使用的工具,任何建議?我想監視我的緩慢運行的SQL Server存儲過程
在此先感謝
我有一個很長的列表中的一些緩慢運行的存儲過程在我們想監視的數據庫之一。我們正在運行SQL Server 2012企業版。我知道SQL Server分析器不再是推薦使用的工具,任何建議?我想監視我的緩慢運行的SQL Server存儲過程
在此先感謝
SQL Server支持收集執行統計數據的本地編譯存儲過程,無論在程序級別和查詢級別。由於性能影響,收集執行統計信息默認情況下未啓用。
您可以使用sys.sp_xtp_control_proc_exec_stats
(Transact-SQL)在本機編譯的存儲過程上啓用和禁用統計信息收集。
Extended Events是更換爲探查/ SQL跟蹤。 Profiler提供的許多事件也可用於擴展事件,以及其他許多事件。
如果您當前有過濾的SQL跟蹤(包括rpc_completed和sql_batch_completed事件寫入翻轉文件),下面的DDL將創建一個XE跟蹤,以將這些相同的事件捕獲到具有翻滾的擴展事件文件。
CREATE EVENT SESSION [cache] ON SERVER
ADD EVENT sqlserver.rpc_completed(
WHERE ([sqlserver].[like_i_sql_unicode_string]([statement],N'proc1')
OR [sqlserver].[like_i_sql_unicode_string]([statement],N'proc2')
OR [sqlserver].[like_i_sql_unicode_string]([statement],N'proc3'))),
ADD EVENT sqlserver.sql_batch_completed(SET collect_batch_text=(1)
WHERE ([sqlserver].[like_i_sql_unicode_string]([batch_text],N'proc1')
OR [sqlserver].[like_i_sql_unicode_string]([batch_text],N'proc2')
OR [sqlserver].[like_i_sql_unicode_string]([batch_text],N'proc3')))
ADD TARGET package0.event_file(SET filename=N'selected_proc_trace',max_file_size=(1024),max_rollover_files=(5))
WITH (
MAX_MEMORY=4096 KB
,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS
,MAX_DISPATCH_LATENCY=30 SECONDS
,MAX_EVENT_SIZE=0 KB
,MEMORY_PARTITION_MODE=NONE
,TRACK_CAUSALITY=OFF
,STARTUP_STATE=OFF);
GO
擴展事件蹤跡可以創建,管理和使用SSMS查看的數據對象資源管理器下的管理 - >擴展事件 - >會話。該工具還包括用於等效Profiler模板的模板。
嗨謝謝您的回覆,一旦我啓用了統計信息收集,我可以在哪裏查看此信息? – user8537241
嗨謝謝你的回覆,我沒有看到管理 - >擴展事件 - > SSMS中的擴展事件,我錯過了什麼嗎? 再次感謝。 – user8537241