sql >> データベース >  >> RDS >> Sqlserver

ページロックが属しているテーブルを見つける方法

    これが resource_associated_entity_id です 列は (クエリの例 ).

    SELECT dm_tran_locks.request_session_id,
           dm_tran_locks.resource_database_id,
           DB_NAME(dm_tran_locks.resource_database_id) AS dbname,
           CASE
               WHEN resource_type = 'OBJECT'
                   THEN OBJECT_NAME(dm_tran_locks.resource_associated_entity_id)
               ELSE OBJECT_NAME(partitions.OBJECT_ID)
           END AS ObjectName,
           partitions.index_id,
           indexes.name AS index_name,
           dm_tran_locks.resource_type,
           dm_tran_locks.resource_description,
           dm_tran_locks.resource_associated_entity_id,
           dm_tran_locks.request_mode,
           dm_tran_locks.request_status
    FROM sys.dm_tran_locks
    LEFT JOIN sys.partitions ON partitions.hobt_id = dm_tran_locks.resource_associated_entity_id
    LEFT JOIN sys.indexes ON indexes.OBJECT_ID = partitions.OBJECT_ID AND indexes.index_id = partitions.index_id
    WHERE resource_associated_entity_id > 0
      AND resource_database_id = DB_ID()
    ORDER BY request_session_id, resource_associated_entity_id 
      

    1. 表1からすべての列を選択し、?でグループ化された表2から1つの列を選択します。

    2. postgresでフィールドのデータ型を選択します

    3. mysqlで複数の句を使用して行を操作する

    4. Oracleで休止状態でトランザクションタイムアウトが機能しない