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_ ...
随机推荐
- windows phone 7 通过麦克风录音,并且播放
原文:windows phone 7 通过麦克风录音,并且播放 //模拟XNA的框架(凡是在wp7中应用xna的都必须先模拟此类) public class XNAAsyncDispatcher : ...
- Android (1) - Activity
onCreate(Bundle status) --> setContentView(View view) --> findViewById(int id) Intent intentFo ...
- ArrayList实现借壳
随着Collections工具: import java.util.ArrayList; import java.util.Collections; public class TTEST { publ ...
- mybatis与mysql插入时返回主键id的值
<insert id="insertCharge" parameterType="com.bb.bean.Rechargerecord"> < ...
- APUE读书笔记-第13章-守护进程
第13章 守护进程 13.1 引言 *守护进程也称精灵进程(daemon)是生存期较长的一种进程.它们常常在系统自举时启动,仅在系统关闭时才终止.因为它们没有控制终端,所以说它们是在后台运行的.UNI ...
- 【Android进阶】Android面试题目整理与讲解(二)
1. ArrayList,Vector, LinkedList 的存储性能和特性 ArrayList 和 Vector 都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们 ...
- Codeforces Round #256 (Div. 2) A. Rewards
A. Rewards time limit per test 1 second memory limit per test 256 megabytes input standard input out ...
- nodeValue的兼容问题
nodeValue获取Text或Comment元素的文本值. 在IE6.IE7.IE8中游览器会自作聪明的去掉前面的空白字符text,而其它现代游览器则会保留空白 <body> <s ...
- 重新想象 Windows 8 Store Apps (21) - 动画: ThemeTransition(过渡效果)
原文:重新想象 Windows 8 Store Apps (21) - 动画: ThemeTransition(过渡效果) [源码下载] 重新想象 Windows 8 Store Apps (21) ...
- js缓冲运动
缓冲运动 现象:逐渐变慢,最后停止 原理:距离越远,速度越大 速度的计算方式: 1,速度由距离决定 2,速度=(目标值-当前值)/缩放系数 说明:速度为正负数时,也决定了物体移动的方向 示例:div缓 ...