Effectivement votre stratégie de stockage est pourrie... Voici comment je la remanierais au vu de vos info :
--> 1) Remaniement de tempdb :
--> 1.1 - Modifiez l'emplacement des fichiers actuels de tempdb pour les placer sur le SSD
1 2
| ALTER DATABASE tempdb MODIFY FILE (NAME = 'tempdev', FILENAME = '???...');
ALTER DATABASE tempdb MODIFY FILE (NAME = 'templog', FILENAME = '???...'); |
--> 1.2 - redémarrez le service SQL Server pour prise en compte
--> 1.3 - Supprimmez les anciens fichiers de tempdb (commande système) :
1 2
| DEL "C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA\tempdb.mdf"
DEL "C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA\templog.ldf" |
--> 1.4 - Redimensionnez le fichier templog à 1 Go et un pas d'incrément de 50 Mo :
ALTER DATABASE tempdb MODIFY FILE (NAME = 'templog', SIZE = 1 GB, FILEGROWTH = 50 MB);
--> 1.5 - Redimensionnez le fichier tempdev à 1 Go et un pas d'incrément de 50 Mo :
ALTER DATABASE tempdb MODIFY FILE (NAME = 'tempdev', SIZE = 1 GB, FILEGROWTH = 50 MB);
--> 1.6 - Créez 3 autres fichiers de données sur le SSD de 1 Go et un pas d'incrément de 50 Mo :
1 2 3
| ALTER DATABASE tempdb ADD FILE (NAME = 'tempdev2', FILENAME = '???...', SIZE = 1 GB, FILEGROWTH = 50 MB);
ALTER DATABASE tempdb ADD FILE (NAME = 'tempdev3', FILENAME = '???...', SIZE = 1 GB, FILEGROWTH = 50 MB);
ALTER DATABASE tempdb ADD FILE (NAME = 'tempdev4', FILENAME = '???...', SIZE = 1 GB, FILEGROWTH = 50 MB); |
--> 2) base de production :
--> 2.1 - redimensionnement de votre fichier de journalisation et du pas d'incrément
ALTER DATABASE Database_2 MODIFY FILE (NAME = 'Database_2_log', SIZE = 64 GB, FILEGROWTH = 50 MB);
--> 2.2 - ajout de 3 nouveaux fichiers à la base :
1 2 3
| ALTER DATABASE Database_2 ADD FILE (NAME = 'Database_2_1', FILENAME = '???...', SIZE = 16 GB, FILEGROWTH = 50 MB) TO FILEGROUP [PRIMARY];
ALTER DATABASE Database_2 ADD FILE (NAME = 'Database_2_2', FILENAME = '???...', SIZE = 16 GB, FILEGROWTH = 50 MB) TO FILEGROUP [PRIMARY];
ALTER DATABASE Database_2 ADD FILE (NAME = 'Database_2_3', FILENAME = '???...', SIZE = 16 GB, FILEGROWTH = 50 MB) TO FILEGROUP [PRIMARY]; |
--> 2.3 - Migration des données dans les nouveaux fichiers :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| USE Database_2;
DECLARE @SQL NVARCHAR(max);
SET @SQL = N'';
WITH T AS
(
SELECT N'ALTER INDEX [' + i.name + N'] ON [' + s.name + N'].[' + o.name + N'] REBUILD;' AS COMMANDE
FROM sys.indexes AS i
INNER JOIN sys.objects AS o
ON i.object_id = o.object_id
INNER JOIN sys.schemas AS s
ON o.schema_id = s.schema_id
WHERE index_id > 0
AND o."type" = 'U'
UNION ALL
SELECT N'ALTER TABLE [' + s.name + N'].[' + o.name + N'] REBUILD;'
FROM sys.indexes AS i
INNER JOIN sys.objects AS o
ON i.object_id = o.object_id
INNER JOIN sys.schemas AS s
ON o.schema_id = s.schema_id
WHERE index_id = 0
AND o."type" = 'U'
)
SELECT @SQL = @SQL + COMMANDE
FROM T;
EXEC (@SQL); |
--> 2.4 - Redimensionement du fichier actuel de données de la base de prod :
1 2
| USE Database_2;
DBCC SHRINKFILE ('Database_2', 16384); |
--> 2.5 - Redimensionement du pas d'incrément de ce fichier :
ALTER DATABASE Database_2 MODIFY FILE (NAME = 'Database_2', FILEGROWTH = 50 MB);
Après, vous pourrez faire un MAXDOP à 4 :
1 2 3 4 5 6 7 8
| EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
EXEC sp_configure 'max degree of parallelism', 4;
GO
RECONFIGURE;
GO |
À faire aux heures creuses !
Tout cela devrait améliorer notablement votre instance !!!!
Mais dernière question : vu la grosseur de votre fichier de transaction : FAITES VOUS RÉGULIÈREMENT des sauvegardes du journal de transaction ?
A +
Partager