繁体   English   中英

添加非聚集索引

[英]Adding Non clustered index

所以我当前的查询需要很长时间才能运行。 当我运行执行计划时,它显示:表插入(#tempdata),成本:99%。 我意识到我需要添加非聚集索引来快速运行查询。 所以我添加了这行代码,但仍然没有区别:

create nonclustered index #temp_index 
  on [dbo].#tempData ([class_room]) include ([class_name],[class_floor],[class_building])

这是我当前的查询:

IF OBJECT_ID('tempdb..#tempdata') IS NOT NULL DROP TABLE #tempdata

    SELECT [class_room][class_name],[class_floor],[class_building]
    INTO #tempdata
    FROM class_info x

create nonclustered index #temp_index 
   on [dbo].#tempData ([class_room]) include ([class_name],[class_floor],[class_building])

;with cte1 as(
SELECT [class_room][class_name],[class_floor],[class_building]
FROM #tempdata
WHERE class_room <> '')  

select * from cte1

评论有点长。

你能解释一下为什么你不只是运行这段代码吗?

SELECT [class_room], [class_name], [class_floor], [class_building]
FROM class_info x
WHERE class_room <> '';

如果性能是一个问题,我首先建议摆脱不必要的读取和写入——例如创建一个临时表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM