मैं SQL सर्वर के कैश से एक तालिका कैसे साफ़ करूँ?


10

मेरे डेटाबेस में कुछ टेबल हैं जिन्हें कैश नहीं किया जाना चाहिए।

मैं SQL सर्वर को तालिका के पृष्ठों को कैश नहीं करने के लिए कैसे कहूं या कैश से एक तालिका कैसे फ्लश करूं?

सभी कैश फ्लश करना कोई विकल्प नहीं है।

मैं SQL Server 2008 और SQL Server 2008 R2 का उपयोग कर रहा हूं।


4
आपने किस आधार पर निर्णय लिया है कि तालिकाओं को कैश नहीं किया जाना चाहिए?

3
यदि आपकी टेबल को कैश किया जा रहा है, तो उन्हें क्वेर किया जा रहा है। यदि उन्हें बार-बार एक्सेस किया जाता है, तो SQL सर्वर मेमोरी मैनेजर उन्हें आवश्यक समय पर अन्य ऑब्जेक्ट की प्राथमिकता में निकाल देगा। यहां आपका लक्ष्य क्या है?
जॉन सैंसोम

4
@ जॉन - पता नहीं कि ओपी का लक्ष्य क्या है लेकिन कई बार ऐसा होता है जहां यह उपयोगी होगा। उदाहरण के लिए बफर पूल को फ्लश किए बिना एक बड़ी तालिका के खिलाफ एक स्कैन करना।

3
निम्न कारणों में से कुछ: निम्न-प्राथमिकता वाली तालिका, iis / rs एक ही मशीन पर जैसे sql सर्वर, पॉवर उपयोग, आदि। सबसे महत्वपूर्ण यह है कि कुछ तालिकाओं के प्रदर्शन के संबंध में कम प्राथमिकता वाली तालिकाओं हैं और डिस्क से सुरक्षित रूप से पढ़ी जा सकती हैं। जब भी वे पहुंचते हैं। उन तालिकाओं को बफर पूल से बाहर रखने से, स्मृति विश्लेषण कुछ आसान हो जाता है।
कैटलिन एडलर

1
@ user973156: क्या आपका कोड और डिज़ाइन इतना अच्छा है कि अब आप केवल 2 अनुमान लगा सकते हैं SQL सर्वर चीजों को बेहतर बनाने के लिए?
gbn

जवाबों:


12

ऐसा करने का कोई तरीका नहीं है।

DBCC DROPCLEANBUFFERSकिसी विशिष्ट डेटाबेस या ऑब्जेक्ट के लिए कोई भी पैरामीटर स्वीकार नहीं करता है। आंतरिक रूप से SQL सर्वर डेटाबेस स्तर पर ऐसा कर सकता है, जब डेटाबेस AUTO_CLOSEडी होता है तब सभी संगत पृष्ठ बफर कैश से हटा दिए जाते हैं।

इसके अलावा आंतरिक रूप से SQL सर्वर कुछ पृष्ठों को चिह्नित कर सकता है जैसे कि वे आलसी लेखक द्वारा पहले किक आउट होंगे। इसका उपयोग DMV द्वारा किया जाता है जैसे कि इस लेखsys.dm_db_index_physical_stats में दिए गए बफ़र पूल को फ्लश करने से बचने के लिए लेकिन यह कार्यक्षमता हमारे लिए किसी भी तरह से उजागर नहीं है (भले ही यह एक बंद स्कैन करने के बाद भी इसे निर्दिष्ट करने में सक्षम होने के लिए उपयोगी हो सकता है उदाहरण के लिए एक बड़ी तालिका)।


7

आप यह निर्दिष्ट नहीं कर सकते कि विशिष्ट तालिकाओं को कैश नहीं किया जाना चाहिए। आपको क्या लगता है कि आप कैश में टेबल नहीं चाहते हैं?

SQL सर्वर बफर पूल में अपने सभी सामान्य ऑपरेशन करता है, इसलिए यदि आप SQL सर्वर को किसी तालिका को कैश में लोड नहीं करने के लिए कह सकते हैं, तो तालिका किसी भी सामान्य डीएमएल संचालन के लिए सुलभ नहीं होगी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.