यह प्रश्न बिज़ारेस्ट व्यवहार के लिए स्पष्टीकरण प्राप्त करने के बारे में समाधान खोजने के बारे में इतना कुछ नहीं है जिसे मैंने कभी भी SQL सर्वर से देखा है।संग्रहीत प्रक्रिया प्रदर्शन - यह वाइल्ड है?
मैं निम्नलिखित हस्ताक्षर के साथ एक संग्रहीत प्रक्रिया थी:
alter procedure MySP @param1 uniqueidentifier,
@param2 uniqueidentifier,
@param3 uniqueidentifier
मापदंडों के एक विशिष्ट समूह को देखते हुए, इस proc एक बहुत लंबे समय सी # से चलाने के लिए ले जा रही थी (SqlCommand.ExecuteReader()
का प्रयोग करके) - लगभग 2 मिनट। प्रत्यक्ष क्वेरी सत्र में समान पैरामीटर का उपयोग करके, एसपी 2 सेकंड के भीतर चला गया।
यह एक लंबे समय ले लिया है, और मैं भी हम कैसे इस समाधान पर ठोकर खाई को समझाने की कोशिश नहीं करेंगे, लेकिन यह हम क्या किया है:
की सपा शुरुआत में, हम 3 स्थानीय चर घोषित कर दिया और उन्हें मानकों, इसलिए तरह के मूल्यों को असाइन किया गया:
declare @param1_copy uniqueidentifier,
@param2_copy uniqueidentifier,
@param3_copy uniqueidentifier
select @param1_copy = @param1,
@param2_copy = @param2,
@param3_copy = @param3
और फिर, के सपा बाकी हिस्सों में हम स्थानीय प्रतियों के साथ इनपुट पैरामीटर के सभी संदर्भ प्रतिस्थापित।
वोला। एसपी 2 सेकंड के तहत निष्पादित। और यहां टीम gobsmacked है।
अब, महिलाओं और सज्जनो, क्या कोई इस व्यवहार को समझा सकता है?
कमाल। हम बिना किसी समझ के पाठ्यपुस्तक समाधान पर ठोकर खाई! संग्रहीत प्रक्रिया पैरामीटर के साथ भ्रम से बचने के लिए –