Cross DB stored procedures performance in SQL Server 2008 -


  • एक SQL सर्वर डेटाबेस $ DB
  • $ DBSP1, $ DB <$ li =
  • $ DBSP1 की तरह संग्रहीत कार्यविधियों वाले एक SQL सर्वर डेटाबेस
  • $ SP एक संग्रहीत कार्यविधि है

सी # कोड से $ DBSP1 $ SP चल रहा है, यह 1.5 के आसपास है।

सी # कोड से $ DBSP2 $ SP पर चलाना लगभग 0.5 एस लेता है।

सी # कोड बहुत सरल है और उपयोग डिफ़ॉल्ट पैरामीटर के साथ SqlClient।

जब मैं एसक्यूएल कंसोल में $ SP $ और $ DBSP2 दोनों पर $ SP निष्पादित करता है, तो यह 0.4 एस लेता है।

दो कोड डेटाबेस के बीच फर्क सिर्फ इतना है $ डीबीएसपी 1 उत्पादन में है और थोड़ा भरी हुई है, जबकि $ DBSP2 निष्क्रिय है कोड डेटाबेस में कोई डेटा नहीं है, केवल संग्रहीत कार्यविधियाँ और $ DB से अधिक विचार हैं।

क्या कोई ऐसा कारण बताता है कि ऐसा क्यों होता है? चूंकि सभी काम $ डीबी में होते हैं, जो दोनों मामलों में समान रूप से लोड होता है, इसलिए मैं प्रदर्शन समान होने की अपेक्षा करता हूं।

"post-text" itemprop = "text"> < P> गति में अंतर विभिन्न क्वेरी योजनाओं से आया है। $ सपा एक जटिल संग्रहीत कार्यविधि है और इसकी प्रारंभिक क्वेरी प्लान बेहद भिन्न हो सकती है, जिसके आधार पर पहली क्वेरी उस पर निर्भर करती है। और इस समय हम $ एसपी की तैनाती के बाद से पहले अनुरोध को नियंत्रित नहीं कर रहे थे, यह उत्पादन में प्रकाशित हुआ था।

हमने $ SP स्तरों और क्वेरी स्तरों के बारे में $ SP पैरामीटर दोनों के बारे में संकेत देने की कोशिश की सफलता। इसके बजाय, सही क्वेरी प्लान उत्पन्न करने के लिए अच्छी तरह से तैयार की गई प्रश्नों के साथ हम $ SP तैनात करने से पहले गर्म होते हैं।


Comments