SQL临时表的用法( 二 )

 
(提示:代码可以左右滑动)
这是一个比较简单的两层嵌套子查询,我们看一下执行情况:

SQL临时表的用法

文章插图
 
 
可以看到这里的逻辑读取是比较高的 。
我们用临时表重新来看下执行情况如何,我们将第一二层的查询结果插入到#temp中,然后从临时表中查询结果 。
SELECT SalesOrderDetailID INTO #temp FROM sales.SalesOrderDetailWHERE UnitPrice IN (SELECT UnitPrice FROM sales.SalesOrderDetail WHERE UnitPrice>0)SELECT * FROM sales.Temp_SalesorderWHERE SalesOrderDetailID IN (SELECT SalesOrderDetailID FROM #temp) 
【SQL临时表的用法】执行情况如下:
 
SQL临时表的用法

文章插图
 
 
SQL临时表的用法

文章插图
 
 
相比上一次的逻辑读,成倍的减少了逻辑读取次数 。在对查询的性能进行调节时,如果逻辑读值下降,就表明查询使用的服务器资源减少,查询的性能有所提高 。如果逻辑读值增加,则表示调节措施降低了查询的性能 。在其他条件不变的情况下,一个查询使用的逻辑读越少,其效率就越高,查询的速度就越快 。
因此我们可以看出临时表在比较复杂的嵌套查询中是可以提高查询效率的 。
批注
临时表不管是在SQL Server还是其他平台都有使用,其在查询优化方面可以极大的提高查询效率,而SQL Server平台的临时表相比其他平台更容易创建和使用,其优越性不言而喻 。所以如果平时工作或学习过程中,临时表可以作为一个必备技能经常使用 。




推荐阅读