簡體   English   中英

Oracle 視圖與 Oracle 中的連接表

[英]Oracle View vs joining tables in Oracle

我知道視圖是 Oracle 中底層表或表集的窗口。 例如,如果我有一個通過連接多個表創建的視圖,當我從視圖中選擇數據時,視圖會執行實際的連接操作嗎? 視圖的性能是否比連接多個表以獲取數據更好,還是在性能方面相同?

單個查詢和使用視圖的邏輯等效查詢之間通常沒有性能差異。

Oracle 具有優化器轉換,可以將視圖與外部查詢結合起來; 謂詞推送、簡單和復雜的視圖合並等。將視圖視為構建大型查詢的文本宏,而不是返回行的函數。

例如,在下面的查詢中,Oracle 可能足夠聰明,可以將主鍵列上的謂詞推送到視圖中。 盡管視圖本身可能會返回數百萬行,但是當整個查詢運行時,Oracle 將首先在主鍵列上應用謂詞。

select *
from view_returns_millions_of_rows
where primary_key_value = 1;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM