DBA工具——DMV——通过sys.dm_exec_procedure_stats查看存储过程执行信息
原文:DBA工具——DMV——通过sys.dm_exec_procedure_stats查看存储过程执行信息
对于DBA来说,经常要手机存储过程的某些信息:
- 执行了多少次
- 执行的执行计划如何
- 执行的平均读写如何
- 执行平均需要多少时间
列名 | 数据类型 | 说明 |
---|---|---|
database_id |
int |
存储过程所在的数据库 ID。 |
object_id |
int |
存储过程的对象标识号。 |
type |
char(2) |
对象的类型: P = SQL 存储过程 PC = 程序集 (CLR) 存储过程 X = 扩展存储过程 |
type_desc |
nvarchar(60) |
对对象类型的说明: SQL_STORED_PROCEDURE CLR_STORED_PROCEDURE EXTENDED_STORED_PROCEDURE |
sql_handle |
varbinary(64) |
可用于与 sys.dm_exec_query_stats 中从此存储过程中执行的查询关联。 |
plan_handle |
varbinary(64) |
内存中计划的标识符。该标识符是瞬态的,仅当计划保留在缓存中时,它才保持不变。该值可以与 sys.dm_exec_cached_plans 动态管理视图一起使用。 |
cached_time |
datetime |
存储过程添加到缓存的时间。 |
cached_time |
datetime |
存储过程添加到缓存的时间。 |
last_execution_time |
datetime |
上次执行存储过程的时间。 |
execution_count |
bigint |
存储过程自上次编译以来所执行的次数。 |
total_worker_time |
bigint |
此存储过程自编译以来执行所用的 CPU 时间总量(微秒)。 |
last_worker_time |
bigint |
上次执行存储过程所用的 CPU 时间(微秒)。 |
min_worker_time |
bigint |
此存储过程在单次执行期间曾占用的最大 CPU 时间(微秒)。 |
max_worker_time |
bigint |
此存储过程在单次执行期间曾占用的最大 CPU 时间(微秒)。 |
total_physical_reads |
bigint |
此存储过程自编译后在执行期间所执行的物理读取总次数。 |
last_physical_reads |
bigint |
上次执行存储过程时所执行的物理读取次数。 |
min_physical_reads |
bigint |
该存储过程在单次执行期间所执行的最少物理读取次数。 |
max_physical_reads |
bigint |
该存储过程在单次执行期间所执行的最大物理读取次数。 |
total_logical_writes |
bigint |
此存储过程自编译后在执行期间所执行的逻辑写入总次数。 |
last_logical_writes |
bigint |
上次执行存储过程时所执行的逻辑写入次数。 |
min_logical_writes |
bigint |
该存储过程在单次执行期间所执行的最少逻辑写入次数。 |
max_logical_writes |
bigint |
该存储过程在单次执行期间所执行的最大逻辑写入次数。 |
total_logical_reads |
bigint |
此存储过程自编译后在执行期间所执行的逻辑读取总次数。 |
last_logical_reads |
bigint |
上次执行存储过程时所执行的逻辑读取次数。 |
min_logical_reads |
bigint |
该存储过程在单次执行期间所执行的最少逻辑读取次数。 |
max_logical_reads |
bigint |
该存储过程在单次执行期间所执行的最大逻辑读取次数。 |
total_elapsed_time |
bigint |
完成此存储过程的执行所用的总时间(微秒)。 |
last_elapsed_time |
bigint |
最近完成此存储过程的执行所用的时间(微秒)。 |
min_elapsed_time |
bigint |
任意一次完成此存储过程的执行所用的最短时间(微秒)。 |
max_elapsed_time |
bigint |
任意一次完成此存储过程的执行所用的最长时间(微秒)。 |
SELECT TOP 10
a.object_id ,
a.database_id ,
DB_NAME(ISNULL(a.database_id,'')) 'DatabaseName',
OBJECT_NAME(object_id, database_id) 'proc name' ,
a.cached_time ,
a.last_execution_time ,
a.total_elapsed_time ,
a.total_elapsed_time / a.execution_count AS [avg_elapsed_time] ,
a.execution_count ,
a.total_physical_reads / a.execution_count avg_physical_reads ,
a.total_logical_writes ,
a.total_logical_writes / a.execution_count avg_logical_reads ,
a.last_elapsed_time ,
a.total_elapsed_time / a.execution_count avg_elapsed_time ,
b.text ,
c.query_plan
FROM sys.dm_exec_procedure_stats AS a
CROSS APPLY sys.dm_exec_sql_text(a.sql_handle) b
CROSS APPLY sys.dm_exec_query_plan(a.plan_handle) c
ORDER BY [total_worker_time] DESC ; GO
DBA工具——DMV——通过sys.dm_exec_procedure_stats查看存储过程执行信息的更多相关文章
- SQL server 2008里面通过sys.dm_exec_procedure_stats得到存储过程的执行信息--转
--转自:http://blogs.msdn.com/b/apgcdsd/archive/2011/05/13/sql-server-2008-sys-dm-exec-procedure-stats. ...
- DBA工具——DMV——如何知道TSQL语句已运行了多久
原文:DBA工具--DMV--如何知道TSQL语句已运行了多久 DBA通常想知道正在运行的语句已经执行了多久了?可以使用Sqlserver profiler来捕获语句的开始时间,和现有时间比较,但是在 ...
- SQL Server 查看存储过程执行次数的方法
今天老大提出一个需求,想查看数据库存储过程执行的次数,以前没有接触过,于是网上找了下,发现还真有! 不废话,贴出来sql语句,直接执行即可看到结果: use master select text,ex ...
- SQL Server如何查看存储过程的执行计划
有时候,我们需要查看存储过程的执行计划,那么我们有什么方式获取存储过程的历史执行计划或当前的执行计划呢? 下面总结一下获取存储过程的执行计划的方法. 1:我们可以通过下面脚本查看存储过程的执行计划,但 ...
- 使用sys.dm_exec_cached_plans监控存储过程性能
讨论了如何使用sys.dm_exec_query_stats动态管理视图(dmv ).本文将以SQL Server 2005为例,讨论如何利用dmv信息来判断tsql的性能优劣.在这篇文章中将继续我有 ...
- Sql Server 查看存储过程最后修改时间
Sql Server 查看存储过程最后修改时间 select * from sys.procedures order by modify_date desc
- Map工具系列-08-map控件查看器
所有cs端工具集成了一个工具面板 -打开(IE) Map工具系列-01-Map代码生成工具说明 Map工具系列-02-数据迁移工具使用说明 Map工具系列-03-代码生成BySQl工具使用说明 Map ...
- mysql查看存储过程
查询数据库中的存储过程 方法一: select `name` from mysql.proc where db = 'your_db_name' and `type` = 'PROCEDURE' 方法 ...
- SQL存储过程相关信息查看转
原文地址:http://www.cnblogs.com/minideas/archive/2009/10/29/1591891.html --1.查看所有存储过程与函数 exec sp_ ...
随机推荐
- 虚拟化技术学习(一)在VMware虚拟机中安装KVM
近期一直研究虚拟化技术,曾经对VMware虚拟机有一定的了解,近期突发奇想,能不能在VMware虚拟机中再装一个虚拟机呢? 那么问题就来了,首先,你须要一台电脑,vmware软件,(本人的电脑配置渣渣 ...
- 【PhotoShop】采用PS让美丽的咖啡泡沫
稀土一杯咖啡,如何你不能击败张(常苦黑咖啡饮料实在受不了! ) 得到例如以下图 看着还不错,但是总感觉空空荡荡的,所以就拿来PS练手了.终于效果图例如以下: 以下讲下制作过程: 首先是给照片加下咖啡泡 ...
- 无法打开登录所请求的数据库 "ASPState"。登录失败。 用户 'NT AUTHORITY/SYSTEM' 登录失败。
原文:无法打开登录所请求的数据库 "ASPState".登录失败. 用户 'NT AUTHORITY/SYSTEM' 登录失败. 无法打开登录 'ASPState' 中请求的数据库 ...
- 修改linux系统时间、rtc时间以及时间同步
修改linux的系统时间用date -s [MMDDhhmm[[CC]YY][.ss]] 但是系统重启就会从新和硬件时钟同步. 要想永久修改系统时间,就需要如下命令:hwclock hwclock - ...
- Android分屏显示LogCat
Eclipse里有非常多界面组件,文件列表.编辑区.类结构等等,在这么多界面组件里,再打开一个Logcat就基本没有什么空间了.与其挤在一起还不如分开成两个窗体. 或者你有两个屏幕,想一个屏幕编辑,一 ...
- hdu 1394 Minimum Inversion Number(线段树之 单点更新求逆序数)
Minimum Inversion Number T ...
- Linux内核源代码的学习过程转换完成细节
linux中的进程是个最主要的概念,进程从执行队列到開始执行有两个開始的地方, 一个就是switch_to宏中的标号1:"1:/t",//仅仅要不是新创建的进程,差点儿都是从上面的 ...
- Mvc后台接收 参数
@Html.TextAreaFor(m => m.Emps, new { @class = "easyui-validatebox", @style = "heig ...
- Android TextView里直接显示图片的三种方法
方法一:重写TextView的onDraw方法,也挺直观就是不太好控制显示完图片后再显示字体所占空间的位置关系.一般假设字体是在图片上重叠的推荐这样写.时间关系,这个不付源代码了. 方法二:利用Tex ...
- => 朗姆达表达式带入符号
=> 是朗姆达表达式中的用法,是指向的意思具体就是是把=>左边声明的变量带入到=>右边的表达式或者代码段里.