pra*_*nth 4 performance sql-server-2008 sql-server stored-procedures
我正在接手一个新项目,它有大约 2500 个 SP!并想知道在当前状态下每个存储过程所花费的最大/最小时间是多少。还有 IO,每个 SP 使用的逻辑读取。想以这种方式对其进行基准测试。每次新下降后都会使用此基准来比较所做的更改是否有帮助。
DMV 或扩展活动在这里有帮助吗?或者我是否需要运行覆盖我完整工作负载的跟踪来捕获它?
Aar*_*and 10
这将使您获得自上次服务重启以来平均持续时间最长的前 100 名。当 SQL Server 重新启动时,此 DMV 会重置,因此如果您需要超出此范围,则需要跟踪、使用扩展事件、使用某种审计(内置或手动),或投资购买 3rd 方监控工具.
您可以明显地调整它,或者遵循不同的指标,例如物理或逻辑读取......
USE [Your Database Name];
GO
SELECT TOP (100)
OBJECT_SCHEMA_NAME([object_id]),
OBJECT_NAME([object_id]),
type_desc,
cached_time,
last_execution_time,
execution_count,
total_worker_time,
last_worker_time,
min_worker_time,
max_worker_time,
total_physical_reads,
last_physical_reads,
min_physical_reads,
max_physical_reads,
total_logical_writes,
last_logical_writes,
min_logical_writes,
max_logical_writes,
total_logical_reads,
last_logical_reads,
min_logical_reads,
max_logical_reads,
total_elapsed_time,
last_elapsed_time,
min_elapsed_time,
max_elapsed_time
FROM sys.dm_exec_procedure_stats
WHERE DB_NAME(database_id) = N'Your Database Name'
ORDER BY total_elapsed_time / execution_count DESC;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1794 次 |
最近记录: |