На какой версии SQL Вы? Если 2005 и выше, попытайтесь определить незаконное использование запроса ниже сценария? [Правовая оговорка: Я не исходный автор сценария; у меня был он в моей библиотеке некоторое время, но я не мог дать надлежащий кредит на исходного автора, так как я не мог помнить, где я получаю его]
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 BlockingTest,
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
GO
При использовании команды mount вы увидите все параметры, которые есть в / etc / mtab
. Но / etc / mtab
- это просто файл, в нем нет ничего волшебного. Оно может рассинхронизироваться с реальностью по-разному. Например, / etc / mtab
нельзя обновить, если файловая система, в которой он расположен, доступна только для чтения. И если / etc / mtab
находится в файловой системе, которая сохраняется при перезагрузках, тогда она может содержать записи из предыдущей загрузки.
Содержимое / proc / mounts
], однако, представляет собой представление о фактических структурах данных ядра. Пока смонтирован / proc
, вы всегда будете получать актуальную информацию из / proc / mounts
. Но хотя форматы / etc / mtab
и / proc / mounts
идентичны,