2009-12-18 13 views
8

मेरे पास एक क्वेरी है जो कई अस्थायी तालिकाओं को बनाता है और फिर डेटा को सम्मिलित करती है। जो मैं समझता हूं उससे यह तालिका स्पूल का एक संभावित कारण है। जब मैं अपनी निष्पादन योजना को देखता हूं तो मेरी प्रसंस्करण का बड़ा हिस्सा तालिका स्पूल पर खर्च किया जाता है। क्या इन प्रकार की प्रदर्शन समस्याओं में सुधार करने के लिए कोई अच्छी तकनीक है? एक दृश्य या सीटीई का उपयोग करना मुझे temp तालिकाओं पर कोई लाभ प्रदान करेगा?SQL सर्वर निष्पादन योजना में तालिका स्पूल से छुटकारा पाएं

मैंने यह भी देखा कि जब मैं प्रत्येक तालिका स्पूल पर माउस आउटपुट सूची उसी अस्थायी तालिका से होता है।

उत्तर

15

ठीक है, आपके द्वारा दी गई जानकारी के साथ मैं केवल इतना कह सकता हूं: क्वेरी ऑप्टिमाइज़र ने सर्वोत्तम संभव योजना चुना है। यह निष्पादन को तेज करने के लिए टेबल स्पूल का उपयोग करता है। विकल्प जो टेबल स्पूल का उपयोग नहीं करते हैं वे धीमे भी होंगे।

क्वेरी, तालिका (स्कीमा और कार्डिनालिटी, और योजना) दिखाने के बारे में कैसे।

अद्यतन

मैं निश्चित रूप से समझते हैं अगर आप हमें क्वेरी नहीं दिखा सकते हैं। लेकिन यह अनुमान लगाने में वाकई मुश्किल है कि किसी भी विनिर्देश को जानने के दौरान इंजन द्वारा स्पूलिंग क्यों पसंद की जाती है। मैं आपको क्रेग फ्रीडमैन के ब्लॉग पर जाने की सलाह देता हूं, वह क्वेरी ऑप्टिमाइज़र टीम में एक इंजीनियर है और एसक्यूएल 2005/2008 ऑप्टिमाइज़र के कई आंतरिक कार्यों को समझाता है।

एसक्यूएल ग्राहक सहायता टीम भी एक दिलचस्प ब्लॉग है: यहाँ कुछ प्रविष्टियों मैं जल्दी है कि किसी न किसी रूप में spooling के विषय को छूने मिल सकता है कर रहे हैं http://blogs.msdn.com/psssql/
और 'स्क्लटिप्स' (रिलेशनल इंजन की टीम ब्लॉग) में कुछ सुझाव हैं, जैसे Spool operators in query plan...

+0

दुर्भाग्य से मुझे लगता है कि मेरा काम मुझे उस तरह की जानकारी साझा करना पसंद नहीं करेगा। स्पूलिंग की मेरी समझ सीमित है, लेकिन मैंने सोचा था कि स्पूलिंग का उपयोग तब किया जाता था जब आप अस्थायी तालिका में वापस जाते हैं। उस जानकारी को किसी अनुक्रमित दृश्य में नहीं डालना चाहते हैं, जिससे हमें प्रदर्शन को प्रतिकूल रूप से प्रभावित किए बिना दूर किया जाए? –

संबंधित मुद्दे