|
1 | | --- Compile Date: 04/09/2026 16:03:30 UTC |
| 1 | +-- Compile Date: 04/10/2026 20:10:11 UTC |
2 | 2 | SET ANSI_NULLS ON; |
3 | 3 | SET ANSI_PADDING ON; |
4 | 4 | SET ANSI_WARNINGS ON; |
@@ -14737,6 +14737,233 @@ BEGIN |
14737 | 14737 | b.host_name |
14738 | 14738 | OPTION(RECOMPILE); |
14739 | 14739 |
|
| 14740 | + IF @debug = 1 |
| 14741 | + BEGIN |
| 14742 | + RAISERROR('Inserting #block_findings, check_id 9', 0, 1) WITH NOWAIT; |
| 14743 | + END; |
| 14744 | + |
| 14745 | + WITH |
| 14746 | + blocker_waits AS |
| 14747 | + ( |
| 14748 | + SELECT |
| 14749 | + b.database_name, |
| 14750 | + query_text_pre = |
| 14751 | + b.query_text_pre, |
| 14752 | + b.transaction_id, |
| 14753 | + sql_handle = |
| 14754 | + CONVERT |
| 14755 | + ( |
| 14756 | + varbinary(64), |
| 14757 | + b.blocked_process_report.value |
| 14758 | + ( |
| 14759 | + '(/event/data/value/blocked-process-report/blocking-process/process/executionStack/frame[not(@sqlhandle = "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")]/@sqlhandle)[1]', |
| 14760 | + 'varchar(130)' |
| 14761 | + ), |
| 14762 | + 1 |
| 14763 | + ), |
| 14764 | + stmtstart = |
| 14765 | + ISNULL |
| 14766 | + ( |
| 14767 | + b.blocked_process_report.value |
| 14768 | + ( |
| 14769 | + '(/event/data/value/blocked-process-report/blocking-process/process/executionStack/frame[not(@sqlhandle = "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")]/@stmtstart)[1]', |
| 14770 | + 'integer' |
| 14771 | + ), |
| 14772 | + 0 |
| 14773 | + ), |
| 14774 | + stmtend = |
| 14775 | + ISNULL |
| 14776 | + ( |
| 14777 | + b.blocked_process_report.value |
| 14778 | + ( |
| 14779 | + '(/event/data/value/blocked-process-report/blocking-process/process/executionStack/frame[not(@sqlhandle = "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")]/@stmtend)[1]', |
| 14780 | + 'integer' |
| 14781 | + ), |
| 14782 | + -1 |
| 14783 | + ), |
| 14784 | + wait_time_ms = |
| 14785 | + ISNULL |
| 14786 | + ( |
| 14787 | + b.blocked_process_report.value |
| 14788 | + ( |
| 14789 | + '(/event/data/value/blocked-process-report/blocked-process/process/@waittime)[1]', |
| 14790 | + 'bigint' |
| 14791 | + ), |
| 14792 | + 0 |
| 14793 | + ) |
| 14794 | + FROM #blocks AS b |
| 14795 | + WHERE b.activity = 'blocking' |
| 14796 | + AND (b.database_name = @database_name |
| 14797 | + OR @database_name IS NULL) |
| 14798 | + AND (b.contentious_object = @object_name |
| 14799 | + OR @object_name IS NULL) |
| 14800 | + ), |
| 14801 | + blocker_per_victim AS |
| 14802 | + ( |
| 14803 | + SELECT |
| 14804 | + bw.database_name, |
| 14805 | + bw.sql_handle, |
| 14806 | + bw.stmtstart, |
| 14807 | + bw.stmtend, |
| 14808 | + bw.query_text_pre, |
| 14809 | + bw.transaction_id, |
| 14810 | + wait_time_ms = |
| 14811 | + MAX(bw.wait_time_ms) |
| 14812 | + FROM blocker_waits AS bw |
| 14813 | + WHERE bw.sql_handle IS NOT NULL |
| 14814 | + GROUP BY |
| 14815 | + bw.database_name, |
| 14816 | + bw.sql_handle, |
| 14817 | + bw.stmtstart, |
| 14818 | + bw.stmtend, |
| 14819 | + bw.query_text_pre, |
| 14820 | + bw.transaction_id |
| 14821 | + ) |
| 14822 | + INSERT |
| 14823 | + #block_findings |
| 14824 | + ( |
| 14825 | + check_id, |
| 14826 | + database_name, |
| 14827 | + object_name, |
| 14828 | + finding_group, |
| 14829 | + finding, |
| 14830 | + sort_order |
| 14831 | + ) |
| 14832 | + SELECT |
| 14833 | + check_id = |
| 14834 | + 9, |
| 14835 | + bpv.database_name, |
| 14836 | + object_name = |
| 14837 | + LEFT |
| 14838 | + ( |
| 14839 | + REPLACE |
| 14840 | + ( |
| 14841 | + REPLACE |
| 14842 | + ( |
| 14843 | + ISNULL |
| 14844 | + ( |
| 14845 | + MAX(bpv.query_text_pre), |
| 14846 | + N'[Unknown]' |
| 14847 | + ), |
| 14848 | + NCHAR(13), |
| 14849 | + N' ' |
| 14850 | + ), |
| 14851 | + NCHAR(10), |
| 14852 | + N' ' |
| 14853 | + ), |
| 14854 | + 200 |
| 14855 | + ), |
| 14856 | + finding_group = |
| 14857 | + N'Top Blocking Query', |
| 14858 | + finding = |
| 14859 | + N'This query caused ' + |
| 14860 | + CONVERT |
| 14861 | + ( |
| 14862 | + nvarchar(30), |
| 14863 | + ( |
| 14864 | + SUM |
| 14865 | + ( |
| 14866 | + CONVERT |
| 14867 | + ( |
| 14868 | + bigint, |
| 14869 | + bpv.wait_time_ms |
| 14870 | + ) |
| 14871 | + ) / 1000 / 86400 |
| 14872 | + ) |
| 14873 | + ) + |
| 14874 | + N' ' + |
| 14875 | + CONVERT |
| 14876 | + ( |
| 14877 | + nvarchar(30), |
| 14878 | + DATEADD |
| 14879 | + ( |
| 14880 | + SECOND, |
| 14881 | + ( |
| 14882 | + SUM |
| 14883 | + ( |
| 14884 | + CONVERT |
| 14885 | + ( |
| 14886 | + bigint, |
| 14887 | + bpv.wait_time_ms |
| 14888 | + ) |
| 14889 | + ) / 1000 % 86400 |
| 14890 | + ), |
| 14891 | + '19000101' |
| 14892 | + ), |
| 14893 | + 14 |
| 14894 | + ) + |
| 14895 | + N' of blocking wait time (' + |
| 14896 | + ISNULL |
| 14897 | + ( |
| 14898 | + CONVERT |
| 14899 | + ( |
| 14900 | + nvarchar(10), |
| 14901 | + CONVERT |
| 14902 | + ( |
| 14903 | + decimal(5, 1), |
| 14904 | + 100.0 * |
| 14905 | + SUM |
| 14906 | + ( |
| 14907 | + CONVERT |
| 14908 | + ( |
| 14909 | + bigint, |
| 14910 | + bpv.wait_time_ms |
| 14911 | + ) |
| 14912 | + ) / |
| 14913 | + NULLIF |
| 14914 | + ( |
| 14915 | + SUM |
| 14916 | + ( |
| 14917 | + SUM |
| 14918 | + ( |
| 14919 | + CONVERT |
| 14920 | + ( |
| 14921 | + bigint, |
| 14922 | + bpv.wait_time_ms |
| 14923 | + ) |
| 14924 | + ) |
| 14925 | + ) OVER (), |
| 14926 | + 0 |
| 14927 | + ) |
| 14928 | + ) |
| 14929 | + ), |
| 14930 | + N'0.0' |
| 14931 | + ) + |
| 14932 | + N'% of total) across ' + |
| 14933 | + CONVERT |
| 14934 | + ( |
| 14935 | + nvarchar(20), |
| 14936 | + COUNT_BIG(DISTINCT bpv.transaction_id) |
| 14937 | + ) + |
| 14938 | + N' blocked sessions.', |
| 14939 | + sort_order = |
| 14940 | + ROW_NUMBER() OVER |
| 14941 | + ( |
| 14942 | + ORDER BY |
| 14943 | + SUM |
| 14944 | + ( |
| 14945 | + CONVERT |
| 14946 | + ( |
| 14947 | + bigint, |
| 14948 | + bpv.wait_time_ms |
| 14949 | + ) |
| 14950 | + ) DESC |
| 14951 | + ) |
| 14952 | + FROM blocker_per_victim AS bpv |
| 14953 | + GROUP BY |
| 14954 | + bpv.database_name, |
| 14955 | + bpv.sql_handle, |
| 14956 | + bpv.stmtstart, |
| 14957 | + bpv.stmtend |
| 14958 | + HAVING |
| 14959 | + SUM(CONVERT(bigint, bpv.wait_time_ms)) * 10 >= |
| 14960 | + ( |
| 14961 | + SELECT |
| 14962 | + SUM(CONVERT(bigint, bpv2.wait_time_ms)) |
| 14963 | + FROM blocker_per_victim AS bpv2 |
| 14964 | + ) |
| 14965 | + OPTION(RECOMPILE); |
| 14966 | + |
14740 | 14967 | IF @debug = 1 |
14741 | 14968 | BEGIN |
14742 | 14969 | RAISERROR('Inserting #block_findings, check_id 1000', 0, 1) WITH NOWAIT; |
|
0 commit comments