zoukankan      html  css  js  c++  java
  • 【监控笔记】【2.3】扩展事件——慢查询SQL(执行超过3S的SQL)

    --sql server 2008及以上才支持,2012及以上才支持GUI界面

    msdn 扩展事件:点击打开链接

     【1】T-SQL实现

    基于 rpc_completed(远程过程调用已完成时发生) 事件与 sql_batch_completed(Transact-SQL 批处理执行完毕时发生) 事件

    转自:https://blog.csdn.net/yenange/article/details/52592814
    
    --  删除事件会话  
    IF EXISTS(SELECT * FROM sys.server_event_sessions WHERE name = 'slow_query')  
        DROP EVENT SESSION slow_query ON SERVER   
    GO  
    --  创建事件会话  
    CREATE EVENT SESSION [slow_query] ON SERVER 
    ADD EVENT sqlserver.rpc_completed(
        ACTION(sqlos.task_time,sqlserver.database_name,sqlserver.nt_username,sqlserver.sql_text,sqlserver.transaction_id,sqlserver.username)
        WHERE
        --AND [sqlserver].[database_name]=N'xxxx'    -- 数据库名, 自行修改
        --and sqlserver.username=N'xxxx'                -- 数据库用户名, 自行修改
        [duration]>=3000000                    -- 消耗秒数超 3 秒
        ),
    ADD EVENT sqlserver.sql_batch_completed(
        ACTION(sqlos.task_time,sqlserver.database_name,sqlserver.nt_username,sqlserver.sql_text,sqlserver.transaction_id,sqlserver.username)
        WHERE
        --AND [sqlserver].[database_name]=N'xxxx'   -- 数据库名, 自行修改
        --and sqlserver.username=N'xxxx'                -- 数据库用户名, 自行修改
        [duration]>=3000000                    -- 消耗秒数超 3 秒
        )
    ADD TARGET package0.event_file(SET filename=N'D:ToolsDBAEventLogslow_query.xel',max_file_size=(10))    --路径、文件MB, 自行修改
    WITH (STARTUP_STATE=ON)
    GO
    --  启用(停止)事件会话(START / STOP)  
    ALTER EVENT SESSION slow_query ON SERVER STATE=START  
    GO  

    【2】GUI实现

      

    基于 sql_statement_completed(Transact-SQL 语句已完成时发生)

    和 query_post_execution_showplan (在执行 SQL 语句后发生。此事件返回实际查询计划的 XML 表示形式。使用此事件可能带来严重的性能开销,所以只有在短时间内解决或监视特定问题时才应使用此事件。)

      (1)新建会话,把sql_statement_completed 和 query_post_execution_showplan 事件给选上

      

      (2)谓词 筛选出持续时间大于3s的,并排除系统数据库,两个事件都这么设置

        

      (3)实时监控,查看结果

        

      (4)再做修改,加全局字段与事件字段。而query_post_execution_showplan事件加了username全局字段和databaseName

        

       (5)查看加了字段之后的结果

        

    相关参考文章:

      概念与介绍~https://blog.csdn.net/kk185800961/article/details/49725903

      GUI的使用~https://www.cnblogs.com/lyhabc/p/3475132.html

  • 相关阅读:
    Mac 安装brew的正确姿势
    Jmeter分布式压测及踩坑记录
    Jmeter录制脚本
    mitmproxy使用详解
    Python单元测试框架pytest常用测试报告类型
    基于Java+Spring Boot开源项目JeeSite的Jenkins持续交付介绍
    Maven入门
    Linux Shell 编程基础详解——吐血整理,墙裂推荐!
    使用Jenkins+Blue Ocean 持续构建自动化部署之安卓源码打包、测试、邮件通知
    使用Jenkins+Pipline 持续构建自动化部署之安卓源码打包、测试、邮件通知
  • 原文地址:https://www.cnblogs.com/gered/p/10972807.html
Copyright © 2011-2022 走看看