すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:ApsaraDB RDS for SQL Serverインスタンスで行ロック待機を表示する方法を教えてください。

最終更新日:Dec 12, 2024

このトピックでは、ApsaraDB RDS for SQL Serverインスタンスで行ロック待機を表示する方法について説明します。

説明

以下の点にご注意ください。

  • Alibaba Cloudインスタンスの設定やデータの変更など、リスクの高い操作を実行する前に、インスタンスのディザスタリカバリ機能とフォールトトレランス機能を確認して、データのセキュリティを確保することを推奨します。

  • ECS (Elastic Compute Service) インスタンスやRDSインスタンスなどのインスタンスの設定またはデータを変更する前に、インスタンスのスナップショットを作成するか、バックアップを有効にすることを推奨します。 たとえば、RDSインスタンスのログバックアップを有効にできます。

  • Alibaba Cloud管理コンソールで機密情報に対する権限を付与した場合、または機密情報を送信した場合は、できるだけ早い機会に機密情報を変更することを推奨します。 機密情報には、ユーザー名とパスワードが含まれます。

手順

次のSQL文を実行して、RDSインスタンスの行ロック待ちを照会します。

use master;
go
WITH CTE_SID ( BSID, SID, sql_handle )        
    AS ( SELECT [Blocking_Session_ID],
                        [Session_ID] ,
                        sql_handle
               FROM     sys.dm_exec_requests
               WHERE    [Blocking_Session_ID] <> 0
               UNION ALL
               SELECT   A.[Blocking_Session_ID] ,
                        A.[Session_ID] ,
                        A.sql_handle
               FROM     sys.dm_exec_requests A
                        JOIN CTE_SID B ON A.[Session_ID] = B.BSID
             )
    SELECT C.BSID,
            C.SID ,
            S.login_name ,
            S.host_name ,
            S.status ,
            S.cpu_time ,
            S.memory_usage ,
            S.last_request_start_time ,
            S.last_request_end_time ,
            S.logical_reads ,
            S.row_count ,
            q.text
    FROM CTE_SID C
            JOIN sys.dm_exec_sessions S ON C.sid = s.[Session_ID]
            CROSS APPLY sys.dm_exec_sql_text(C.sql_handle) Q
    ORDER BY sid
説明

RDSインスタンスで行ロックが待機またはブロックの問題が発生した場合、ロックを待機しているセッションのIDとロックを保持しているセッションのIDが出力に表示されます。

関連ドキュメント

  • ApsaraDB RDSコンソールでRDSインスタンスのモニタリングデータを表示できます。 詳細については、「標準モニタリング情報の表示」をご参照ください。

  • ApsaraDB RDSコンソールで、RDSインスタンスでパフォーマンスの最適化とロックの最適化を実行できます。 詳細については、「パフォーマンスの最適化と診断」をご参照ください。