减少使用临时表
1、数据量都在百万级以上的两个表做连接查询,这个结果在后面的存储过程中要多次使用。除了使用临时表将其结果保存,还有没有什么办法可以减少使用临时表。
2、在做动态的行转列的时候(行不固定)用到全局变量临时表,有没有其它办法可以减少使用临时表。
IF OBJECT_ID('tempdb..##dual1') IS NOT NULL
DROP TABLE ##dual1
IF OBJECT_ID('tempdb..#temp1') IS NOT NULL
DROP TABLE #temp1
DECLARE @sql2 VARCHAR(8000) ,
@sql3 VARCHAR(8000)
SELECT id = IDENTITY( INT,0,1 ),
groupid = 0 ,
值 = ',max(case Fmsize when ''' + fmsize
+ ''' then Flnums else 0 end ) [' + Fmsize + ']'
INTO #temp1
FROM ( SELECT DISTINCT
Fmsize
FROM TEST
) AS a
UPDATE #temp1
SET groupid = id / 80
--判断将前80条记录的值赋给变量0
SELECT @sql2 = '' ,
@sql3 = ''
SELECT @sql2 = @sql2 + 值
FROM #temp1
WHERE groupid = 0
--第一个变量
SELECT @sql3 = @sql3 + 值
FROM #temp1
WHERE groupid = 1
EXEC('select * into ##dual1 from (select styleid,colorid'
+@sql2+@sql3 +' from TEST group by styleid,colorid)a')
DROP TABLE #temp1