tsql - समझ - व्हाट इस सकल




टी-एसक्यूएल में अस्थायी तालिकाओं पर सूचकांक का सर्वश्रेष्ठ उपयोग (2)

यदि आप एक संग्रहीत कार्यविधि के भीतर एक अस्थायी तालिका का निर्माण कर रहे हैं और उस पर एक सूचकांक या दो जोड़ना चाहते हैं, तो इसके विरुद्ध किए गए किसी भी अतिरिक्त बयान के प्रदर्शन को बेहतर बनाने के लिए, सबसे अच्छा तरीका क्या है? साइबेस कहते हैं:

"तालिका में डेटा बनना चाहिए जब सूचकांक बनाया जाता है। यदि आप अस्थायी तालिका बनाते हैं और एक खाली तालिका पर अनुक्रमणिका बनाते हैं, तो अनुकूली सर्वर स्तंभ आंकड़ों जैसे कि हिस्टोग्राम और घनत्व नहीं बनाता है। यदि आप सूचकांक बनाने के बाद डेटा पंक्तियों को सम्मिलित करते हैं, अनुकूलक अधूरा आंकड़े है। "

लेकिन हाल ही में एक सहयोगी ने उल्लेख किया है कि यदि मैं एक अस्थायी तालिका का प्रयोग करता है, जो एक अलग संग्रहित प्रक्रिया में अस्थायी तालिका और सूचकांक बनाते हैं, तो अनुकूली सर्वर अनुकूलक उनको उपयोग करने में सक्षम हो जाएगा

पूरी तरह से, मैं आवरण प्रक्रियाओं का बड़ा प्रशंसक नहीं हूं जो कि थोड़ा मूल्य जोड़ता है, इसलिए मैं वास्तव में इसे परीक्षण करने के लिए नहीं मिला, लेकिन मैंने सोचा कि मैं वहां से सवाल रखता हूं, यह देखने के लिए कि क्या किसी के पास कोई अन्य दृष्टिकोण या सलाह?


टेम्पे टेबल में डेटा डालने के बाद अनुक्रमित जोड़ने में समस्या क्या है?

एक बात जिसे आपको ध्यान देने की आवश्यकता है, उस प्रक्रिया के अन्य उदाहरणों को सूचकांक की दृश्यता है जो एक ही समय में चल रही हो सकती है।

मैं इन प्रकार के अस्थायी तालिकाओं (और अनुक्रमित) को एक गद्य जोड़ना चाहता हूं, यह सुनिश्चित करने के लिए कि कभी भी कोई संघर्ष नहीं है इस दृष्टिकोण का दूसरा लाभ यह है कि आप बस अस्थायी टेबल को एक वास्तविक तालिका बना सकते हैं।

इसके अलावा, सुनिश्चित करें कि आपको संग्रहित प्रक्रिया चलाने के दौरान इन अस्थायी तालिकाओं में डेटा को एक से अधिक बार पूछने की आवश्यकता होगी, अन्यथा सूचकांक निर्माण की लागत चयन के लाभ से अधिक हो जाएगी।


सिबेस में यदि आप एक अस्थायी तालिका बनाते हैं और उसके बाद इसे एक proc में चुनते हैं तो तालिका में 100 पंक्तियों के अनुमान का उपयोग करके बनाया गया है। (यह योजना तब बनाई गई है जब तालिकाओं की आबादी से पहले प्रक्रिया शुरू होती है।) इसका परिणाम तालाब तालिका में किया जा सकता है क्योंकि यह केवल "100 पंक्तियाँ" है। किसी अन्य कॉल को कॉल करने से साइबस को पंक्तियों की वास्तविक संख्या के साथ चयन के लिए योजना बनाने में मदद मिलती है, इससे अनुकूलक को उपयोग करने के लिए एक बेहतर सूचकांक चुनने की सुविधा मिलती है। मैंने इस दृष्टिकोण का उपयोग करते हुए महत्वपूर्ण सुधार देखा है लेकिन आपके डेटाबेस पर परीक्षण के रूप में कभी-कभी कोई अंतर नहीं है





temp-tables