SQL सर्वर में अस्थायी तालिकाएँ एक बड़ी संख्या होती हैं।
- वे क्वेरी प्लान पुनर्संकलन को भड़काते हैं जो महंगा है।
- तालिका बनाना और छोड़ना भी महंगा ऑपरेशन है जिसे आप अपनी प्रक्रिया में जोड़ रहे हैं।
- यदि अस्थायी डेटा में बड़ी मात्रा में डेटा जा रहा है, तो अनुक्रमणिका की कमी के कारण आपका संचालन धीमा हो जाएगा। आप अस्थायी तालिकाओं पर अनुक्रमणिका बना सकते हैं। लेकिन मैं कभी भी बड़ी मात्रा में रिकॉर्ड वाली किसी भी चीज़ के लिए अस्थायी तालिका की अनुशंसा नहीं करूंगा।
आपका दूसरा तरीका:नियमित टेबल बनाने और फिर छोड़ने के लिए बस वही ओवरहेड बनाता है।
एक अन्य दृष्टिकोण:मौजूदा तालिकाओं का उपयोग करना, प्रत्येक उपयोगकर्ता/सत्र से संबंधित पंक्तियों में अंतर करने के लिए एक अतिरिक्त कॉलम के साथ पंक्तियों को बढ़ाना इस्तेमाल किया जा सकता है। तालिकाओं को बनाने/छोड़ने के बोझ को हटा देता है, लेकिन फिर, आपको उस कोड के साथ पागल होने की आवश्यकता होगी जो पंक्तियों को अलग करने के लिए मूल्य उत्पन्न करता है और आपको उन मामलों के लिए तालिका को बनाए रखने का एक तरीका विकसित करना होगा जहां एक सत्र समय से पहले समाप्त हो गया था। और बचे हुए हैं (पंक्तियाँ जो प्रसंस्करण के अंत में नहीं हटाई गई थीं)।
मैं आपको अपनी प्रसंस्करण रणनीति पर पुनर्विचार करने की सलाह देता हूं। कुछ विकल्प सहसंबद्ध प्रश्नों, व्युत्पन्न तालिकाओं या तालिका चर का उपयोग करने जितना आसान है। इस पर एक नज़र डालें:http://www.sql-server- Performance.com/articles/per/temp_tables_vs_variables_p1.aspx
संपादित करें: नियमित तालिकाओं को बनाने और छोड़ने का दृष्टिकोण और एक अतिरिक्त फ़ील्ड के साथ एक नियमित तालिका का पुन:उपयोग करने का दृष्टिकोण:दोनों क्वेरी योजना पुनर्संकलन उत्पन्न करेंगे क्योंकि परिवर्तित डेटा की मात्रा तालिका के आँकड़ों के पुनर्मूल्यांकन को ट्रिगर करेगी। फिर से, आपका सबसे अच्छा तरीका है कि आप अपने डेटा को प्रोसेस करने के वैकल्पिक तरीके खोजें।