2010-06-24 5 views
3

Ma taille de tempdb augmente trop, car nous effectuons trop de transactions dans la base de données. Quelqu'un peut-il me faire savoir comment réduire ce tempdb sans redémarrer le serveur. J'ai essayé DBCC SHRINKDATABASE et il n'a pas aidéSQL Server 2005 - comment réduire le tempdb

Merci à l'avance

Répondre

0

Shrink les fichiers de données. De tempdb:

dbcc shrinkfile ('tempdev') 

dbcc shrinkfile ('templog') 

Si vous avez d'autres fichiers de données pour tempdb, vous devrez peut-être les réduire également. Vous pouvez le voir dans le dictionnaire de données du système. Regardez dans la colonne "nom".

select * from sys.database_files 
4

Votre tempdb est la taille, il doit être ...

Il va juste se développer à nouveau, juste encore plus fragmenté sur le disque et peut-être bloquer pendant qu'il pousse trop.

Plus sérieusement, je définir la taille de tempdb à soemthing sensible et légèrement plus grand que maintenant, arrêtez SQL, supprimez les anciens fichiers à 110% sûr, démarrer SQL Server à nouveau ...

3

J'ai trouvé que rétrécir le tempdb est souvent une tâche difficile.

La solution que j'ai utilisée précédemment consiste à définir la taille initiale de la base de données tempdb comme étant la taille réelle souhaitée de la base de données. Redémarrer le service SQL Server va ensuite recréer la base de données tempdb à cette taille sépcifiée.

Vous pouvez également trouver la référence de Microsoft suivant pour une lecture utile:

http://support.microsoft.com/kb/307487/en-gb

0

Même avec "DBCC SHRINKFILE" vous pouvez recevoir d'avertissement comme « DBCC SHRINKFILE: Page 1: 878039 n'a pas pu être déplacé parce que c'est une page de fichier de travail. " cela ne conduit à aucun rétrécissement.

J'ai trouvé un blog qui explique bien cette situation et dire comment la solution de contournement et comment réduire avec succès tempdb sans redémarrer SQL: http://adventuresinsql.com/2009/12/how-to-shrink-tempdb-in-sql-2005/

Voici donc un exemple de ce blog:

DBCC FREEPROCCACHE 
GO 
USE [tempdb] 
GO 
DBCC SHRINKFILE (N'tempdev') 
GO 
DBCC SHRINKDATABASE(N'tempdb') 
GO