數據庫查詢優化——給臨時表建索引


平時查詢數據庫時為了查詢更加快速,一般都會用到臨時表,如select * into #t from tableA ,但是如果數據過大,但但用臨時可能也很慢,這時候可以給臨時表建個索引,如CREATE INDEX IX_TempTable ON #T(字段1,字段2,字段3)。如果臨時表字段未知的時候怎么建立索引呢,可以用以下sql把臨時表的所有字段查出來,給所有字段建立索引

DECLARE @COL VARCHAR(1000)
SET @COL = ''
SELECT @COL = @COL + COLUMN_NAME + ',' FROM
TEMPDB.INFORMATION_SCHEMA.COLUMNS A
INNER JOIN(SELECT [NAME] FROM TEMPDB.dbo.sysobjects WHERE [ID] = OBJECT_ID(N'TEMPDB..#T'))B
ON A.TABLE_NAME = B.[NAME] AND A.ORDINAL_POSITION <= 3
ORDER BY ORDINAL_POSITION
print @COL
SET @COL = LEFT(@COL, LEN(@COL) - 1)
EXEC('CREATE INDEX IX_TempTable ON #T(' + @COL + ')')

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM