我有一个很长的列表中的一些缓慢运行的存储过程在我们想监视的数据库之一。我们正在运行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