簡體   English   中英

oracle DB 中的物化視圖

[英]Materialized view in oracle DB

我的工作經理讓我創建 50 個物化視圖並設置每 15 分鍾刷新一次,我的問題是:每 15 分鍾同時刷新所有 50 個 MV 會影響數據庫性能嗎?

謝謝你

同時刷新 50 可能會給您系統的某些部分帶來壓力,通常您只會創建物化視圖,因為執行查詢所需的工作比用戶樂於等待的時間更長。

如果您使用快速可刷新的物化視圖(如果您想頻繁刷新,您應該努力實現)所需的工作量要少得多 - 您只需要處理自上次刷新以來已更改的數據。 Oracle 會計算所有需要更改的內容,並在少量 SQL 語句中更改。 對於 15 分鍾的更改窗口,可能不會進行很多實際更改 - 這些更改將使用批處理操作更有效地處理。

但是……即使您盡可能快地進行了刷新過程,同時讓 50 件事情全部工作(即使是很短的時間)仍然很多。 如果他們都需要做 CPU 工作,那么操作系統需要調度 50 個繁忙的 CPU,然后它還需要在所有剩余的試圖完成工作的用戶會話中進行調度(Oracle CPU 許可將是超級貴)。 這就是為什么您通常會使用 job_queue_processes 參數限制可以在任何時間運行的作業數量(盡管最近的版本也可以通過讓資源管理器在任何時候限制作業數量來提供幫助) - 將其設置為一個合理的數字取決於您一次可以在后台實際處理多少工作。 如果您使用可快速刷新的物化視圖,那么即使 Oracle 一次處理一個,刷新 50 次也不會花時間。

擁有可快速刷新的物化視圖(如果您已升級到至少 12.2)的另一個好處是您可以擁有實時物化視圖,這意味着即使它沒有被刷新,您的用戶仍然可以看到完全最新的數據無需做查詢工作的時間 - 非常聰明的東西! 這可以讓您減少某些物化視圖的刷新頻率,但始終使數據完全同步。

暫無
暫無

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

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