日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

如何處理RDS SQL Server阻塞問題

問題描述

云數據庫RDS SQL Server版出現阻塞問題。

問題原因

當應用程序頻繁讀寫某個表或者資源時,很容易出現阻塞情況。當阻塞問題嚴重時,應用程序端的語句執行會變得緩慢。

排查方法

針對云數據庫RDS SQL Server版阻塞問題,排查建議如下。

  1. 循環監控SYS.SYSPROCESSES,獲取阻塞信息。命令如下:

    WHILE 1 = 1
    BEGIN
        SELECT * FROM SYS.SYSPROCESSES WHERE BLOCKED <> 0;
        WAITFOR DELAY '00:00:01';
    END;
    說明

    您可以自定義循環間隔時間,此處以00:00:01為例。

    系統顯示類似如下:

    image

    說明

    blocked列表示阻塞頭session_idwaitresource表示被阻塞的session等待的資源。更多返回值字段的說明,請參見sys.sysprocesses官方文檔

  2. 循環監控sys.dm_tran_lockssys.dm_os_waiting_tasks等視圖,可以得到阻塞圖譜。命令如下:

    WHILE 1 = 1
    Begin
    SELECT db.name DBName,
           tl.request_session_id,
    wt.blocking_session_id,
    OBJECT_NAME(p.OBJECT_ID) BlockedObjectName,
                                        tl.resource_type,
                                        h1.TEXT AS RequestingText,
                                        h2.TEXT AS BlockingText,
                                        tl.request_mode
    FROM sys.dm_tran_locks AS tl
    INNER JOIN sys.databases db ON db.database_id = tl.resource_database_id
    INNER JOIN sys.dm_os_waiting_tasks AS wt ON tl.lock_owner_address = wt.resource_address
    INNER JOIN sys.partitions AS p ON p.hobt_id = tl.resource_associated_entity_id
    INNER JOIN sys.dm_exec_connections ec1 ON ec1.session_id = tl.request_session_id
    INNER JOIN sys.dm_exec_connections ec2 ON ec2.session_id = wt.blocking_session_id
    CROSS APPLY sys.dm_exec_sql_text(ec1.most_recent_sql_handle) AS h1
    CROSS APPLY sys.dm_exec_sql_text(ec2.most_recent_sql_handle) AS h2
    WAITFOR DELAY '00:00:01';
    END;

    系統顯示類似如下:

    image

    返回參數說明如下:

    參數

    說明

    DBName

    數據庫名稱。

    request_session_id

    當前請求的session ID,即被阻塞的session。

    blocking_session_id

    阻塞頭session ID。

    BlockedObjectName

    被阻塞的session操作的對象。

    resource_type

    等待的資源類型。

    RequestingText

    當前session執行的語句,即被阻塞的語句。

    BlockingText

    阻塞頭session執行的語句。

    request_mode

    當前session請求的鎖模式。

調優建議

可以參考以下步驟,進行調優。

  1. 關閉阻塞頭連接,可以幫助快速解除阻塞。

  2. 查看是否有長時間未提交的事務,及時提交事務。

  3. 如果有S鎖導致的查詢阻塞,并且您的應用允許臟讀,可以使用WITH (NOLOCK)查詢提示。例如在查詢中寫入SELECT * FROM table WITH (NOLOCK);使查詢在執行時不申請鎖,從而繞過阻塞狀況。

  4. 檢查應用程序邏輯,按順序訪問某個資源。

相關操作

  • 如需應對緊急情況下的阻塞問題,請參見如何快速解決RDS SQL Server的阻塞問題

  • 您可以在RDS控制臺通過設置性能監控指標、創建報警規則等方式,以便及時發現和響應數據庫性能問題。具體詳情,請參見監控與報警

  • 如需了解更多數據庫性能調優策略,例如索引優化、查詢優化、存儲優化。具體詳情,請參見性能優化與診斷