會通資訊|ArgoERP 提供全方位數位化轉型方案|立即諮詢相關資訊!

TOP

ArgoERP, AI應用

Jul. 1 2024

View and Masterialized View特性及運用

作者:Ray

在Oracle除了有Table可儲存資料外,另有View和Materialized View這些工具可以幫助我們更有效地組織和管理資料,提高查詢性能並簡化資料。在本文中我們將探討這兩種類型的View,包括其用法、優缺點以及如何實際應用。


甚麼是View?

View是一種虛擬的表格,但也可進行Insert、Update或Delete的動作;它是由一個或多個表格所組成的查詢指令並存放於資料庫。


使用View的優點:

1.提高安全性:可以通過View限制使用者訪問及查詢的資料,且可將資料加密避免資料洩漏。
2.簡化複雜的查詢:View可以將複雜的查詢條件包起來過濾原始資料,使其更容易理解和使用。
3.增加共用性:可以通過創建View來保存常用的查詢,從而提高程式的共用性跟維護性。


使用View的缺點:

1.執行效能較差。
2.增加管理的複雜度。


View應用於ArgoERP資料庫的實例:

1.由於此View建立時已篩選過資料必須是為”客戶”,故查詢該View時可看到所有資料的”CUSTOMER”皆為Y。


2.原薪資明細Table薪資金額有進行加密,透過將薪資明細Table做成View解密薪資金額,確保只擁有薪資權限的使用者可看到解密後View的薪資金額;使用者亦可對此View進行Insert、Update…等動作,再透過DB Trigger運作來同步薪資明細Table。
薪資明細Table,薪資金額有進行加密。


薪資明細View,薪資金額被解密。


也可以對View做Insert,並透過DB Trigger回寫到薪資明細Table。


重新查詢後即可看到新增的資料。



甚麼是Materialized View?

Materialized View是View的一種特殊類型,它包含了查詢結果的實際資料,而不僅僅只是查詢。當建立Materialized View的同時,系統會先執行一次你寫的指令,並且把結果用資料表的形式存起來。


使用Materialized View的優點:

1.提高效能:由於建立Materialized View時已儲存了查詢結果的資料,因此在查詢時不需要重新計算,大大提高了查詢效能。
2.可支持離線操作:由於Materialized View已存取了原本的查詢結果,因此可以在離線環境下進行查詢,而不需要查詢底層的Table。


使用Materialized View的缺點:

1.數據同步:Materialized View中的數據需要定期進行同步,以確保與底層Table的數據保持一致。
2.空間占用:由於Materialized View包含了實際資料,因此需要額外的儲存空間來存放這些實際資料,可能會造成資料庫肥大。


Materialized View應用於ArgoERP資料庫的實例:

1.透過建立Materialized View可記錄當日建立的銷售訂單資料。



2.若需同步Materialized View的資料,可使用以下語法更新,第一個傳入參數為Materialized View的名稱,第二個傳入參數為更新的類型。


更新後結果如下。

‘C’代表完全更新(Complete Refresh),也就是重新建立一遍此Materialized View的概念,以新的查詢結果代替舊的查詢結果。
‘F’代表快速更新(Fast Refresh),此更新類型會比較當前資料與最後一次更新的資料,只將差異的部分進行更新,故當差異較小的時候,執行效率會比完全更新更好。
‘?’代表強制更新(Force Refresh),執行強制更新時,系統會先嘗試執行快速更新,若快速更新不可行才會執行完全更新。



總結:

使用者可以依據自身需求及情況來決定使用View或是Materialized View,當我們需要將複雜的查詢條件及邏輯給包起來時可使用View,提高程式碼的可讀性和可維護性;當我們需要提高查詢效能,特別是對於耗時巨大的查詢時可使用Materialized View。
若有使用Materialized View,請定期同步資料,以確保與底層Table資料的一致性。


(02)2521-2589#110
winnie@argotek.com.tw

 

成功!
感謝您訂閱會通電子報
OK
成功!
您已取消訂閱會通電子報
OK