Performance problem when updating a view (using an instead of trigger) via a cursor in Sql Server 2005 -
मेरे पास एक V डेटाबेस डी 1 में एक अपडेट है ट्रिगर U परिभाषित किया गया है कि डेटाबेस में तीन तालिकाओं T1 , T2 और T3 अपडेट करता है D2 । उन तीन तालिकाओं में 0.75, 6.0 & amp; 4.5 मिलियन रिकॉर्ड Sql सर्वर संस्करण 9.0.3042 है, डेवलपर संस्करण
जब मैं ऊपर देखने पर निम्न अद्यतन बयान प्रदर्शन यह एक सेकंड के भीतर तैयार है:।
अद्यतन वी सेट cust_task_id = 11975628 कहां custno = '0319607' हालांकि जब मैं निम्नलिखित बैच यह एक मिनट और 12 सेकंड के पूरा करने के लिए ले जाता है जारी:
घोषणा कर्सर ग चयन custno, वी से cust_task_id कहां custno = '0319607' cust_task_id ओपन के अद्यतन के लिए से सी अद्यतन वी सेट अगला फ़ेच c cust_task_id के लिए = 11975628 जहां ग बंद ग पुनःआवंटन ग मौजूदा जब मैं और Sql सर्वर (8.0.2039, मानक संस्करण) के 2000 के संस्करण पर एक ही अद्यतन बयान (परिभाषा और अभिलेखों की संख्या के संबंध में) एक ही डेटाबेस का उपयोग दोनों बैचों एक सेकंड के भीतर वापसी!
आप एसक्यूएल सर्वर के दो संस्करणों पर कर्सर बैचों की क्वेरी योजनाओं को देखते हैं कि आप देख सकते हैं कि 2005 की योजना तालिका T1 , < कोड> टी 2 कोड> और T3 जबकि 2000 योजना सूचकांक चाहता है। ताकि प्रदर्शन में अंतर बताते हैं।
मैं कोशिश की है sp_updatestats 2005 डेटाबेस पर है, लेकिन यह मदद नहीं की।
किसी को भी किसी भी विचार कैसे है
इस मामले की जांच करने के लिए समय निकालने के लिए धन्यवाद।
ग्रीटिंग्स,
लेक्स वर्बेक
अपनी तत्काल समस्या को हल करने के लिए, हमें SQL 2000 में कुछ समय पहले एक ऐसी समस्या थी कर्सर एक डेटा स्रोत का उपयोग करके कर्सर लूप के दौरान खुद को संशोधित किया गया था (इस मामले में आप वी से चयन कर रहे हैं और वी अपडेट भी कर रहे हैं)। स्मृति से कर्सर के लिए डेटा स्रोत या तो अद्यतन या पुनर्जीवित किया गया था ताकि किए गए परिवर्तनों से तारीख करने के लिए डेटा स्रोत रखने के लिए (और यह इस पर पुष्टि के लिए अच्छा होगा)।
हमारे संकल्प पहले किया गया था सभी का चयन आपके डेटा को अस्थायी तालिका या तालिका चर में, और उस के रूप में आपके कर्सर के स्रोत के रूप में उपयोग करते हैं। बेशक आपको किसी आईडी या अन्य विशिष्ट पहचानकर्ता का उपयोग करने के लिए अपने एसक्यूएल कोड को संशोधित करने की आवश्यकता होगी, लेकिन मैं मानूंगा कि आपके पास सिस्टम में ये बाधाएं हैं।
बेशक ऐसा लगता है जैसे वहाँ थोड़ा सा है आपके समाधान के साथ सामान्य रूप से अनुकूलन के लिए कमरे, उदाहरण के लिए कर्सर आम तौर पर पसंदीदा दृष्टिकोण नहीं हैं - लेकिन आपको ऊपर बताई जा सकती है कि आप कम से कम अब तक के प्रदर्शन के स्वीकार्य स्तर पर पहुंच जाएंगे।
Comments
Post a Comment