web-dev-qa-db-fra.com

Meilleure pratique pour réduire Tempdb dans un environnement de production

Quelle est la meilleure pratique à utiliser lors de la réduction de la base de données temporaire dans SQL Server 2008?

Est-il risqué d'utiliser les éléments suivants?

use tempdb
GO

DBCC FREEPROCCACHE -- clean cache
DBCC DROPCLEANBUFFERS -- clean buffers
DBCC FREESYSTEMCACHE ('ALL') -- clean system cache
DBCC FREESESSIONCACHE -- clean session cache
DBCC SHRINKDATABASE(tempdb, 10); -- shrink tempdb
dbcc shrinkfile ('tempdev') -- shrink db file
dbcc shrinkfile ('templog') -- shrink log file
GO

-- report the new file sizes
SELECT name, size
FROM sys.master_files
WHERE database_id = DB_ID(N'tempdb');
GO
24
Mcol

Il est recommandé de surveiller de manière proactive l'utilisation normale de Tempdb et de définir la taille en conséquence. S'il s'agit d'un cas où la Tempdb a atteint une telle taille et son environnement PROD, je redémarrerais les services SQL Server pendant la maintenance hebdomadaire. Là, Tempdb reviendrait à sa taille configurée.

La réduction du fichier est correcte tant que Tempdb n'est pas utilisé, sinon les transactions existantes peuvent être affectées du point de vue des performances en raison de blocages et de blocages.

Le nettoyage du cache de procédure, les caches de tampon, etc. auront un impact négatif sur les performances de la base de données elle-même jusqu'à ce qu'ils ne soient pas recréés. Je ne ferais pas ça sur PROD.

J'espère que cela pourra aider!

11
dattatraynale