SQL Server查看存储过程的历史执行时间

news/2025/2/15 22:20:20/

在 SQL Server 中,查看存储过程的历史执行时间可以帮助识别性能瓶颈,判断是否需要进行优化。以下是几种常用的方法来查看或监控存储过程的执行时间:

1. 使用 SQL Server Profiler

SQL Server Profiler 是一个图形化工具,可以捕获并分析 SQL Server 的各种事件,包括存储过程的执行时间。

步骤:

  1. 打开 SQL Server Profiler。
  2. 创建一个新的跟踪(Trace)。
  3. 在事件选择中,选择存储过程相关的事件类别,例如:
    • RPC:Completed
    • SP:Completed
  4. 添加需要的列,例如:Duration、StartTime、EndTime。
  5. 运行跟踪,然后执行您的存储过程。
  6. 查看跟踪结果中的执行时间。

2. 使用 SQL Server Extended Events

Extended Events 是 SQL Server 中推荐使用的事件处理系统,提供了比 SQL Server Profiler 更加轻量和灵活的监控方式。

步骤:

  1. 打开 SQL Server Management Studio (SSMS)。
  2. 在对象资源管理器中,展开 “Management” -> “Extended Events”。
  3. 右键点击 “Sessions” -> “New Session Wizard”。
  4. 根据向导创建一个新的会话,选择监控存储过程执行的事件。
  5. 查看会话结果。

3. 查询系统动态管理视图 (DMVs)

SQL Server 提供了一些动态管理视图,可以用来查看存储过程的执行统计信息。

示例查询:

SELECT qs.creation_time,qs.execution_count,qs.total_worker_time / qs.execution_count AS AvgCPUTime,qs.total_elapsed_time / qs.execution_count AS AvgElapsedTime,qs.total_logical_reads / qs.execution_count AS AvgLogicalReads,qs.total_logical_writes / qs.execution_count AS AvgLogicalWrites,qs.total_physical_reads / qs.execution_count AS AvgPhysicalReads,OBJECT_NAME(qt.objectid) AS ProcName
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
WHERE qt.dbid = DB_ID('YourDatabaseName')AND OBJECT_NAME(qt.objectid) = 'YourStoredProcedureName'
ORDER BY qs.total_elapsed_time / qs.execution_count DESC;

4. 使用自定义日志表

如果您希望进行长期的性能监控,可以在存储过程中加入自定义日志记录,记录每次执行的开始时间和结束时间。

示例代码:

-- 创建日志表
CREATE TABLE ProcedureExecutionLog (ExecutionID INT IDENTITY(1,1) PRIMARY KEY,ProcedureName NVARCHAR(128),ExecutionStartTime DATETIME,ExecutionEndTime DATETIME,ExecutionDuration_ms INT
);-- 在存储过程开始处记录开始时间
DECLARE @startTime DATETIME = GETDATE();-- 存储过程的实际逻辑处理-- 在存储过程结束时记录结束时间和持续时间
DECLARE @endTime DATETIME = GETDATE();
INSERT INTO ProcedureExecutionLog (ProcedureName, ExecutionStartTime, ExecutionEndTime, ExecutionDuration_ms)
VALUES ('usr.access_SP', @startTime, @endTime, DATEDIFF(MILLISECOND, @startTime, @endTime));

5. SQL Server Query Store

Query Store 是 SQL Server 中用于捕获查询性能和执行计划的信息的功能。

  1. 启用 Query Store:

    ALTER DATABASE YourDatabaseName SET QUERY_STORE = ON;
    
  2. 使用 SSMS 中的 “Query Store” 查看存储过程的执行统计信息。

通过上述方法中的一种或多种,您可以监控存储过程的执行时间,并根据这些数据判断是否需要进行优化。


http://www.ppmy.cn/news/1572360.html

相关文章

FPGA实现SDI视频缩放转GTY光口传输,基于GS2971+Aurora 8b/10b编解码架构,提供工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目我这里已有的 GT 高速接口解决方案本博已有的 SDI 编解码方案我这里已有的FPGA图像缩放方案 3、工程详细设计方案工程设计原理框图SDI 输入设备GS2971芯片BT1120转RGB…

Java(Springboot)

get请求 在Controller中--->从仓库里取出要用的mysql----->对于get请求(httpsession,model容器)----->从httpsession取出userid再赋值给userid----->用userid在mysql获取用户的信息------>然后用户的信息在保存在model容器里---->ret…

游戏引擎学习第101天

回顾当前情况 昨天的进度基本上完成了所有内容,但我们还没有进行调试。虽然我们在运行时做的事情大致上是对的,但还是存在一些可能或者确定的bug。正如昨天最后提到的,既然现在时间晚了,就不太适合开始调试,所以今天我…

JVM组成

JVM是什么? JVM(Java Virtual Machine):Java程序的运行环境(java二进制字节码的运行环境) 好处: 1.一次编写,到处运行 Java代码是如何做到一次编写,到处运行? 计算机的最底层是计…

江科大51单片机学习笔记(2)

独立按键 轻触按键:相当于是一种电子开关,按下开关接通,松开时开关断开,实现原理是通过轻触按键内部的金属弹片受力弹动来实现接通和断开。 K1按键——P31 K2按键——P30 K3按键——P32 K4按键——P33 独立按键控制LED亮灭 #in…

如何评估云原生GenAI应用开发中的安全风险(下)

以上就是如何评估云原生GenAI应用开发中的安全风险系列中的上篇内容,在本篇中我们介绍了在云原生AI应用开发中不同层级的风险,并了解了如何定义AI系统的风险。在本系列下篇中我们会继续探索我们为我们的云原生AI应用评估风险的背景和意义,并且…

渗透利器:Burp Suite 联动 XRAY 图形化工具.(主动扫描+被动扫描)

Burp Suite 联动 XRAY 图形化工具.(主动扫描被动扫描) Burp Suite 和 Xray 联合使用,能够将 Burp 的强大流量拦截与修改功能,与 Xray 的高效漏洞检测能力相结合,实现更全面、高效的网络安全测试,同时提升漏…

【学习资源】时间序列数据分析方法(1)

时间序列数据分析是一个有趣的话题,让我们多花一些时间来研究。此篇为第一篇文章。主要介绍特征提取方法、深度学习时序数据分析模型、参考资源。期望能帮助大家解决工业领域的相关问题。 1 特征提取方法:信号处理 (来源:INTELLIGENT FAULT DIAGNOSIS A…