fix(inputs.sqlserver): Suppress error on secondary replicas (#12528)
This commit is contained in:
parent
00347033ab
commit
7e87a25123
|
|
@ -453,86 +453,92 @@ END
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
SELECT
|
BEGIN TRY
|
||||||
[measurement],[sql_instance],[database_name],[session_id]
|
SELECT
|
||||||
,ISNULL([request_id],0) AS [request_id]
|
[measurement],[sql_instance],[database_name],[session_id]
|
||||||
,[blocking_session_id],[status],[cpu_time_ms]
|
,ISNULL([request_id],0) AS [request_id]
|
||||||
,[total_elapsed_time_ms],[logical_reads],[writes]
|
,[blocking_session_id],[status],[cpu_time_ms]
|
||||||
,[command],[wait_time_ms],[wait_type]
|
,[total_elapsed_time_ms],[logical_reads],[writes]
|
||||||
,[wait_resource],[program_name]
|
,[command],[wait_time_ms],[wait_type]
|
||||||
,[host_name],[nt_user_name],[login_name]
|
,[wait_resource],[program_name]
|
||||||
,[transaction_isolation_level],[granted_query_memory_pages],[percent_complete]
|
,[host_name],[nt_user_name],[login_name]
|
||||||
,[statement_text],[objectid],[stmt_object_name]
|
,[transaction_isolation_level],[granted_query_memory_pages],[percent_complete]
|
||||||
,[stmt_db_name],[query_hash],[query_plan_hash]
|
,[statement_text],[objectid],[stmt_object_name]
|
||||||
,replica_updateability
|
,[stmt_db_name],[query_hash],[query_plan_hash]
|
||||||
,[session_db_name],[open_transaction]
|
,replica_updateability
|
||||||
FROM (
|
,[session_db_name],[open_transaction]
|
||||||
SELECT
|
FROM (
|
||||||
'sqlserver_requests' AS [measurement]
|
SELECT
|
||||||
,REPLACE(@@SERVERNAME,'\',':') AS [sql_instance]
|
'sqlserver_requests' AS [measurement]
|
||||||
,DB_NAME() as [database_name]
|
,REPLACE(@@SERVERNAME,'\',':') AS [sql_instance]
|
||||||
,s.[session_id]
|
,DB_NAME() as [database_name]
|
||||||
,r.[request_id]
|
,s.[session_id]
|
||||||
,DB_NAME(COALESCE(r.[database_id], s.[database_id])) AS [session_db_name]
|
,r.[request_id]
|
||||||
,COALESCE(r.[status], s.[status]) AS [status]
|
,DB_NAME(COALESCE(r.[database_id], s.[database_id])) AS [session_db_name]
|
||||||
,COALESCE(r.[cpu_time], s.[cpu_time]) AS [cpu_time_ms]
|
,COALESCE(r.[status], s.[status]) AS [status]
|
||||||
,COALESCE(r.[total_elapsed_time], s.[total_elapsed_time]) AS [total_elapsed_time_ms]
|
,COALESCE(r.[cpu_time], s.[cpu_time]) AS [cpu_time_ms]
|
||||||
,COALESCE(r.[logical_reads], s.[logical_reads]) AS [logical_reads]
|
,COALESCE(r.[total_elapsed_time], s.[total_elapsed_time]) AS [total_elapsed_time_ms]
|
||||||
,COALESCE(r.[writes], s.[writes]) AS [writes]
|
,COALESCE(r.[logical_reads], s.[logical_reads]) AS [logical_reads]
|
||||||
,r.[command]
|
,COALESCE(r.[writes], s.[writes]) AS [writes]
|
||||||
,r.[wait_time] AS [wait_time_ms]
|
,r.[command]
|
||||||
,r.[wait_type]
|
,r.[wait_time] AS [wait_time_ms]
|
||||||
,r.[wait_resource]
|
,r.[wait_type]
|
||||||
,NULLIF(r.[blocking_session_id],0) AS [blocking_session_id]
|
,r.[wait_resource]
|
||||||
,s.[program_name]
|
,NULLIF(r.[blocking_session_id],0) AS [blocking_session_id]
|
||||||
,s.[host_name]
|
,s.[program_name]
|
||||||
,s.[nt_user_name]
|
,s.[host_name]
|
||||||
,s.[login_name]
|
,s.[nt_user_name]
|
||||||
,COALESCE(r.[open_transaction_count], s.[open_transaction_count]) AS [open_transaction]
|
,s.[login_name]
|
||||||
,LEFT (CASE COALESCE(r.[transaction_isolation_level], s.[transaction_isolation_level])
|
,COALESCE(r.[open_transaction_count], s.[open_transaction_count]) AS [open_transaction]
|
||||||
WHEN 0 THEN '0-Read Committed'
|
,LEFT (CASE COALESCE(r.[transaction_isolation_level], s.[transaction_isolation_level])
|
||||||
WHEN 1 THEN '1-Read Uncommitted (NOLOCK)'
|
WHEN 0 THEN '0-Read Committed'
|
||||||
WHEN 2 THEN '2-Read Committed'
|
WHEN 1 THEN '1-Read Uncommitted (NOLOCK)'
|
||||||
WHEN 3 THEN '3-Repeatable Read'
|
WHEN 2 THEN '2-Read Committed'
|
||||||
WHEN 4 THEN '4-Serializable'
|
WHEN 3 THEN '3-Repeatable Read'
|
||||||
WHEN 5 THEN '5-Snapshot'
|
WHEN 4 THEN '4-Serializable'
|
||||||
ELSE CONVERT (varchar(30), r.[transaction_isolation_level]) + '-UNKNOWN'
|
WHEN 5 THEN '5-Snapshot'
|
||||||
END, 30) AS [transaction_isolation_level]
|
ELSE CONVERT (varchar(30), r.[transaction_isolation_level]) + '-UNKNOWN'
|
||||||
,r.[granted_query_memory] AS [granted_query_memory_pages]
|
END, 30) AS [transaction_isolation_level]
|
||||||
,r.[percent_complete]
|
,r.[granted_query_memory] AS [granted_query_memory_pages]
|
||||||
,SUBSTRING(
|
,r.[percent_complete]
|
||||||
qt.[text],
|
,SUBSTRING(
|
||||||
r.[statement_start_offset] / 2 + 1,
|
qt.[text],
|
||||||
(CASE WHEN r.[statement_end_offset] = -1
|
r.[statement_start_offset] / 2 + 1,
|
||||||
THEN DATALENGTH(qt.[text])
|
(CASE WHEN r.[statement_end_offset] = -1
|
||||||
ELSE r.[statement_end_offset]
|
THEN DATALENGTH(qt.[text])
|
||||||
END - r.[statement_start_offset]) / 2 + 1
|
ELSE r.[statement_end_offset]
|
||||||
) AS [statement_text]
|
END - r.[statement_start_offset]) / 2 + 1
|
||||||
,qt.[objectid]
|
) AS [statement_text]
|
||||||
,QUOTENAME(OBJECT_SCHEMA_NAME(qt.[objectid], qt.[dbid])) + '.' + QUOTENAME(OBJECT_NAME(qt.[objectid], qt.[dbid])) as [stmt_object_name]
|
,qt.[objectid]
|
||||||
,DB_NAME(qt.[dbid]) AS [stmt_db_name]
|
,QUOTENAME(OBJECT_SCHEMA_NAME(qt.[objectid], qt.[dbid])) + '.' + QUOTENAME(OBJECT_NAME(qt.[objectid], qt.[dbid])) as [stmt_object_name]
|
||||||
,CONVERT(varchar(20),r.[query_hash],1) AS [query_hash]
|
,DB_NAME(qt.[dbid]) AS [stmt_db_name]
|
||||||
,CONVERT(varchar(20),r.[query_plan_hash],1) AS [query_plan_hash]
|
,CONVERT(varchar(20),r.[query_hash],1) AS [query_hash]
|
||||||
,DATABASEPROPERTYEX(DB_NAME(), 'Updateability') as replica_updateability
|
,CONVERT(varchar(20),r.[query_plan_hash],1) AS [query_plan_hash]
|
||||||
,s.[is_user_process]
|
,DATABASEPROPERTYEX(DB_NAME(), 'Updateability') as replica_updateability
|
||||||
,[blocking_or_blocked] = COUNT(*) OVER(PARTITION BY ISNULL(NULLIF(r.[blocking_session_id], 0),s.[session_id]))
|
,s.[is_user_process]
|
||||||
FROM sys.dm_exec_sessions AS s
|
,[blocking_or_blocked] = COUNT(*) OVER(PARTITION BY ISNULL(NULLIF(r.[blocking_session_id], 0),s.[session_id]))
|
||||||
LEFT OUTER JOIN sys.dm_exec_requests AS r
|
FROM sys.dm_exec_sessions AS s
|
||||||
ON s.[session_id] = r.[session_id]
|
LEFT OUTER JOIN sys.dm_exec_requests AS r
|
||||||
OUTER APPLY sys.dm_exec_sql_text(r.[sql_handle]) AS qt
|
ON s.[session_id] = r.[session_id]
|
||||||
) AS data
|
OUTER APPLY sys.dm_exec_sql_text(r.[sql_handle]) AS qt
|
||||||
WHERE
|
) AS data
|
||||||
[blocking_or_blocked] > 1 --Always include blocking or blocked sessions/requests
|
WHERE
|
||||||
OR [open_transaction] >= 1 --Always include sessions with open transactions
|
[blocking_or_blocked] > 1 --Always include blocking or blocked sessions/requests
|
||||||
OR (
|
OR [open_transaction] >= 1 --Always include sessions with open transactions
|
||||||
[request_id] IS NOT NULL --A request must exists
|
OR (
|
||||||
AND ( --Always fetch user process (in any state), fetch system process only if active
|
[request_id] IS NOT NULL --A request must exists
|
||||||
[is_user_process] = 1
|
AND ( --Always fetch user process (in any state), fetch system process only if active
|
||||||
OR [status] COLLATE Latin1_General_BIN NOT IN ('background', 'sleeping')
|
[is_user_process] = 1
|
||||||
)
|
OR [status] COLLATE Latin1_General_BIN NOT IN ('background', 'sleeping')
|
||||||
AND [session_id] <> @@SPID
|
)
|
||||||
)
|
AND [session_id] <> @@SPID
|
||||||
OPTION(MAXDOP 1);
|
)
|
||||||
|
OPTION(MAXDOP 1);
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
IF (ERROR_NUMBER() <> 976) --Avoid possible errors from secondary replica
|
||||||
|
THROW;
|
||||||
|
END CATCH
|
||||||
`
|
`
|
||||||
|
|
||||||
const sqlAzureMISchedulers string = `
|
const sqlAzureMISchedulers string = `
|
||||||
|
|
|
||||||
|
|
@ -1328,7 +1328,13 @@ WHERE 1 = 1
|
||||||
OR (s.session_id IN (SELECT blocking_session_id FROM #blockingSessions))
|
OR (s.session_id IN (SELECT blocking_session_id FROM #blockingSessions))
|
||||||
OPTION(MAXDOP 1)'
|
OPTION(MAXDOP 1)'
|
||||||
|
|
||||||
EXEC sp_executesql @SqlStatement
|
BEGIN TRY
|
||||||
|
EXEC sp_executesql @SqlStatement
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
IF (ERROR_NUMBER() <> 976) --Avoid possible errors from secondary replica
|
||||||
|
THROW;
|
||||||
|
END CATCH
|
||||||
`
|
`
|
||||||
|
|
||||||
const sqlServerVolumeSpaceV2 string = `
|
const sqlServerVolumeSpaceV2 string = `
|
||||||
|
|
|
||||||
|
|
@ -1139,7 +1139,13 @@ WHERE
|
||||||
)
|
)
|
||||||
OPTION(MAXDOP 1)'
|
OPTION(MAXDOP 1)'
|
||||||
|
|
||||||
EXEC sp_executesql @SqlStatement
|
BEGIN TRY
|
||||||
|
EXEC sp_executesql @SqlStatement
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
IF (ERROR_NUMBER() <> 976) --Avoid possible errors from secondary replica
|
||||||
|
THROW;
|
||||||
|
END CATCH
|
||||||
`
|
`
|
||||||
|
|
||||||
const sqlServerVolumeSpace string = `
|
const sqlServerVolumeSpace string = `
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue