zoukankan      html  css  js  c++  java
  • SQLServer数据库慢查询追踪

    一、通过查询器查询当前慢SQL

    -- 查找CPU前100条

    SELECT TOP 100
    (total_elapsed_time / execution_count)/1000 N'平均时间ms' ,total_elapsed_time/1000 N'总花费时间ms' ,total_worker_time/1000 N'所用的CPU总时间ms' ,total_physical_reads N'物理读取总次数' ,total_logical_reads/execution_count N'每次逻辑读次数' ,total_logical_reads N'逻辑读取总次数' ,total_logical_writes N'逻辑写入总次数' ,execution_count N'执行次数' ,SUBSTRING(st.text, (qs.statement_start_offset/2) + 1, ((CASE statement_end_offset WHEN -1 THEN DATALENGTH(st.text) ELSE qs.statement_end_offset END - qs.statement_start_offset)/2) + 1) N'执行语句' ,creation_time N'语句编译时间' ,last_execution_time N'上次执行时间' FROM sys.dm_exec_query_stats AS qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st

    ORDER BY total_elapsed_time / execution_count DESC;

    二、使用SQL Server Profiler进行追踪

    1、打开查询器

       打开 工具 》  SQL Server Profiler

    2、点击SQL Server Profiler(P),连接到服务器

    3、设置要保存文件或表

    根据需要评估合适的大小,值尽可能大点。根据需要选择停止时间。

     

    4、选择 事件选择

    选择事件:RPC:Completed 和 SQL:BatchCompleted。
    RPC:Completed textdata要勾上,其他列使用默认就可以。

    5、再选择列筛选器

    Duration:设置大于3000以上

       

    6、选择完成之后,点击运行即可。


    解读:
    TextData:依赖于跟踪中捕获的事件类的文本值
    CPU:事件使用的CPU时间(单位毫秒)
    NTUserName:Windows用户名
    Reads:由服务器代表事件读取逻辑磁盘的次数
    Writes:由服务器代表事件写入物理磁盘的次数
    Duration:事件占用的时间。尽管服务器以微秒计算持续时间,SQL Server Profiler确能以毫秒为单位显示该值,具体情况取决于‘工具’>‘选项’对话框中的设置 (见下图1)
    SPID:SQL Server为客户端的相关进程分配的服务器进程ID
    StartTime:事件启动事件
    EndTime:事件结束事件。对指示事件开始的事件类。

    图1:

  • 相关阅读:
    hdu 4768 Flyer 二分
    hdu 4767 Bell
    hdu 4759 Poker Shuffle 二进制
    uva 12589
    zoj 3057 Beans Game 博弈论
    poj 2480 Longge's problem 积性函数
    重新启程
    【Luogu P1502】 窗口的星星
    【BZOJ1855】[Scoi2010] 股票交易
    【BZOJ1122】[POI2008] 账本BBB
  • 原文地址:https://www.cnblogs.com/059212315/p/14153903.html
Copyright © 2011-2022 走看看