首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事

sql server 临时表怎样加索引

发布网友 发布时间:2022-04-22 04:18

我来回答

2个回答

懂视网 时间:2022-04-10 10:14

平时查询数据库时为了查询更加快速,一般都会用到临时表,如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 + ‘)‘)

 

数据库查询优化——给临时表建索引

标签:数据库查询   temp   sel   into   osi   schema   varchar   where   优化   

热心网友 时间:2022-04-10 07:22

你说的是临时表还是表变量?
如果是临时表的话跟普通表没有区别
比如
CREATE TABLE #Test(a int,b int)
CREATE INDEX IX_test ON #Test(a)
如果是表变量不支持直接创建索引,但是可疑在声明表变量的时候设置主键
比如
declare @table table(id int IDENTITY PRIMARY KEY,a int,b int);

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com