Le parallélisme dans SQL Server

Le parallélisme dans SQL ServerDepuis la version 2019 (15.0) de SQL Server, le parallélisme est géré automatiquement. Vous avez toutefois la possibilité de fixer le nombre de processeurs utilisés par vos bases ainsi que le nombre maximum de threads fonction du nombre de processeurs.

Je vous ai concocté un script Transact-SQL pour ajuster ces valeurs en fonction du nombre de processeurs détectés sur votre serveur :

DECLARE @cpus INT;
DECLARE @threads INT;
DECLARE @db VARCHAR(255);
DECLARE @sql VARCHAR(255);
DECLARE dbs CURSOR FOR 	SELECT name FROM sys.databases;   
SELECT @cpus=cpu_count FROM [sys].[dm_os_sys_info];
IF @cpus=4 SET @threads= 512
ELSE IF @cpus=8 SET @threads= 576
ELSE IF @cpus=16 SET @threads=704
ELSE IF @cpus=32 SET @threads=960
ELSE IF @cpus=64 SET @threads=1472
ELSE IF @cpus=128 SET @threads=4480
ELSE IF @cpus=256 SET @threads=8576
ELSE SET @threads=0;
OPEN dbs;
FETCH NEXT FROM dbs INTO @db;
WHILE @@FETCH_STATUS = 0  
BEGIN  
	SET @sql='USE ['+@db+'];';
	EXEC(@sql);
	EXEC sp_configure 'show advanced options', 1;   
	RECONFIGURE WITH OVERRIDE;  
	EXEC sp_configure 'max degree of parallelism', @cpus;  
	RECONFIGURE WITH OVERRIDE;
	EXEC sp_configure 'max worker threads', @threads ;  
	RECONFIGURE WITH OVERRIDE;
        FETCH NEXT FROM dbs INTO @db;    
END ;
CLOSE dbs;
DEALLOCATE dbs;
GO

MSSQL /