`
zhangziyangup
  • 浏览: 1186758 次
文章分类
社区版块
存档分类
最新评论

存储过程性能查询语句

 
阅读更多

sys.dm_exec_procedure_stats返回缓存存储过程的聚合性能统计信息,所以用这个函数我们可以查询缓存的存储过程性能,然后针对耗资源的部分进行优化。

SELECT DB_NAME(database_id) DBName,
OBJECT_NAME(object_id) SPName,
datediff(second, last_execution_time, getdate()) SecondsAgo,
last_execution_time LastExecDate,
CASE WHEN execution_count = 0 THEN '--' ELSE
RIGHT('0'+convert(varchar(5),(total_elapsed_time/(1000000*execution_count))/3600),2)+':'+
RIGHT('0'+convert(varchar(5),(total_elapsed_time/(1000000*execution_count))%3600/60),2)+':'+
RIGHT('0'+convert(varchar(5),((total_elapsed_time/(1000000*execution_count))%60)),2) END ReadableTime,
CASE WHEN execution_count= 0 THEN 0 ELSE total_elapsed_time/(1000*execution_count) END AvgTimeMS,
CASE WHEN execution_count= 0 THEN 0 ELSE total_worker_time/(1000*execution_count) END AvgTimeCPU,
last_elapsed_time/1000 LastTimeMS,
min_elapsed_time/1000 MinTimeMS,
total_elapsed_time/1000 TotalTimeMS,
CASE WHEN DATEDIFF(second, s.cached_time, GETDATE()) < 1 THEN 0 ELSE
cast(execution_count as decimal) / cast(DATEDIFF(second, s.cached_time, GETDATE()) as decimal) END ExecPerSecond,
execution_count TotalExecCount,
last_worker_time/1000 LastWorkerCPU,
last_physical_reads LastPReads,
max_physical_reads MaxPReads,
last_logical_writes LastLWrites,
last_logical_reads LastLReads
FROM sys.dm_exec_procedure_stats s
WHERE database_id = DB_ID()
AND last_execution_time > dateadd(day, -7, getdate())
ORDER BY 6 desc, 3

---Investigating logical reads performed by cached stored procedures
-- Top Cached SPs By Total Logical Reads (SQL 2008 only).
-- Logical reads relate to memory pressure
SELECT TOP ( 25 )
p.name AS [SP Name] ,
deps.total_logical_reads AS [TotalLogicalReads] ,
deps.total_logical_reads / deps.execution_count AS [AvgLogicalReads] ,
deps.execution_count ,
ISNULL(deps.execution_count / DATEDIFF(Second, deps.cached_time,
GETDATE()), 0) AS [Calls/Second] ,
deps.total_elapsed_time ,
deps.total_elapsed_time / deps.execution_count AS [avg_elapsed_time] ,
deps.cached_time
FROM sys.procedures AS p
INNER JOIN sys.dm_exec_procedure_stats
AS deps ON p.[object_id] = deps.[object_id]
WHERE deps.database_id = DB_ID()
ORDER BY deps.total_logical_reads DESC ;

更多信息可以参考:http://msdn.microsoft.com/zh-cn/library/cc280701.aspx

分享到:
评论

相关推荐

    SQL Server中存储过程比直接运行SQL语句慢的原因

    例如,一个存储过程内部的嵌套查询、循环或临时表使用,如果没有经过充分优化,可能成为性能瓶颈。 再者,存储过程的安全性和权限控制。存储过程可以限制对数据库资源的访问,只有授权的用户才能执行特定的存储过程...

    通用的存储过程sql分页查询语句

    总结,通用的存储过程SQL分页查询语句是数据库开发中的重要工具,它结合了存储过程的复用性和SQL的灵活性,可以高效地处理大数据量的分页查询。通过选择适当的分页方法和优化策略,我们可以进一步提升查询性能,提供...

    存储过程精妙语句初学精通

    在数据库管理领域,存储过程(Stored Procedure)是预编译的SQL语句集合,它可以包含一系列的数据库操作,如查询、插入、更新和删除数据,甚至包括事务处理和错误处理等复杂逻辑。学习并精通存储过程是提升数据库...

    不能在存储过程中使用的语句

    在SQL Server中,存储过程是一种预编译的SQL代码集合,它可以实现复杂的业务逻辑和数据操作功能,并且有助于提高数据库应用程序的性能与安全性。然而,并非所有的T-SQL语句都可以在存储过程中使用。根据提供的文件...

    SQL语句创建存储过程

    在SQL Server 2005中,存储过程...存储过程可以在需要执行多次的操作中提供性能优势,同时通过参数化查询防止SQL注入攻击。在SQL Server Management Studio中,可以方便地测试和调试这些存储过程,确保它们按预期工作。

    SQL代码_存储过程、存储函数、查询语句_purplev97_indeed7go_

    本文将深入探讨“SQL代码_存储过程、存储函数、查询语句_purplev97_indeed7go_”这个主题,帮助你理解和掌握如何使用PL/SQL编程来调用存储过程和存储函数,以及执行高效的查询语句。 首先,存储过程(Stored ...

    ORACLE存储过程性能优化技巧

    ### ORACLE存储过程性能优化技巧 #### 一、概述 ...合理选择优化器、充分利用索引以及避免不当的查询操作都是提高存储过程性能的关键。希望本文能够帮助您更好地理解和掌握ORACLE存储过程性能优化的相关知识。

    存储过程语句 pro

    在数据库管理领域,存储过程(Storage Procedure)是预编译的SQL语句集合,它封装了特定的功能,供用户或应用程序调用。存储过程在数据库中以对象的形式存在,可以提高数据操作的效率,增强安全性,并减少网络传输的...

    数据库的存储过程

    数据库的存储过程是数据库管理系统提供的一种预编译的SQL语句集合,它是数据库中的一个对象,可以被多次调用,从而提高数据访问的效率。在本文中,我们将深入探讨存储过程的基本理念、语法以及常见的实现方式,特别...

    SQL语句大全和存储过程

    1. **性能优化**:存储过程可以缓存执行计划,多次调用比单独执行SQL语句更高效。 2. **模块化编程**:将复杂的逻辑封装起来,便于管理和复用。 3. **安全性**:可以设置访问权限,限制对数据的直接操作。 4. **减少...

    sql存储过程学习,详细的解说存储过程的语法,结构和用法。

    - 存储过程的性能优化很重要,合理使用索引和优化查询可以提升执行速度。 - 安全性方面,应限制对存储过程的访问权限,确保只有授权用户能够执行特定操作。 - 当存储过程修改后,应考虑其对已存在的应用程序的...

    数据库查询的存储过程

    数据库查询的存储过程 数据库查询的存储过程是数据库管理系统中一种非常重要的概念。...数据库查询的存储过程可以提高数据库的查询效率和性能,简化复杂语句,避免大量数据下载到客户端,减少网络上的传输量。

    学生管理系统(三种方法控制台实现:ArrayList、SQL语句、存储过程)

    ArrayList适用于快速原型开发或轻量级应用,SQL语句是数据操作的基础,而存储过程则在需要高性能和复杂业务逻辑时发挥作用。在学生管理系统中,可以根据项目的规模和需求选择合适的方法,或者根据需求的演变逐步升级...

    数据库查询语句(SQL语句)大全

    2. 存储过程:预编译的SQL语句集合,可封装复杂的业务逻辑,提高效率并降低网络流量。 六、索引与优化 1. 索引:提高查询速度的特殊数据结构,如B树索引、哈希索引等。 2. 查询优化:涉及索引选择、查询计划和性能...

    oracle语句性能优化集合

    本集合专注于"Oracle语句性能优化",旨在提供一系列有效的策略和技巧,帮助数据库管理员和开发人员提升查询效率。 1. **SQL语句优化基础** - **索引**:创建合适的索引可以显著提高查询速度。B树索引、位图索引、...

    解密SQL Server2000存储过程(可以选择存储过程查询)

    - **性能优化**:存储过程预编译后,执行效率高于直接执行SQL语句。 - **代码复用**:存储过程可以多次调用,减少重复编写相同或相似的SQL语句。 - **安全性**:可以通过权限控制限制对存储过程的访问,而非直接...

    sql语句性能测试详解

    本篇将详细阐述如何使用LoadRunner工具来测试SQL语句或存储过程的执行性能,尤其适用于SQL Server环境。 **第一步:测试准备** 在开始测试之前,确保有一台运行SQL Server的数据库服务器,这可以是本地安装的服务器...

    SQL查询语句大全SQL查询语

    - 索引可以加速数据检索,提高查询性能。创建索引的语句:`CREATE INDEX index_name ON table (column);` 8. **事务(Transaction)** - 一组SQL语句的集合,要么全部执行成功,要么全部回滚。常用命令:`BEGIN ...

    oracle分页查询并返回总记录数据存储过程

    ### Oracle 分页查询并返回总记录数据存储过程 在数据库应用开发中,为了提高用户体验以及减少服务器负担,分页查询成为了一种常见的技术手段。Oracle 数据库提供了多种方法来实现分页查询,其中使用存储过程是一种...

Global site tag (gtag.js) - Google Analytics