亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

視圖是否比簡單查詢更快?

視圖是否比簡單查詢更快?

撒科打諢 2019-08-06 13:04:34
是一個select *  from myView比查詢本身更快地創建視圖(為了擁有相同的resultSet):select * from ([query to create same resultSet as myView])?對于我來說,如果視圖使用某種緩存使其比簡單查詢更快,那么我并不完全清楚。視圖是否比簡單查詢更快?
查看完整描述

3 回答

?
MYYA

TA貢獻1868條經驗 獲得超4個贊

一般來說,沒有。視圖主要用于方便和安全,而不是用于提高速度。

也就是說,SQL Server 2000及更高版本確實有一個稱為索引視圖的特殊功能,可以極大地提高性能,但您必須按照一組非常具體的指南創建索引視圖。

在線書籍中有關于視圖分辨率的重要參考。

多年來,Microsoft?SQLServer?支持創建稱為視圖的虛擬表的功能。從歷史上看,這些觀點主要用于以下目的:

  • 提供一種安全機制,將用戶限制在一個或多個基表中的某個數據子集。

  • 提供一種機制,允許開發人員自定義用戶如何邏輯查看存儲在基表中的數據。

使用SQL Server 2000,SQL Server視圖的功能得到了擴展,從而提供了系統性能優勢??梢栽谝晥D上創建唯一的聚簇索引以及非聚簇索引,以提高最復雜查詢的數據訪問性能。在SQL Server 2000和2005中,具有唯一聚簇索引的視圖稱為索引視圖。


查看完整回答
反對 回復 2019-08-06
?
HUX布斯

TA貢獻1876條經驗 獲得超6個贊

至少在SQL Server中,查詢計劃基于查詢/視圖參數存儲在計劃緩存中,用于視圖和普通SQL查詢。對于兩者而言,當它們在未使用足夠長的時間段時從緩存中刪除,并且對于其他一些新提交的查詢需要空間。之后,如果發出相同的查詢,則重新編譯它,并將計劃放回緩存中。所以不,沒有區別,因為您正在重復使用相同的SQL查詢和具有相同頻率的相同視圖。

顯然,一般來說,一個視圖,就其本質而言(有人認為它經常被足夠使用以使其成為一個視圖)通常比任何任意SQL語句更有可能被“重用”。


查看完整回答
反對 回復 2019-08-06
  • 3 回答
  • 0 關注
  • 1837 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號