SQL Server Azure PerfCounters Fix (#8331)

This commit is contained in:
Giovanni Luisotto 2020-10-28 19:00:37 +01:00 committed by GitHub
parent e83a165635
commit c5e04325ab
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 182 additions and 180 deletions

View File

@ -432,100 +432,101 @@ WITH PerfCounters AS (
END END
WHERE WHERE
counter_name IN ( counter_name IN (
''SQL Compilations/sec'' 'SQL Compilations/sec'
,''SQL Re-Compilations/sec'' ,'SQL Re-Compilations/sec'
,''User Connections'' ,'User Connections'
,''Batch Requests/sec'' ,'Batch Requests/sec'
,''Logouts/sec'' ,'Logouts/sec'
,''Logins/sec'' ,'Logins/sec'
,''Processes blocked'' ,'Processes blocked'
,''Latch Waits/sec'' ,'Latch Waits/sec'
,''Full Scans/sec'' ,'Full Scans/sec'
,''Index Searches/sec'' ,'Index Searches/sec'
,''Page Splits/sec'' ,'Page Splits/sec'
,''Page lookups/sec'' ,'Page lookups/sec'
,''Page reads/sec'' ,'Page reads/sec'
,''Page writes/sec'' ,'Page writes/sec'
,''Readahead pages/sec'' ,'Readahead pages/sec'
,''Lazy writes/sec'' ,'Lazy writes/sec'
,''Checkpoint pages/sec'' ,'Checkpoint pages/sec'
,''Page life expectancy'' ,'Page life expectancy'
,''Log File(s) Size (KB)'' ,'Log File(s) Size (KB)'
,''Log File(s) Used Size (KB)'' ,'Log File(s) Used Size (KB)'
,''Data File(s) Size (KB)'' ,'Data File(s) Size (KB)'
,''Transactions/sec'' ,'Transactions/sec'
,''Write Transactions/sec'' ,'Write Transactions/sec'
,''Active Temp Tables'' ,'Active Temp Tables'
,''Temp Tables Creation Rate'' ,'Temp Tables Creation Rate'
,''Temp Tables For Destruction'' ,'Temp Tables For Destruction'
,''Free Space in tempdb (KB)'' ,'Free Space in tempdb (KB)'
,''Version Store Size (KB)'' ,'Version Store Size (KB)'
,''Memory Grants Pending'' ,'Memory Grants Pending'
,''Memory Grants Outstanding'' ,'Memory Grants Outstanding'
,''Free list stalls/sec'' ,'Free list stalls/sec'
,''Buffer cache hit ratio'' ,'Buffer cache hit ratio'
,''Buffer cache hit ratio base'' ,'Buffer cache hit ratio base'
,''Backup/Restore Throughput/sec'' ,'Backup/Restore Throughput/sec'
,''Total Server Memory (KB)'' ,'Total Server Memory (KB)'
,''Target Server Memory (KB)'' ,'Target Server Memory (KB)'
,''Log Flushes/sec'' ,'Log Flushes/sec'
,''Log Flush Wait Time'' ,'Log Flush Wait Time'
,''Memory broker clerk size'' ,'Memory broker clerk size'
,''Log Bytes Flushed/sec'' ,'Log Bytes Flushed/sec'
,''Bytes Sent to Replica/sec'' ,'Bytes Sent to Replica/sec'
,''Log Send Queue'' ,'Log Send Queue'
,''Bytes Sent to Transport/sec'' ,'Bytes Sent to Transport/sec'
,''Sends to Replica/sec'' ,'Sends to Replica/sec'
,''Bytes Sent to Transport/sec'' ,'Bytes Sent to Transport/sec'
,''Sends to Transport/sec'' ,'Sends to Transport/sec'
,''Bytes Received from Replica/sec'' ,'Bytes Received from Replica/sec'
,''Receives from Replica/sec'' ,'Receives from Replica/sec'
,''Flow Control Time (ms/sec)'' ,'Flow Control Time (ms/sec)'
,''Flow Control/sec'' ,'Flow Control/sec'
,''Resent Messages/sec'' ,'Resent Messages/sec'
,''Redone Bytes/sec'' ,'Redone Bytes/sec'
,''XTP Memory Used (KB)'' ,'XTP Memory Used (KB)'
,''Transaction Delay'' ,'Transaction Delay'
,''Log Bytes Received/sec'' ,'Log Bytes Received/sec'
,''Log Apply Pending Queue'' ,'Log Apply Pending Queue'
,''Redone Bytes/sec'' ,'Redone Bytes/sec'
,''Recovery Queue'' ,'Recovery Queue'
,''Log Apply Ready Queue'' ,'Log Apply Ready Queue'
,''CPU usage %'' ,'CPU usage %'
,''CPU usage % base'' ,'CPU usage % base'
,''Queued requests'' ,'Queued requests'
,''Requests completed/sec'' ,'Requests completed/sec'
,''Blocked tasks'' ,'Blocked tasks'
,''Active memory grant amount (KB)'' ,'Active memory grant amount (KB)'
,''Disk Read Bytes/sec'' ,'Disk Read Bytes/sec'
,''Disk Read IO Throttled/sec'' ,'Disk Read IO Throttled/sec'
,''Disk Read IO/sec'' ,'Disk Read IO/sec'
,''Disk Write Bytes/sec'' ,'Disk Write Bytes/sec'
,''Disk Write IO Throttled/sec'' ,'Disk Write IO Throttled/sec'
,''Disk Write IO/sec'' ,'Disk Write IO/sec'
,''Used memory (KB)'' ,'Used memory (KB)'
,''Forwarded Records/sec'' ,'Forwarded Records/sec'
,''Background Writer pages/sec'' ,'Background Writer pages/sec'
,''Percent Log Used'' ,'Percent Log Used'
,''Log Send Queue KB'' ,'Log Send Queue KB'
,''Redo Queue KB'' ,'Redo Queue KB'
,''Mirrored Write Transactions/sec'' ,'Mirrored Write Transactions/sec'
,''Group Commit Time'' ,'Group Commit Time'
,''Group Commits/Sec'' ,'Group Commits/Sec'
) OR ( ) OR (
spi.[object_name] LIKE ''%User Settable%'' spi.[object_name] LIKE '%User Settable%'
OR spi.[object_name] LIKE ''%SQL Errors%'' OR spi.[object_name] LIKE '%SQL Errors%'
OR spi.[object_name] LIKE ''%Batch Resp Statistics%'' OR spi.[object_name] LIKE '%Batch Resp Statistics%'
) OR ( ) OR (
spi.[instance_name] IN (''_Total'') spi.[instance_name] IN ('_Total')
AND spi.[counter_name] IN ( AND spi.[counter_name] IN (
''Lock Timeouts/sec'' 'Lock Timeouts/sec'
,''Lock Timeouts (timeout > 0)/sec'' ,'Lock Timeouts (timeout > 0)/sec'
,''Number of Deadlocks/sec'' ,'Number of Deadlocks/sec'
,''Lock Waits/sec'' ,'Lock Waits/sec'
,''Latch Waits/sec'' ,'Latch Waits/sec'
) )
) )
)
INSERT INTO @PCounters select * from PerfCounters INSERT INTO @PCounters select * from PerfCounters
@ -539,7 +540,7 @@ SELECT
WHEN '_Total' THEN 'Total' WHEN '_Total' THEN 'Total'
ELSE ISNULL(pc.[instance_name],'') ELSE ISNULL(pc.[instance_name],'')
END AS [instance] END AS [instance]
,CAST(CASE WHEN pc.[cntr_type] = 537003264 AND pc1.[cntr_value] > 0 THEN (pc.[cntr_value] * 1.0) / (pc1.[cntr_value] * 1.0) * 100 ELSE pc.[cntr_value] END AS float(10)) AS [value], ,CAST(CASE WHEN pc.[cntr_type] = 537003264 AND pc1.[cntr_value] > 0 THEN (pc.[cntr_value] * 1.0) / (pc1.[cntr_value] * 1.0) * 100 ELSE pc.[cntr_value] END AS float(10)) AS [value]
,cast(pc.[cntr_type] as varchar(25)) as [counter_type] ,cast(pc.[cntr_type] as varchar(25)) as [counter_type]
from @PCounters pc from @PCounters pc
LEFT OUTER JOIN @PCounters AS pc1 LEFT OUTER JOIN @PCounters AS pc1
@ -954,100 +955,101 @@ WITH PerfCounters AS (
END END
WHERE WHERE
counter_name IN ( counter_name IN (
''SQL Compilations/sec'' 'SQL Compilations/sec'
,''SQL Re-Compilations/sec'' ,'SQL Re-Compilations/sec'
,''User Connections'' ,'User Connections'
,''Batch Requests/sec'' ,'Batch Requests/sec'
,''Logouts/sec'' ,'Logouts/sec'
,''Logins/sec'' ,'Logins/sec'
,''Processes blocked'' ,'Processes blocked'
,''Latch Waits/sec'' ,'Latch Waits/sec'
,''Full Scans/sec'' ,'Full Scans/sec'
,''Index Searches/sec'' ,'Index Searches/sec'
,''Page Splits/sec'' ,'Page Splits/sec'
,''Page lookups/sec'' ,'Page lookups/sec'
,''Page reads/sec'' ,'Page reads/sec'
,''Page writes/sec'' ,'Page writes/sec'
,''Readahead pages/sec'' ,'Readahead pages/sec'
,''Lazy writes/sec'' ,'Lazy writes/sec'
,''Checkpoint pages/sec'' ,'Checkpoint pages/sec'
,''Page life expectancy'' ,'Page life expectancy'
,''Log File(s) Size (KB)'' ,'Log File(s) Size (KB)'
,''Log File(s) Used Size (KB)'' ,'Log File(s) Used Size (KB)'
,''Data File(s) Size (KB)'' ,'Data File(s) Size (KB)'
,''Transactions/sec'' ,'Transactions/sec'
,''Write Transactions/sec'' ,'Write Transactions/sec'
,''Active Temp Tables'' ,'Active Temp Tables'
,''Temp Tables Creation Rate'' ,'Temp Tables Creation Rate'
,''Temp Tables For Destruction'' ,'Temp Tables For Destruction'
,''Free Space in tempdb (KB)'' ,'Free Space in tempdb (KB)'
,''Version Store Size (KB)'' ,'Version Store Size (KB)'
,''Memory Grants Pending'' ,'Memory Grants Pending'
,''Memory Grants Outstanding'' ,'Memory Grants Outstanding'
,''Free list stalls/sec'' ,'Free list stalls/sec'
,''Buffer cache hit ratio'' ,'Buffer cache hit ratio'
,''Buffer cache hit ratio base'' ,'Buffer cache hit ratio base'
,''Backup/Restore Throughput/sec'' ,'Backup/Restore Throughput/sec'
,''Total Server Memory (KB)'' ,'Total Server Memory (KB)'
,''Target Server Memory (KB)'' ,'Target Server Memory (KB)'
,''Log Flushes/sec'' ,'Log Flushes/sec'
,''Log Flush Wait Time'' ,'Log Flush Wait Time'
,''Memory broker clerk size'' ,'Memory broker clerk size'
,''Log Bytes Flushed/sec'' ,'Log Bytes Flushed/sec'
,''Bytes Sent to Replica/sec'' ,'Bytes Sent to Replica/sec'
,''Log Send Queue'' ,'Log Send Queue'
,''Bytes Sent to Transport/sec'' ,'Bytes Sent to Transport/sec'
,''Sends to Replica/sec'' ,'Sends to Replica/sec'
,''Bytes Sent to Transport/sec'' ,'Bytes Sent to Transport/sec'
,''Sends to Transport/sec'' ,'Sends to Transport/sec'
,''Bytes Received from Replica/sec'' ,'Bytes Received from Replica/sec'
,''Receives from Replica/sec'' ,'Receives from Replica/sec'
,''Flow Control Time (ms/sec)'' ,'Flow Control Time (ms/sec)'
,''Flow Control/sec'' ,'Flow Control/sec'
,''Resent Messages/sec'' ,'Resent Messages/sec'
,''Redone Bytes/sec'' ,'Redone Bytes/sec'
,''XTP Memory Used (KB)'' ,'XTP Memory Used (KB)'
,''Transaction Delay'' ,'Transaction Delay'
,''Log Bytes Received/sec'' ,'Log Bytes Received/sec'
,''Log Apply Pending Queue'' ,'Log Apply Pending Queue'
,''Redone Bytes/sec'' ,'Redone Bytes/sec'
,''Recovery Queue'' ,'Recovery Queue'
,''Log Apply Ready Queue'' ,'Log Apply Ready Queue'
,''CPU usage %'' ,'CPU usage %'
,''CPU usage % base'' ,'CPU usage % base'
,''Queued requests'' ,'Queued requests'
,''Requests completed/sec'' ,'Requests completed/sec'
,''Blocked tasks'' ,'Blocked tasks'
,''Active memory grant amount (KB)'' ,'Active memory grant amount (KB)'
,''Disk Read Bytes/sec'' ,'Disk Read Bytes/sec'
,''Disk Read IO Throttled/sec'' ,'Disk Read IO Throttled/sec'
,''Disk Read IO/sec'' ,'Disk Read IO/sec'
,''Disk Write Bytes/sec'' ,'Disk Write Bytes/sec'
,''Disk Write IO Throttled/sec'' ,'Disk Write IO Throttled/sec'
,''Disk Write IO/sec'' ,'Disk Write IO/sec'
,''Used memory (KB)'' ,'Used memory (KB)'
,''Forwarded Records/sec'' ,'Forwarded Records/sec'
,''Background Writer pages/sec'' ,'Background Writer pages/sec'
,''Percent Log Used'' ,'Percent Log Used'
,''Log Send Queue KB'' ,'Log Send Queue KB'
,''Redo Queue KB'' ,'Redo Queue KB'
,''Mirrored Write Transactions/sec'' ,'Mirrored Write Transactions/sec'
,''Group Commit Time'' ,'Group Commit Time'
,''Group Commits/Sec'' ,'Group Commits/Sec'
) OR ( ) OR (
spi.[object_name] LIKE ''%User Settable%'' spi.[object_name] LIKE '%User Settable%'
OR spi.[object_name] LIKE ''%SQL Errors%'' OR spi.[object_name] LIKE '%SQL Errors%'
OR spi.[object_name] LIKE ''%Batch Resp Statistics%'' OR spi.[object_name] LIKE '%Batch Resp Statistics%'
) OR ( ) OR (
spi.[instance_name] IN (''_Total'') spi.[instance_name] IN ('_Total')
AND spi.[counter_name] IN ( AND spi.[counter_name] IN (
''Lock Timeouts/sec'' 'Lock Timeouts/sec'
,''Lock Timeouts (timeout > 0)/sec'' ,'Lock Timeouts (timeout > 0)/sec'
,''Number of Deadlocks/sec'' ,'Number of Deadlocks/sec'
,''Lock Waits/sec'' ,'Lock Waits/sec'
,''Latch Waits/sec'' ,'Latch Waits/sec'
) )
) )
)
INSERT INTO @PCounters select * from PerfCounters INSERT INTO @PCounters select * from PerfCounters
@ -1060,7 +1062,7 @@ SELECT
WHEN '_Total' THEN 'Total' WHEN '_Total' THEN 'Total'
ELSE ISNULL(pc.[instance_name],'') ELSE ISNULL(pc.[instance_name],'')
END AS [instance] END AS [instance]
,CAST(CASE WHEN pc.[cntr_type] = 537003264 AND pc1.[cntr_value] > 0 THEN (pc.[cntr_value] * 1.0) / (pc1.[cntr_value] * 1.0) * 100 ELSE pc.[cntr_value] END AS float(10)) AS [value], ,CAST(CASE WHEN pc.[cntr_type] = 537003264 AND pc1.[cntr_value] > 0 THEN (pc.[cntr_value] * 1.0) / (pc1.[cntr_value] * 1.0) * 100 ELSE pc.[cntr_value] END AS float(10)) AS [value]
,cast(pc.[cntr_type] as varchar(25)) as [counter_type] ,cast(pc.[cntr_type] as varchar(25)) as [counter_type]
from @PCounters pc from @PCounters pc
LEFT OUTER JOIN @PCounters AS pc1 LEFT OUTER JOIN @PCounters AS pc1