Bunu şu şekilde yapabilirsiniz:
-- write everything from your buffers to the disc!
CHECKPOINT;
GO
-- Clean all buffers and caches
DBCC DROPCLEANBUFFERS;
DBCC FREEPROCCACHE;
DBCC FREESYSTEMCACHE('ALL');
DBCC FREESESSIONCACHE;
GO
-- Now shrink the file to your desired size
DBCC SHRINKFILE (TEMPDEV, 40960);
-- Make sure that there is no running transaction which uses the tempdb while shrinking!
-- This is most trickiest part of it all.
GO
Son adım en zor olanıdır. Küçültme işlemi sırasında tempdb'yi başka hiçbir işlem kullanmamalıdır, çünkü bu işleminizin iptal edilmesine neden olabilir SHRINKFILE. Tempdb'nin büzülmesi oldukça kolay olduğu için, büzülmesi uzun sürmemelidir.
Bunun "yumuşak yeniden başlatma" gibi bir şey olduğuna dikkat edin. Her şey tamponlardan kaldırılacak ve diske yazılacak. Bu, tüm yazma işlemlerini gerçekleştirmesi gerektiği için G / Ç alt sisteminiz (yazma) üzerinde bir etki anlamına gelir. Bundan sonra dosyayı (okuma ve yazma performansı üzerinde etkisi olan) küçültebilirsiniz ve sonunda, herhangi bir tabloyu sorgulayan tüm işlemlerin verileri G / Ç alt sisteminden arabelleklere geri alması gerekir. Bu, yeniden başlatmanın ötesine zarar verebilir.
Bir geliştirme sistemi kullanıyorsanız, makineyi bu şekilde yeniden başlatmanız yeterlidir. Ancak yük devretme ortağı olmayan bazı üretim sistemlerinde bu yararlı olabilir.