臨時表在SQL優(yōu)化中的作用
點擊關(guān)注上方“SQL數(shù)據(jù)庫開發(fā)”,
設為“置頂或星標”,第一時間送達干貨
今天我們來講講臨時表的優(yōu)化技巧
臨時表,顧名思義就只是臨時使用的一張表,一種是本地臨時表,只能在當前查詢頁面使用,新開查詢是不能使用它的,一種是全局臨時表,不管開多少查詢頁面均可使用。
SQL Server 2017
本地臨時表在表名前加#即可,我們先來看看本地臨時表的特性
我們新建一個查詢頁面,輸入如下代碼:
SELECT TOP 10 * INTO #temp
FROM sales.Temp_Salesorder;
SELECT * FROM #temp;
我們再新開一個頁面,重新輸入如下代碼:
SELECT * FROM #temp;結(jié)果如下:

證明本地臨時表只能在當前頁面執(zhí)行。
全局臨時表在表名前加##即可,打開任何一個查詢頁面都可以使用它。
重復上面的步驟:
SELECT TOP 10 * INTO ##temp
FROM sales.Temp_Salesorder
SELECT * FROM ##temp;結(jié)果和上面一樣:

我們再新開一個頁面:
SELECT * FROM ##temp;結(jié)果還是一樣。證明全局臨時表所有查詢頁面均可以使用。
SELECT * FROM sales.Temp_Salesorder
WHERE SalesOrderDetailID IN
(SELECT SalesOrderDetailID FROM sales.SalesOrderDetail
WHERE UnitPrice IN
(SELECT UnitPrice FROM sales.SalesOrderDetail WHERE UnitPrice>0)
)(提示:代碼可以左右滑動)
這是一個比較簡單的兩層嵌套子查詢,我們看一下執(zhí)行情況:

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)

推薦閱讀
后臺回復關(guān)鍵字:1024,獲取一份精心整理的技術(shù)干貨
后臺回復關(guān)鍵字:進群,帶你進入高手如云的交流群
評論
圖片
表情

