所以当前查询我需要很长时间才能运行。当我运行执行计划时,它显示:表插入(#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
答案 0 :(得分:1)
评论时间有点长。
你能解释为什么你不只是运行这段代码吗?
SELECT [class_room], [class_name], [class_floor], [class_building]
FROM class_info x
WHERE class_room <> '';
如果性能是一个问题,我首先会建议摆脱不必要的读写 - 例如创建一个临时表。