DBA工具——DMV——通过sys.dm_exec_procedure_stats查看存储过程执行信息

简介: 原文: DBA工具——DMV——通过sys.dm_exec_procedure_stats查看存储过程执行信息 对于DBA来说,经常要手机存储过程的某些信息: 执行了多少次执行的执行计划如何执行的平均读写如何执行平均需要多少时间 列名 数据类型 说明 database_id int 存储过程所在的数据库 ID。
原文: DBA工具——DMV——通过sys.dm_exec_procedure_stats查看存储过程执行信息

对于DBA来说,经常要手机存储过程的某些信息:

  1. 执行了多少次
  2. 执行的执行计划如何
  3. 执行的平均读写如何
  4. 执行平均需要多少时间
列名 数据类型 说明

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


目录
相关文章
|
7月前
|
存储 SQL 定位技术
数据库基础(六):T-SQL语言程序设计、游标定义与使用及存储过程创建与信息查找
数据库基础(六):T-SQL语言程序设计、游标定义与使用及存储过程创建与信息查找
111 1
|
存储
4.2.7 创建一个存储过程,用于获取指定线路名的详细线路信息,要求显示线路名、行程天数、价格、交通工具和住宿标准。
4.2.7 创建一个存储过程,用于获取指定线路名的详细线路信息,要求显示线路名、行程天数、价格、交通工具和住宿标准。
134 0
|
存储 数据库
【视频】配置信息管理 的 使用方法(三):查看和修改元数据、查看数据库的表视图存储过程等信息
  这个是查看和修改我们在上一个视频里添加的元数据的方法。   感谢 svnhost.cn 提供空间。  
875 0
|
存储 SQL XML
SQL Server 2008空间数据应用系列十:使用存储过程生成GeoRSS聚合空间信息
原文:SQL Server 2008空间数据应用系列十:使用存储过程生成GeoRSS聚合空间信息友情提示,您阅读本篇博文的先决条件如下:   1、本文示例基于Microsoft SQL Server 2008 R2调测。
960 0

相关实验场景

更多
下一篇
DataWorks