`
357029540
  • 浏览: 735916 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

SQLSERVER耗时最长的SQL

阅读更多
对于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 ;
分享到:
评论

相关推荐

    SQLServer查询耗费大量资源的语句.txt

    - **ORDER BY total_elapsed_time/execution_count DESC**:按照平均执行时间降序排列,这样就可以优先看到那些平均耗时最长的查询语句。 - **TOP 10**:限制返回的结果集大小为10条记录。 ### 知识点二:查询优化...

    通过SQL Server Profiler来监视分析死锁

    在SQL Server数据库管理中,死锁是一个常见的性能问题,它发生在两个或多个事务相互等待对方释放资源时。本文将深入探讨如何使用SQL Server Profiler工具来监视和分析死锁,以便更好地理解和解决这类问题。 首先,...

    SQLServer数据库迁移孤立用户的解决方法

    ### SQL Server 数据库迁移孤立用户的解决方法 在进行SQL Server数据库迁移时,经常会遇到一个棘手的问题:迁移完成后,部分用户无法与原有的登录名相对应,导致这些用户成为“孤立用户”。这种情况下,用户虽然...

    SQL查询分析器sql server专用

    例如,通过Profiler监控SQL Server的实时操作,可以找出耗时较长的查询并优化;通过查询分析器,可以快速查看查询计划,识别潜在的索引问题,从而进行必要的索引调整。总的来说,这个工具集是SQL Server管理和维护不...

    AndroidStudio版登陆界面加直连Sqlserver

    本项目“AndroidStudio版登陆界面加直连Sqlserver”旨在教你如何在Android Studio中创建一个登录界面,并实现直接连接到Sqlserver数据库的功能。这涉及到Android应用开发、UI设计、网络编程以及数据库连接等多个知识...

    SQLServer恢复表级数据详解

    在使用SQLServer数据库时,数据的备份和恢复是数据库管理中非常重要的环节。尤其在开发和生产环境中,表级数据的恢复显得尤为重要,因为关键表往往存放着核心数据,一旦出现数据损坏,需要迅速采取措施进行恢复。...

    SQL Server数据库查询速度慢原因及优化方法

    【赛迪网-IT技术报道】SQL Server数据库查询速度慢的原因有很多,常见的有以下几种:  1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)  2、I/O吞吐量小,形成了瓶颈效应。  3、没有...

    EFProf_SQLserver执行脚本跟踪_sqlserver监控_EFProf_

    一款跟踪SQLserver执行脚本的软件,只需在.net项目中引用该工具的动态库就可以完美监控SQLserver执行脚本的多项指标(执行语句,耗时等),比SQLserver自带的SQLserver profiler工具使用起来要简单。

    Excel导入SQLserver源码_excel2sql.zip

    因此,有了"Excel导入SQLserver源码_excel2sql.zip"这样的工具或代码,可以极大地提高工作效率。 这个压缩包文件"Excel导入SQLserver源码_excel2sql.zip"很可能包含了一个程序或脚本,用于自动化从Excel文件批量...

    SQLServer脚本批量执行工具

    SQLServer脚本批量执行工具是一种高效管理SQL Server数据库的实用程序,它允许用户一次性执行多个SQL脚本,显著提高了数据库管理员的工作效率。该工具的主要功能包括脚本的顺序执行、执行结果的记录以及脚本的可视化...

    千万级数据Sql Server 与Mysql分析

    当数据增加到 500 万条的时候,SQL Server 2008 耗时 34 秒,相当于 Mysql 在 265 万时的耗时时间。 当数据增加到 1000 万时,Mysql 已经内存溢出,需要耗时 7 分 31 秒。 结论 通过对比分析,数据量越大,SQL ...

    SQL Server表数据导出成Insert语句的工具

    在SQL Server数据库管理中,有时我们需要将表中的数据导出为Insert语句,这在数据迁移、备份或测试环境中非常常见。"SQL Server表数据导出成Insert语句的工具"是一个专门为此目的设计的应用程序,它能帮助数据库管理...

    sqlserver转换sqlite

    标题中的“sqlserver转换sqlite”指的是将Microsoft SQL Server数据库的数据迁移至SQLite数据库的过程。这是一个常见的需求,尤其是在需要轻量级数据库、跨平台支持或者离线数据存储的场景中。SQL Server是企业级的...

    XlsToSql;Excel导入SqlServer工具

    《XlsToSql:Excel数据高效导入SqlServer的实用工具》 在信息技术领域,数据库管理和数据处理是日常工作中不可或缺的部分。Microsoft SQL Server(简称SqlServer)作为一款广泛应用的关系型数据库管理系统,其强大...

    提高SQL Server性能,可通过DBCC DBREINDEX重建索引

    ### 提高SQL Server性能:通过DBCC DBREINDEX重建索引 #### 一、引言 在数据库管理系统中,SQL Server作为一款广泛使用的数据库产品,其性能优化是确保应用程序高效运行的关键因素之一。其中,索引是提升查询速度的...

    sql server 查看执行效率不高的语句

    在SQL Server中,查询性能优化是一项关键任务,尤其是在处理大量数据和复杂业务逻辑时。当数据库中的查询执行效率不高时,不仅会影响应用的响应速度,还可能导致资源浪费和系统瓶颈。因此,掌握如何查看和分析执行...

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

    扩展存储过程(XP_开头)则提供了与操作系统交互的能力,但调用操作系统级别的功能通常比纯SQL操作更耗时,且可能引入额外的安全风险。 优化存储过程的方法包括: 1. **避免参数嗅探**:可以通过重写存储过程,使用...

    SQLserver策略备份时间突然异常增大处理

    1. **查看每个数据库的备份耗时**:通过监控工具或SQL查询语句来获取各个数据库最近几次备份的时间消耗情况。 2. **定位异常数据库**:如果发现某个数据库(例如案例中的omis数据库)的备份时间异常增加,这可能是...

    SQL Server 2012 introduction 中文版

    ### SQL Server 2012 Introduction 中文版关键知识点概览 #### 一、SQL Server 2012概述 **Microsoft SQL Server 2012** 是一款由微软公司开发的关系型数据库管理系统,它是SQL Server系列的一个重要版本,旨在为...

    SQLSERVER转MYSQL工具 mss2sql

    《SQLSERVER到MYSQL的数据迁移工具mss2sql详解》 在数据库管理中,有时我们需要将数据从一个数据库系统迁移到另一个数据库系统。SQL Server和MySQL是两种广泛应用的关系型数据库管理系统,各自有着不同的特点和优势...

Global site tag (gtag.js) - Google Analytics