3 回答

TA貢獻1868條經驗 獲得超4個贊
一般來說,沒有。視圖主要用于方便和安全,而不是用于提高速度。
也就是說,SQL Server 2000及更高版本確實有一個稱為索引視圖的特殊功能,可以極大地提高性能,但您必須按照一組非常具體的指南創建索引視圖。
在線書籍中有關于視圖分辨率的重要參考。
多年來,Microsoft?SQLServer?支持創建稱為視圖的虛擬表的功能。從歷史上看,這些觀點主要用于以下目的:
提供一種安全機制,將用戶限制在一個或多個基表中的某個數據子集。
提供一種機制,允許開發人員自定義用戶如何邏輯查看存儲在基表中的數據。
使用SQL Server 2000,SQL Server視圖的功能得到了擴展,從而提供了系統性能優勢??梢栽谝晥D上創建唯一的聚簇索引以及非聚簇索引,以提高最復雜查詢的數據訪問性能。在SQL Server 2000和2005中,具有唯一聚簇索引的視圖稱為索引視圖。

TA貢獻1876條經驗 獲得超6個贊
至少在SQL Server中,查詢計劃基于查詢/視圖參數存儲在計劃緩存中,用于視圖和普通SQL查詢。對于兩者而言,當它們在未使用足夠長的時間段時從緩存中刪除,并且對于其他一些新提交的查詢需要空間。之后,如果發出相同的查詢,則重新編譯它,并將計劃放回緩存中。所以不,沒有區別,因為您正在重復使用相同的SQL查詢和具有相同頻率的相同視圖。
顯然,一般來說,一個視圖,就其本質而言(有人認為它經常被足夠使用以使其成為一個視圖)通常比任何任意SQL語句更有可能被“重用”。
添加回答
舉報