आप इस तरह से कर सकते हैं:
-- 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
अंतिम चरण सबसे पेचीदा है। सिकुड़ने की प्रक्रिया के दौरान, किसी भी अन्य कार्रवाई को टेम्पर्ड का उपयोग नहीं करना चाहिए, क्योंकि इससे आपके SHRINKFILE
ऑपरेशन का गर्भपात हो सकता है । इस तथ्य के कारण कि टेम्पर्ड सिकुड़ना काफी आसान है, इसे सिकुड़ने में देर नहीं लगनी चाहिए।
खबरदार कि यह "सॉफ्ट रिस्टार्ट" जैसा कुछ है। बफ़र्स से सब कुछ हटा दिया जाएगा और डिस्क पर लिखा जाएगा। इसका मतलब आपके I / O सबसिस्टम (लेखन) पर प्रभाव पड़ता है क्योंकि इसे सभी लिखने के संचालन को संभालना होता है। उसके बाद आप फ़ाइल को सिकोड़ सकते हैं (जिसका पढ़ने और लिखने के प्रदर्शन पर प्रभाव पड़ता है) और अंत में, किसी भी तालिका को क्वेरी करने वाली सभी प्रक्रियाओं को आई / ओ सबसिस्टम से बफ़र्स में डेटा वापस प्राप्त करने की आवश्यकता होगी। यह एक पुनरारंभ से अधिक चोट लग सकती है।
यदि आप एक विकास प्रणाली चला रहे हैं, तो आपको इस तरह से मशीन को फिर से चालू करना चाहिए। लेकिन एक असफल साथी के बिना कुछ उत्पादन प्रणालियों पर, यह उपयोगी हो सकता है।