国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

SQL語句應當如何使用內(nèi)嵌視圖與臨時表

2024-07-21 02:42:21
字體:
來源:轉載
供稿:網(wǎng)友
許多情況下,查詢需要將數(shù)據(jù)與其他一些可能只能通過執(zhí)行 GROUP BY 然后執(zhí)行標準查詢才能收集的數(shù)據(jù)進行聯(lián)接。例如,如果要查詢最新五個定單的有關信息,您首先需要知道是哪些定單。這可以使用返回定單 ID 的 SQL 查詢來檢索。此數(shù)據(jù)就會存儲在臨時表(這是一個常用技術)中,然后與 PRoducts 表進行聯(lián)接,以返回這些定單售出的產(chǎn)品數(shù)量:

CREATE TABLE #Temp1 (OrderID INT NOT NULL, _                     OrderDate DATETIME NOT NULL)INSERT INTO #Temp1 (OrderID, OrderDate)SELECT     TOP 5 o.OrderID, o.OrderDateFROM Orders o ORDER BY o.OrderDate DESCSELECT p.ProductName, SUM(od.Quantity) AS ProductQuantityFROM     #Temp1 t     INNER JOIN [Order Details] od ON t.OrderID = od.OrderID    INNER JOIN Products p ON od.ProductID = p.ProductID GROUP BY p.ProductNameORDER BY p.ProductNameDROP TABLE #Temp1

這些SQL語句會創(chuàng)建一個臨時表,將數(shù)據(jù)插入該表中,將其他數(shù)據(jù)與該表進行聯(lián)接,然后除去該臨時表。這會導致此查詢進行大量 I/O 操作,因此,可以重新編寫查詢,使用內(nèi)嵌視圖取代臨時表。內(nèi)嵌視圖只是一個可以聯(lián)接到 FROM 子句中的查詢。所以,您不用在 tempdb 中的臨時表上耗費大量 I/O 和磁盤訪問,而可以使用內(nèi)嵌視圖得到同樣的結果:

SELECT p.ProductName,     SUM(od.Quantity) AS ProductQuantityFROM     (SELECT TOP 5 o.OrderID, o.OrderDate    FROM     Orders o     ORDER BY o.OrderDate DESC    ) t     INNER JOIN [Order Details] od ON t.OrderID = od.OrderID    INNER JOIN Products p ON od.ProductID = p.ProductID GROUP BY    p.ProductNameORDER BY    p.ProductName

此查詢不僅比前面的查詢效率更高,而且長度更短。臨時表會消耗大量資源。如果只需要將數(shù)據(jù)聯(lián)接到其他查詢,則可以試試使用內(nèi)嵌視圖,以節(jié)省資源。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 遂川县| 潢川县| 儋州市| 永靖县| 镇赉县| 二连浩特市| 琼海市| 阿尔山市| 托克逊县| 桐柏县| 藁城市| 云梦县| 南郑县| 房山区| 河津市| 六盘水市| 城口县| 顺义区| 万安县| 台江县| 红安县| 民和| 蓝山县| 定襄县| 闽清县| 红河县| 如皋市| 汉川市| 遂宁市| 皋兰县| 万年县| 监利县| 阳江市| 邛崃市| 松原市| 且末县| 富裕县| 仙桃市| 哈巴河县| 集贤县| 黎川县|