对于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_countavg_elapsed_time ,
b.text ,
c.query_plan
FROM sys.dm_exec_procedure_stats AS a
CROSS APPLYsys.dm_exec_sql_text(a.sql_handle) b
CROSS APPLYsys.dm_exec_query_plan(a.plan_handle) c
ORDERBY [total_worker_time] DESC ;
分享到:
相关推荐
- **ORDER BY total_elapsed_time/execution_count DESC**:按照平均执行时间降序排列,这样就可以优先看到那些平均耗时最长的查询语句。 - **TOP 10**:限制返回的结果集大小为10条记录。 ### 知识点二:查询优化...
在SQL Server数据库管理中,死锁是一个常见的性能问题,它发生在两个或多个事务相互等待对方释放资源时。本文将深入探讨如何使用SQL Server Profiler工具来监视和分析死锁,以便更好地理解和解决这类问题。 首先,...
### SQL Server 数据库迁移孤立用户的解决方法 在进行SQL Server数据库迁移时,经常会遇到一个棘手的问题:迁移完成后,部分用户无法与原有的登录名相对应,导致这些用户成为“孤立用户”。这种情况下,用户虽然...
例如,通过Profiler监控SQL Server的实时操作,可以找出耗时较长的查询并优化;通过查询分析器,可以快速查看查询计划,识别潜在的索引问题,从而进行必要的索引调整。总的来说,这个工具集是SQL Server管理和维护不...
本项目“AndroidStudio版登陆界面加直连Sqlserver”旨在教你如何在Android Studio中创建一个登录界面,并实现直接连接到Sqlserver数据库的功能。这涉及到Android应用开发、UI设计、网络编程以及数据库连接等多个知识...
在使用SQLServer数据库时,数据的备份和恢复是数据库管理中非常重要的环节。尤其在开发和生产环境中,表级数据的恢复显得尤为重要,因为关键表往往存放着核心数据,一旦出现数据损坏,需要迅速采取措施进行恢复。...
【赛迪网-IT技术报道】SQL Server数据库查询速度慢的原因有很多,常见的有以下几种: 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有...
一款跟踪SQLserver执行脚本的软件,只需在.net项目中引用该工具的动态库就可以完美监控SQLserver执行脚本的多项指标(执行语句,耗时等),比SQLserver自带的SQLserver profiler工具使用起来要简单。
因此,有了"Excel导入SQLserver源码_excel2sql.zip"这样的工具或代码,可以极大地提高工作效率。 这个压缩包文件"Excel导入SQLserver源码_excel2sql.zip"很可能包含了一个程序或脚本,用于自动化从Excel文件批量...
SQLServer脚本批量执行工具是一种高效管理SQL Server数据库的实用程序,它允许用户一次性执行多个SQL脚本,显著提高了数据库管理员的工作效率。该工具的主要功能包括脚本的顺序执行、执行结果的记录以及脚本的可视化...
当数据增加到 500 万条的时候,SQL Server 2008 耗时 34 秒,相当于 Mysql 在 265 万时的耗时时间。 当数据增加到 1000 万时,Mysql 已经内存溢出,需要耗时 7 分 31 秒。 结论 通过对比分析,数据量越大,SQL ...
在SQL Server数据库管理中,有时我们需要将表中的数据导出为Insert语句,这在数据迁移、备份或测试环境中非常常见。"SQL Server表数据导出成Insert语句的工具"是一个专门为此目的设计的应用程序,它能帮助数据库管理...
标题中的“sqlserver转换sqlite”指的是将Microsoft SQL Server数据库的数据迁移至SQLite数据库的过程。这是一个常见的需求,尤其是在需要轻量级数据库、跨平台支持或者离线数据存储的场景中。SQL Server是企业级的...
《XlsToSql:Excel数据高效导入SqlServer的实用工具》 在信息技术领域,数据库管理和数据处理是日常工作中不可或缺的部分。Microsoft SQL Server(简称SqlServer)作为一款广泛应用的关系型数据库管理系统,其强大...
### 提高SQL Server性能:通过DBCC DBREINDEX重建索引 #### 一、引言 在数据库管理系统中,SQL Server作为一款广泛使用的数据库产品,其性能优化是确保应用程序高效运行的关键因素之一。其中,索引是提升查询速度的...
在SQL Server中,查询性能优化是一项关键任务,尤其是在处理大量数据和复杂业务逻辑时。当数据库中的查询执行效率不高时,不仅会影响应用的响应速度,还可能导致资源浪费和系统瓶颈。因此,掌握如何查看和分析执行...
扩展存储过程(XP_开头)则提供了与操作系统交互的能力,但调用操作系统级别的功能通常比纯SQL操作更耗时,且可能引入额外的安全风险。 优化存储过程的方法包括: 1. **避免参数嗅探**:可以通过重写存储过程,使用...
1. **查看每个数据库的备份耗时**:通过监控工具或SQL查询语句来获取各个数据库最近几次备份的时间消耗情况。 2. **定位异常数据库**:如果发现某个数据库(例如案例中的omis数据库)的备份时间异常增加,这可能是...
### SQL Server 2012 Introduction 中文版关键知识点概览 #### 一、SQL Server 2012概述 **Microsoft SQL Server 2012** 是一款由微软公司开发的关系型数据库管理系统,它是SQL Server系列的一个重要版本,旨在为...
《SQLSERVER到MYSQL的数据迁移工具mss2sql详解》 在数据库管理中,有时我们需要将数据从一个数据库系统迁移到另一个数据库系统。SQL Server和MySQL是两种广泛应用的关系型数据库管理系统,各自有着不同的特点和优势...