आपको मेरी भोली को माफ करना होगा क्योंकि मैं एक डीबीए नहीं हूं, लेकिन मेरी समझ यह है कि समय के साथ एक डेटाबेस परिवर्तन और एक संग्रहीत प्रक्रिया के आंकड़ों को नवीनतम आंकड़ों के साथ तारीख तक की योजना को बनाए रखने के लिए फिर से तैयार किया जाना चाहिए।
यह मानते हुए कि मेरे डेटाबेस में एक संग्रहीत कार्यविधि है जो कि कुछ नियमित अंतराल पर नवीनतम आँकड़ों के विरूद्ध recompiled है , कोड में संग्रहीत प्रक्रिया को अस्तर करने और इसे एक sp_executesql
बयान में लपेटने के क्या निहितार्थ हैं ? क्या मैं उस क्वेरी प्लान की रिफ्रेशिंग खो देता हूं, जो प्रक्रिया के पुनर्संयोजन के हिस्से के रूप में हुआ करता था?
अगर कुछ और है (अनुमति के अलावा) जो मुझे इस बदलाव से पहले विचार करने की आवश्यकता है तो मैं आपकी अंतर्दृष्टि की सराहना करूंगा।
मैंने इसे MSDN पर पढ़ा:
SQL सर्वर क्वेरी ऑप्टिमाइज़र की मौजूदा निष्पादन योजना के साथ नए Transact-SQL स्ट्रिंग का मिलान करने की क्षमता स्ट्रिंग के पाठ में लगातार बदलते पैरामीटर मानों से बाधित होती है, विशेष रूप से जटिल Transact-SQL कथनों में।
इसलिए मैंने जिस इन-लाइन और इन-रैप को बनाने की कोशिश की है, sp_executesql
उसमें स्टोर की गई प्रक्रिया को मानने के कुछ पैरामीटर हैं, क्या यह कहा जाता है कि यद्यपि मेरी निष्पादन योजना कैश की गई है, मैं SQL सर्वर के लिए इसे ढूंढना और पुन: उपयोग करना अधिक कठिन बना रहा हूं?