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
sql-server
shrink
tempdb
Mcol
la source
la source
Réponses:
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 des caches de procédures, des caches tampons, etc. aura 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 ça t'as aidé!
la source