@table_variable या #temp_table


11

मेरे पास एक बड़ा उपयोगकर्ता परिभाषित टेबल प्रकार चर है जिसमें 129 कॉलम हैं। मैं एक बार में इस तालिका चर में लगभग 2000-3000 रिकॉर्ड संग्रहीत करूंगा और अतिरिक्त डेटा प्राप्त करने और संशोधन करने के लिए इसे विभिन्न संग्रहीत प्रक्रियाओं और कार्यों में पास करूंगा। इन अतिरिक्त डेटा और नए संशोधनों को फिर उसी प्रकार के नए टेबल चर में संग्रहीत किया जाएगा और एक OUTPUTपैरामीटर के माध्यम से स्रोत संग्रहीत प्रक्रिया में वापस आ जाएगा । (ऐसा इसलिए है क्योंकि तालिका प्रकार पैरामीटर केवल के रूप में पारित किया जा सकता है READONLY।)

यह मेरा छद्म कोड है:

  SP1
  @tmp tableType
  {
        INSERT @tmp EXEC
        SP2 (@tmp)

        INSERT @tmp EXEC
        SP3 (@tmp)
  }

मैं एक का उपयोग करना चाहिए @table_variableया #temp_table?


जवाबों:


12

दो ब्लॉग हैं जिन्हें आपको देखना चाहिए। पहला ( यहां ) टेबल वेरिएबल्स और टेम्प टेबल्स की तुलना है। यह 2008 से है और SQL Server 2008 R2 के लिए प्रासंगिक बना हुआ है।

टेबल वैरिएबल्स के बारे में कुछ गलतफहमियों (मिस्ड-कॉन्सेप्ट्स) के साथ दूसरी ब्लॉग प्रविष्टि ( यहां ) संबंधित है; एक तालिका परिवर्तनीय अनुक्रमण सहित।

ये दोनों ब्लॉग प्रविष्टियाँ, लेख, गेल शॉ द्वारा लिखे गए हैं।

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

संग्रहीत कार्यविधि के लिए TVP के रूप में तालिका चर पास करने की आवश्यकता होती है, इसे READ-ONLY पैरामीटर के रूप में परिभाषित किया जाना चाहिए। इसका तात्पर्य है कि यदि आप इसकी एक संशोधित प्रति लौटना चाहते हैं तो सारणी चर की कई प्रतियाँ होंगी।

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


5

दोनों को आजमाने से बेहतर कुछ नहीं है, लेकिन मुझे लगता है कि आप सैकड़ों रिकॉर्ड में पहुंचने के बाद #tempTables बेहतर प्रदर्शन करेंगे।


3
इस तथ्य को जोड़ें कि टेम्‍प टेबल में इंडेक्स हो सकते हैं, आंकड़े हो सकते हैं, जबकि टेबल चर में केवल पीके हो सकता है। आपके पास यहां कुछ विवरण हैं
मैरिएन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.