临时表在SQL优化中的作用
点击关注上方“SQL数据库开发”,
设为“置顶或星标”,第一时间送达干货
今天我们来讲讲临时表的优化技巧
临时表,顾名思义就只是临时使用的一张表,一种是本地临时表,只能在当前查询页面使用,新开查询是不能使用它的,一种是全局临时表,不管开多少查询页面均可使用。
SQL Server 2017
本地临时表在表名前加#即可,我们先来看看本地临时表的特性
我们新建一个查询页面,输入如下代码:
SELECT TOP 10 * INTO #temp
FROM sales.Temp_Salesorder;
SELECT * FROM #temp;
我们再新开一个页面,重新输入如下代码:
SELECT * FROM #temp;
结果如下:
证明本地临时表只能在当前页面执行。
全局临时表在表名前加##即可,打开任何一个查询页面都可以使用它。
重复上面的步骤:
SELECT TOP 10 * INTO ##temp
FROM sales.Temp_Salesorder
SELECT * FROM ##temp;
结果和上面一样:
我们再新开一个页面:
SELECT * FROM ##temp;
结果还是一样。证明全局临时表所有查询页面均可以使用。
SELECT * FROM sales.Temp_Salesorder
WHERE SalesOrderDetailID IN
(SELECT SalesOrderDetailID FROM sales.SalesOrderDetail
WHERE UnitPrice IN
(SELECT UnitPrice FROM sales.SalesOrderDetail WHERE UnitPrice>0)
)
(提示:代码可以左右滑动)
这是一个比较简单的两层嵌套子查询,我们看一下执行情况:
SELECT SalesOrderDetailID INTO #temp FROM sales.SalesOrderDetail
WHERE UnitPrice IN (SELECT UnitPrice FROM sales.SalesOrderDetail WHERE UnitPrice>0)
SELECT * FROM sales.Temp_Salesorder
WHERE SalesOrderDetailID IN
(SELECT SalesOrderDetailID FROM #temp)
推荐阅读
后台回复关键字:1024,获取一份精心整理的技术干货
后台回复关键字:进群,带你进入高手如云的交流群
评论