] यह तब होता है जब डेटाबेस इंजन संकलन के समय प्रदान किए गए इनपुट मापदंडों के मूल्यों के आधार पर एक संग्रहीत प्रक्रिया की निष्पादन योजना को संकलित करता है। @Mydate dateTime = null जैसा यदि @mydate null सेट है @mydate = current_timestamp - इस परिदृश्य में @mydate
का उपयोग करके कुछ करें, यदि प्रारंभिक संकलन के दौरान @mydate को शून्य के रूप में पारित किया जाता है, तो डेटाबेस इस मूल्य के लिए निष्पादन योजना का अनुकूलन करता है। हालाँकि, अन्य इनपुट मानों के साथ प्रक्रिया के बाद की कॉल खराब प्रदर्शन में परिणाम हो सकती है, भले ही वे मान भी शून्य हो। पारित इनपुट मानों के आधार पर काफी भिन्नता है, अप्रत्याशित निष्पादन समय के लिए अग्रणी है। गलत
उल्लिखित मामले में, @mydate के लिए उत्पन्न निष्पादन योजना तब भी खराब थी जब उपयोग किए गए मूल्य में शून्य था। यह व्यवहार असामान्य है और पैरामीटर सूँघने के साथ एक समस्या का सुझाव देता है। @Mydate dateTime = null जैसा @Mydate_copy डेटटाइम की घोषणा करें सेट करें @mydate_copy = @mydate यदि @mydate_copy null सेट है @mydate_copy = current_timestamp - @mydate_copy
का उपयोग करके समस्या
CREATE PROCEDURE MyProc @MyDate DATETIME = NULL AS IF @MyDate IS NULL SET @MyDate = CURRENT_TIMESTAMP -- Do Something using @MyDate
SQL सर्वर 2005 में अंतर्निहित समस्या कुछ पैच स्तरों में पैरामीटर सूँघने के साथ एक ज्ञात समस्या है। SQL सर्वर 2008 में, इस तरह के मुद्दों को हल करने के लिए अज्ञात क्लॉज के लिए अनुकूलन का उपयोग किया जा सकता है। कुशलता से।
इनपुट मापदंडों के रूप में अशक्त मानों का उपयोग करने से बचें, क्योंकि वे अनपेक्षित अनुकूलन मुद्दों को ट्रिगर कर सकते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3