天天看点

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

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

执行了多少次

执行的执行计划如何

执行的平均读写如何

执行平均需要多少时间

列名

数据类型

说明

database_id

int

存储过程所在的数据库 ID。

object_id

存储过程的对象标识号。

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

内存中计划的标识符。该标识符是瞬态的,仅当计划保留在缓存中时,它才保持不变。该值可以与 sys.dm_exec_cached_plans 动态管理视图一起使用。

cached_time

datetime

存储过程添加到缓存的时间。

last_execution_time

上次执行存储过程的时间。

execution_count

bigint

存储过程自上次编译以来所执行的次数。

total_worker_time

此存储过程自编译以来执行所用的 CPU 时间总量(微秒)。

last_worker_time

上次执行存储过程所用的 CPU 时间(微秒)。

min_worker_time

此存储过程在单次执行期间曾占用的最大 CPU 时间(微秒)。

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

任意一次完成此存储过程的执行所用的最长时间(微秒)。

下面语句返回前十句耗费时间最长的存储过程信息: