zoukankan      html  css  js  c++  java
  • 抓索引上的锁等待信息

    CREATE TABLE [dbo].[PageLockWait](
    id int identity primary key,
    [table_name] nvarchar NULL,
    [index_name] [sysname] NULL,
    [page_lock_count] [bigint] NOT NULL,
    [page_lock_wait_count] [bigint] NOT NULL,
    [page_block_pct] [decimal](6, 2) NULL,
    [page_lock_wait_in_ms] [bigint] NOT NULL,
    [page_avg_lock_wait_ms] [decimal](12, 2) NULL,
    captureTime datetime2 default getdate()
    ) ON [PRIMARY]
    GO

    CREATE TABLE [dbo].[RowLockWait](
    id int identity primary key,
    [table_name] nvarchar NULL,
    [index_name] [sysname] NULL,
    [row_lock_count] [bigint] NOT NULL,
    [row_lock_wait_count] [bigint] NOT NULL,
    [row_block_pct] [decimal](6, 2) NULL,
    [row_lock_wait_in_ms] [bigint] NOT NULL,
    [row_avg_lock_wait_ms] [decimal](12, 2) NULL,
    captureTime datetime2 default getdate()
    ) ON [PRIMARY]
    GO

    while(1=1)
    begin

    insert hao.dbo.RowLockWait(table_name,index_name,row_lock_count,row_lock_wait_count,row_block_pct,row_lock_wait_in_ms,row_avg_lock_wait_ms)
    SELECT OBJECT_SCHEMA_NAME(ios.object_id) + '.' + OBJECT_NAME(ios.object_id) as table_name
    ,i.name as index_name
    ,row_lock_count
    ,row_lock_wait_count
    ,CAST(100. * row_lock_wait_count / NULLIF(row_lock_count,0) AS decimal(6,2)) AS row_block_pct
    ,row_lock_wait_in_ms
    ,CAST(1. * row_lock_wait_in_ms / NULLIF(row_lock_wait_count,0) AS decimal(12,2)) AS row_avg_lock_wait_ms
    FROM sys.dm_db_index_operational_stats (DB_ID(), NULL, NULL, NULL) ios
    INNER JOIN sys.indexes i ON i.object_id = ios.object_id AND i.index_id = ios.index_id
    WHERE OBJECTPROPERTY(ios.object_id,'IsUserTable') = 1 and ios.row_lock_wait_count>0
    --ORDER BY row_lock_wait_count + page_lock_wait_count DESC, row_lock_count + page_lock_count DESC
    
    insert hao.dbo.PageLockWait(table_name,index_name,page_lock_count,page_lock_wait_count,page_block_pct,page_lock_wait_in_ms,page_avg_lock_wait_ms)
    SELECT OBJECT_SCHEMA_NAME(ios.object_id) + '.' + OBJECT_NAME(ios.object_id) as table_name
    ,i.name as index_name
    ,page_lock_count
    ,page_lock_wait_count
    ,CAST(100. * page_lock_wait_count / NULLIF(page_lock_count,0) AS decimal(6,2)) AS page_block_pct
    ,page_lock_wait_in_ms
    ,CAST(1. * page_lock_wait_in_ms / NULLIF(page_lock_wait_count,0) AS decimal(12,2)) AS page_avg_lock_wait_ms
    FROM sys.dm_db_index_operational_stats (DB_ID(), NULL, NULL, NULL) ios
    INNER JOIN sys.indexes i ON i.object_id = ios.object_id AND i.index_id = ios.index_id
    WHERE OBJECTPROPERTY(ios.object_id,'IsUserTable') = 1 AND ios.page_lock_wait_count>0
    --ORDER BY row_lock_wait_count + page_lock_wait_count DESC, row_lock_count + page_lock_count DESC
    WAITFOR DELAY '00:00:30'
    

    end

  • 相关阅读:
    OpenWrt/LEDE 没有slabtop命令
    OpenWrt/LEDE 没有/proc/slabinfo文件
    泰坦陨落2 origin安装时vc++runtime没有安装成功错误
    OpenWrt/LEDE中使用qt库
    椭圆曲线加密(ECC):域和离散对数
    batman-adv使用中修改一跳惩罚,batctl无法修改hop_penalty
    VMnet8设置ping通外网
    支持自动水平拆分的高性能分布式数据库TDSQL
    cronsun是替换 crontab 一个不错的选择
    MySQL 的 20+ 条最佳实践
  • 原文地址:https://www.cnblogs.com/sqlzh/p/14481542.html
Copyright © 2011-2022 走看看