Files
sql-scripts/DBG - new max memory algo chatgpt version.sql
2024-03-07 16:52:14 +01:00

36 lines
1.1 KiB
Transact-SQL

DECLARE @oneGb INT = 1024; -- MB
-- "hard coded" options
DECLARE @architecture NVARCHAR(10) = 'x64';
DECLARE @totalram INT = 16 * @oneGb;
DECLARE @corenumber INT = 2;
DECLARE @otherApps INT = 0; --reserved ram for other apps in Mo
-- Thread stack sizes in MB
DECLARE @threadStackSizes TABLE (Architecture NVARCHAR(10), Size INT);
INSERT INTO @threadStackSizes VALUES ('x86', 1), ('x64', 2), ('IA64', 4);
DECLARE @threadStackSize INT;
SELECT @threadStackSize = Size FROM @threadStackSizes WHERE Architecture = @architecture;
DECLARE @osReservedPart FLOAT;
SET @osReservedPart = CASE WHEN @totalram < (20 * @oneGb) THEN 0.2 ELSE 0.125 END;
DECLARE @forOS INT;
SET @forOS = CAST(@totalram * @osReservedPart AS INT);
DECLARE @coretemp INT;
SET @coretemp = CASE WHEN @corenumber > 4 THEN 0 ELSE @corenumber END;
DECLARE @sqlThreads INT;
SET @sqlThreads = 256 + (@coretemp - 4) * 8;
DECLARE @temp FLOAT;
SET @temp = @corenumber / 4.0;
DECLARE @maxMemory INT;
SET @maxMemory = @totalram - @forOS - @otherApps - (@sqlThreads * @threadStackSize) - (1024 * CEILING(@temp));
-- Display the result
SELECT @maxMemory AS 'Max Memory (MB)';