zoukankan      html  css  js  c++  java
  • SQL SERVER-Extendevent检测DB文件增长

    注意:total_size_kb是指文件的大小,size_change_kb是指文件改变的大小,文件自动增长的大小可能是一定的值(例如tmpdb默认每次增长64M)或是一定比例的。

    但一个SQL引起的文件增长还是得看size_change_kb之和

    --创建会话
    CREATE EVENT SESSION [Database_Growth_Watchdog] ON SERVER 
    ADD EVENT sqlserver.database_file_size_change(
        ACTION(sqlserver.client_app_name,sqlserver.client_hostname,sqlserver.database_name,sqlserver.nt_username,sqlserver.sql_text,sqlserver.username))
    ADD TARGET package0.event_file(SET filename=N'D:XEventDBFile_Growth.xel',max_file_size=(10))
    WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=1 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=ON)
    GO
    

    --解析log

    drop table if exists #TMP
    select
    LEFT(SWITCHOFFSET(n.value('@timestamp','Datetime'),'+08:00'),23) as EventTime,
    n.value('(data[@name="database_id"]/value)[1]', 'nvarchar(128)') as file_database_id,
    n.value('(data[@name="file_name"]/value)[1]', 'nvarchar(128)') as file_name,
    n.value('(data[@name="duration"]/value)[1]', 'int') as duration,
    n.value('(data[@name="total_size_kb"]/value)[1]', 'int') as total_size_kb,
    n.value('(data[@name="size_change_kb"]/value)[1]', 'int') as size_change_kb,
    n.value('(action[@name="database_name"]/value)[1]', 'nvarchar(128)') as database_name,
    n.value('(action[@name="client_app_name"]/value)[1]', 'nvarchar(128)') as client_app_name,
    n.value('(action[@name="nt_username"]/value)[1]', 'nvarchar(128)') as username,
    n.value('(action[@name="client_hostname"]/value)[1]', 'nvarchar(128)') as client_hostname,
    n.value('(action[@name="sql_text"]/value)[1]', 'nvarchar(max)') as sql_text
    into #TMP
    from
    (select cast(event_data as XML) as event_data
    from sys.fn_xe_file_target_read_file('M:DB_WatchDatabase_Growth_Wathdog_0*.xel', null, null, null)) ed
    cross apply ed.event_data.nodes('event') as q(n)
    order by EventTime desc


    SELECT sql_text,SUM(size_change_kb)/1024 AS SIZE_M FROM #TMP
    GROUP BY sql_text
    ORDER BY SIZE_M DESC

     
  • 相关阅读:
    Yarn&Mapreduce参数的具体含义和配置参考
    【转】用Python实现各种排序算法
    xpath表达式,提取标签下的全部内容(将其他标签过滤)
    ssh IP打通,hadoop启动失败
    windows7下安装python3的scrapy框架
    【转】git push 出现401 错误
    Linux多条指令之间;和&&
    [转]用了docker是否还有必要使用openstack?
    自动化软件部署的shell脚本
    Nginx配置教程
  • 原文地址:https://www.cnblogs.com/JinweiChang/p/11149898.html
Copyright © 2011-2022 走看看