Skip to content

Commit d92cd42

Browse files
Merge fix/pressuredetector-integer-division into dev
2 parents 24ca7f2 + 0c5f43d commit d92cd42

1 file changed

Lines changed: 32 additions & 21 deletions

File tree

sp_PressureDetector/sp_PressureDetector.sql

Lines changed: 32 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2284,13 +2284,16 @@ OPTION(MAXDOP 1, RECOMPILE);',
22842284
total_data_files =
22852285
COUNT_BIG(*),
22862286
min_size_gb =
2287-
MIN(mf.size * 8) / 1024 / 1024,
2287+
CONVERT(decimal(19, 2), MIN(mf.size * 8.0) / 1024.0 / 1024.0),
22882288
max_size_gb =
2289-
MAX(mf.size * 8) / 1024 / 1024,
2289+
CONVERT(decimal(19, 2), MAX(mf.size * 8.0) / 1024.0 / 1024.0),
2290+
/* Exclude percent-growth files: their mf.growth is a percentage,
2291+
not page count, so * 8 math produces meaningless GB numbers.
2292+
Percent-growth files are legacy/misconfigured in tempdb anyway. */
22902293
min_growth_increment_gb =
2291-
MIN(mf.growth * 8) / 1024 / 1024,
2294+
CONVERT(decimal(19, 2), MIN(CASE WHEN mf.is_percent_growth = 0 THEN mf.growth * 8.0 END) / 1024.0 / 1024.0),
22922295
max_growth_increment_gb =
2293-
MAX(mf.growth * 8) / 1024 / 1024,
2296+
CONVERT(decimal(19, 2), MAX(CASE WHEN mf.is_percent_growth = 0 THEN mf.growth * 8.0 END) / 1024.0 / 1024.0),
22942297
scheduler_total_count =
22952298
(
22962299
SELECT
@@ -2576,14 +2579,18 @@ OPTION(MAXDOP 1, RECOMPILE);',
25762579
@database_size_out = N'
25772580
SELECT
25782581
@database_size_out_gb =
2579-
SUM
2582+
CONVERT
25802583
(
2581-
CONVERT
2584+
decimal(19, 2),
2585+
SUM
25822586
(
2583-
bigint,
2584-
df.size
2585-
)
2586-
) * 8 / 1024 / 1024
2587+
CONVERT
2588+
(
2589+
bigint,
2590+
df.size
2591+
)
2592+
) * 8.0 / 1024.0 / 1024.0
2593+
)
25872594
FROM sys.database_files AS df
25882595
OPTION(MAXDOP 1, RECOMPILE);';
25892596
END;
@@ -2593,14 +2600,18 @@ OPTION(MAXDOP 1, RECOMPILE);',
25932600
@database_size_out = N'
25942601
SELECT
25952602
@database_size_out_gb =
2596-
SUM
2603+
CONVERT
25972604
(
2598-
CONVERT
2605+
decimal(19, 2),
2606+
SUM
25992607
(
2600-
bigint,
2601-
mf.size
2602-
)
2603-
) * 8 / 1024 / 1024
2608+
CONVERT
2609+
(
2610+
bigint,
2611+
mf.size
2612+
)
2613+
) * 8.0 / 1024.0 / 1024.0
2614+
)
26042615
FROM sys.master_files AS mf
26052616
WHERE mf.database_id > 4
26062617
OPTION(MAXDOP 1, RECOMPILE);';
@@ -2654,9 +2665,9 @@ OPTION(MAXDOP 1, RECOMPILE);',
26542665
indicators_system =
26552666
t.record.value('(/Record/ResourceMonitor/IndicatorsSystem)[1]', 'integer'),
26562667
physical_memory_available_gb =
2657-
t.record.value('(/Record/MemoryRecord/AvailablePhysicalMemory)[1]', 'bigint') / 1024 / 1024,
2668+
CONVERT(decimal(19, 2), t.record.value('(/Record/MemoryRecord/AvailablePhysicalMemory)[1]', 'bigint') / 1024.0 / 1024.0),
26582669
virtual_memory_available_gb =
2659-
t.record.value('(/Record/MemoryRecord/AvailableVirtualAddressSpace)[1]', 'bigint') / 1024 / 1024
2670+
CONVERT(decimal(19, 2), t.record.value('(/Record/MemoryRecord/AvailableVirtualAddressSpace)[1]', 'bigint') / 1024.0 / 1024.0)
26602671
FROM sys.dm_os_sys_info AS osi
26612672
CROSS JOIN
26622673
(
@@ -2944,12 +2955,12 @@ OPTION(MAXDOP 1, RECOMPILE);',
29442955
SELECT
29452956
CONVERT
29462957
(
2947-
bigint,
2948-
c.value_in_use
2958+
decimal(19, 2),
2959+
CONVERT(bigint, c.value_in_use) / 1024.0
29492960
)
29502961
FROM sys.configurations AS c
29512962
WHERE c.name = N''max server memory (MB)''
2952-
) / 1024,
2963+
),
29532964
max_memory_grant_cap =
29542965
@memory_grant_cap,
29552966
memory_model =

0 commit comments

Comments
 (0)