From 1098a165c13ff8d13bf6ab37ce074221b114bb72 Mon Sep 17 00:00:00 2001 From: yuyubohh <403221757@qq.com> Date: Thu, 18 Sep 2025 23:52:54 +0800 Subject: [PATCH] 1 --- 按碎片大小维护索引.txt | 8 ++++---- 查询阻塞.txt | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 4 deletions(-) create mode 100644 查询阻塞.txt diff --git a/按碎片大小维护索引.txt b/按碎片大小维护索引.txt index 47056b9..26292dd 100644 --- a/按碎片大小维护索引.txt +++ b/按碎片大小维护索引.txt @@ -1,5 +1,5 @@ -USE ; +USE AIS20220929093310; IF Object_id('tempdb..#temp_table_info') <> 0 DROP TABLE #temp_table_info @@ -166,7 +166,7 @@ IF Len(Ltrim(Rtrim(@exectabs))) > 0 AS (SELECT object_name, Max(avg_fragmentation_in_percent) fragmentpercent, CASE - WHEN Max(avg_fragmentation_in_percent) >= 30 THEN 'dbcc dbreindex(' + object_name + WHEN Max(avg_fragmentation_in_percent) >= 1 THEN 'dbcc dbreindex(' + object_name + ') with no_infomsgs' ELSE '' END execsql, @@ -227,7 +227,7 @@ ELSE IF Len(Ltrim(Rtrim(@noexectabs))) > 0 AS (SELECT object_name, Max(avg_fragmentation_in_percent) fragmentpercent, CASE - WHEN Max(avg_fragmentation_in_percent) >= 30 THEN 'dbcc dbreindex(' + object_name + WHEN Max(avg_fragmentation_in_percent) >= 1 THEN 'dbcc dbreindex(' + object_name + ') with no_infomsgs' ELSE '' END execsql, @@ -266,7 +266,7 @@ ELSE AS (SELECT object_name, Max(avg_fragmentation_in_percent) fragmentpercent, CASE - WHEN Max(avg_fragmentation_in_percent) >= 30 THEN 'dbcc dbreindex(' + object_name + WHEN Max(avg_fragmentation_in_percent) >= 1 THEN 'dbcc dbreindex(' + object_name + ') with no_infomsgs' ELSE '' END execsql, diff --git a/查询阻塞.txt b/查询阻塞.txt new file mode 100644 index 0000000..c20081f --- /dev/null +++ b/查询阻塞.txt @@ -0,0 +1,37 @@ +--查阻塞-- +SELECT t1.resource_type AS [锁类型], + Db_name(resource_database_id) AS [数据库名], + t1.resource_associated_entity_id AS [阻塞资源对象], + t1.resource_description AS [资源描述信息], + t1.request_mode AS [请求的锁], + t1.request_session_id AS [等待会话], + t2.wait_duration_ms AS [等待时间], + (SELECT [text] + FROM sys.dm_exec_requests AS r WITH (NOLOCK) + CROSS APPLY sys.Dm_exec_sql_text(r.[sql_handle]) + WHERE r.session_id = t1.request_session_id) AS [等待会话执行的批SQL], + (SELECT Substring(qt.[text], r.statement_start_offset / 2, ( CASE + WHEN r.statement_end_offset = -1 THEN Len(CONVERT(NVARCHAR(max), qt.[text])) * 2 + ELSE r.statement_end_offset + END ) / 2) + FROM sys.dm_exec_requests AS r WITH (NOLOCK) + CROSS APPLY sys.Dm_exec_sql_text(r.[sql_handle]) AS qt + WHERE r.session_id = t1.request_session_id) AS [等待会话执行的SQL], + t2.blocking_session_id AS [阻塞会话], + (SELECT c.client_net_address + FROM sys.dm_exec_connections AS c WITH (NOLOCK) + WHERE c.session_id = t2.blocking_session_id) AS [阻塞会话客户端IP], + (SELECT s.program_name + FROM sys.dm_exec_sessions AS s WITH (NOLOCK) + WHERE s.session_id = t2.blocking_session_id) AS [阻塞会话连接方式], + (SELECT c.connect_time + FROM sys.dm_exec_connections AS c WITH (NOLOCK) + WHERE c.session_id = t2.blocking_session_id) AS [阻塞会话连接创建时间], + (SELECT [text] + FROM sys.sysprocesses AS p + CROSS APPLY sys.Dm_exec_sql_text(p.[sql_handle]) + WHERE p.spid = t2.blocking_session_id) AS [阻塞会话执行的批SQL], + Getdate() +FROM sys.dm_tran_locks AS t1 WITH (NOLOCK) + INNER JOIN sys.dm_os_waiting_tasks AS t2 WITH (NOLOCK) + ON t1.lock_owner_address = t2.resource_address \ No newline at end of file