2012-12-21 21 views
12

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

क्या SELECT INTO पर इस तालिका पर अनुक्रमणिका बनाने का कोई तरीका है?

SELECT *  
FROM TradeTable.staging.Security s 
WHERE (
    s.Identifier IS NOT NULL 
    OR s.ConstituentTicker IS NOT NULL 
    OR s.CompositeTicker IS NOT NULL 
    OR s.CUSIP IS NOT NULL 
    OR s.ISIN IS NOT NULL 
    OR s.SEDOL IS NOT NULL 
    OR s.eSignalTicker IS NOT NULL) 

enter image description here

+0

के साथ बाहर सभी स्तंभों को सूचीबद्ध करने के @HamletHakobyan आप एक नहीं बना सकते आवश्यकता के रूप में तालिका और उपयोग में डालने के लिए चयन करें। – HLGEM

+0

@ हैमलेट हाकोबियन यह एक ढेर टेबल है - तो मुझे पीके के लिए कॉलम जोड़ने की आवश्यकता होगी? –

+2

क्या आपने बैच में अगले कथन के रूप में एक इंडेक्स स्टेटमेंट बनाने का प्रयास किया है? – HLGEM

उत्तर

17

तालिका SELECT INTO द्वारा बनाई हमेशा एक ढेर है। यदि आप एक पी/पहचान स्तंभ आप कर सकते हैं या तो चाहते हैं तो आप टिप्पणी

CREATE TABLE #T 
(
Id INT IDENTITY(1,1) PRIMARY KEY, 
/*Other Columns*/ 
) 

INSERT INTO #T 
SELECT * 
FROM TradeTable.staging.Security 

में सुझाव देते हैं या फिर स्पष्ट CREATE से बचने और

SELECT TOP (0) IDENTITY(int,1,1) As Id, * 
INTO #T 
FROM TradeTable.staging.Security 

ALTER TABLE #T ADD PRIMARY KEY(Id) 

INSERT INTO #T 
SELECT * 
FROM TradeTable.staging.Security