2009-11-03 10 views

उत्तर

48

स्पष्टता के लिए ..........

निष्पादित sp_recompile होगा "निशान" रखता के लिए दिया संग्रहीत प्रक्रिया है, जो अगली बार निष्पादित किया जाता है हो जाएगा।

WITH RECOMPILE विकल्प का उपयोग करने के परिणामस्वरूप प्रत्येक संग्रहीत प्रक्रिया को निष्पादित करने पर हर बार एक नई निष्पादन योजना उत्पन्न की जाएगी।

साफ़ करने के लिए पूरी प्रक्रिया कैश निष्पादित

DBCC FREEPROCCACHE 
+0

यही वह था जिसे मैं ढूंढ रहा था, कैश साफ़ करना! धन्यवाद! – Brandon

+0

क्या डीबीसीसी फ्रीप्रोकैच सिर्फ एक विशिष्ट प्रक्रिया के लिए निष्पादित किया जा सकता है? – CodeMilian

+0

@CodeMilan: हाँ आप योजना/प्रक्रिया कैश से एक विशिष्ट plan_handle (उदाहरण के लिए दी गई संग्रहीत प्रक्रिया के लिए क्वेरी प्लान) को बेदखल कर सकते हैं। उदाहरण के लिए बीओएल देखें: http://msdn.microsoft.com/en-us/library/ms174283.aspx –

5

संग्रहीत प्रक्रियाओं के लिए, आप WITH RECOMPILE विकल्प का उपयोग करते हैं।

+0

+1 अहा !! अब चीजें समझने लगती हैं :-) आप अस्पष्ट उपयोगकर्ता संदेशों को समझने में बेहतर हैं, मुझे देखना होगा ... –

+1

कृपया ध्यान दें कि यह विधि प्रत्येक बार निष्पादित की गई संग्रहीत प्रक्रिया को फिर से संकलित करेगी, इसलिए यदि आप चाहें बस एक को पुन: संकलित करने के लिए मजबूर करें, फिर सिस्टम संग्रहीत प्रक्रिया sp_recompile का उपयोग करें। –

1

sp_recompile मौजूदा क्वेरी योजना को डंप करेगा और प्रक्रिया को फिर से संकलित करेगा। या आप SQL को पुनरारंभ कर सकते हैं और यह संपूर्ण निष्पादन योजना कैश को साफ़ कर देगा।

RECOMPILE के साथ हर बार जब आप इसे निष्पादित करते हैं तो एक नई योजना उत्पन्न करने जा रहा है।

+7

sp_recompile निष्पादित करने वाला एक छोटा लेकिन महत्वपूर्ण भेद किसी दिए गए संग्रहीत प्रक्रिया को पुन: संकलित नहीं करेगा, बल्कि अगली बार निष्पादित होने पर इसे पुन: संकलन के लिए चिह्नित करेगा। –

4

आप एक संग्रहीत प्रक्रिया के लिए QEP रीसेट करना चाहते हैं, तो आप का उपयोग करेगा sp_recompile

3

यह अपने प्रश्न से पूरी तरह से स्पष्ट है कि तुम क्या कर रहे हैं के बाद नहीं है। लेकिन अन्य सुझावों के अतिरिक्त, डीबीसीसी फ्रीप्रोकैच सभी कैश निष्पादन योजनाओं को साफ़ करता है।

संबंधित मुद्दे