2014-10-30 55 views
0

我一直在學習物化視圖以及它們的用途/可以使用的內容。物化視圖用例

但是我不知道它是如何有用的,因爲它不包含當前數據,因爲刷新/更新需要時間。 也看着現實生活中的場景,它用於a。)緩解網絡負載和b。)根據oracle文檔啓用數據子集。現在,如果我有本地化的服務器來減少負載,我可以創建一個本地化的數據庫本身,這將迎合本地數據,例如國家特定的谷歌服務器。

如果有人能解釋爲什麼物化視圖用於現實生活中。

回答

1

爲什麼物化視圖用於現實生活中。

有很多原因,它取決於系統,應用程序,需求等。如果你想自動保持數據與基表同步,那麼你不需要編寫自己的代碼。 Oracle會自動爲你做。

另一件事是query rewrite。如果啓用,優化器可以利用查詢的物化視圖。

在有用的,

  1. 數據倉庫
  2. 分佈式計算
  3. 移動計算

從文檔,

The Need for Materialized Views

您可以使用物化視圖來提高超大型數據庫的查詢速度。對大型數據庫的查詢通常涉及表之間的連接 ,諸如SUM之類的聚合或兩者之間的連接。這些操作 在時間和處理能力方面是昂貴的。您創建的 實體化視圖的類型決定了實體化視圖如何刷新並由查詢重寫使用 。

實體化視圖通過預先計算 在執行 之前對數據庫進行昂貴的連接和聚合操作,並將結果存儲在數據庫中,從而提高查詢性能。查詢優化器 自動識別何時現有的實體化視圖可以應用並且應該使用 來滿足請求。然後它透明地重寫 使用物化視圖的請求。查詢直接轉到 實體化視圖,而不是基礎明細表。通常, 重寫查詢以使用實體化視圖而不是詳細表 可縮短響應時間。

類似的問題在這裏https://dba.stackexchange.com/questions/23280/why-not-use-a-table-instead-of-a-materialized-view

1

問如果你有一些相關的數據兩個獨立的應用程序,然後物化視圖可幫助數據通信的安全性。

讓我給一個實時的例子。 假設你的應用程序依賴於外部數據,這可以通過以下方式實現。

  1. 帶有作業的Excel/xml文件在每個間隔中運行。
  2. 消息隊列(MQ)。
  3. 物化視圖。

如果您可以訪問Materialize視圖,該視圖從物理表中獲取所需的數據,那麼您不必擔心同步,因爲Materialized視圖在作爲作業的特定時間間隔內刷新數據用excel/xml文件。 此外,您不必擔心數據安全問題,因爲它只是一個視圖。