Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

ประเภทของ Materialized Views มีอะไรบ้าง?

คำสั่ง SELECT ใน Statement การสร้าง Materialized View ระบุข้อมูลที่ Materialized View จะมีอยู่ มีข้อจำกัดบางอย่างที่จำกัดสิ่งที่สามารถระบุได้ และสามารถ Join ตารางหลายตารางเข้าด้วยกัน มีหลาย Elements รวมถึง Views, Inline Views (Subqueries ใน FROM Clause ของ SELECT), Subqueries และ Materialized Views ที่สามารถ Join หรือ Impute ได้ใน SELECT Clause

ประเภทของ Materialized Views

1. Materialized Views with Aggregates (มี Aggregates)

ใน Data Warehouses Materialized Views โดยทั่วไปมี Aggregates สำหรับ Fast Refresh ที่เป็นไปได้ SELECT List ต้องมี GROUP BY Columns ทั้งหมด (ถ้ามี) และต้องมี COUNT(*) และ COUNT(Column) บน Aggregated Columns บางตัว

Materialized View Logs ต้องมีอยู่บนทุกตารางที่อ้างอิงใน Query ที่กำหนด Materialized View Aggregate Functions ที่แท้จริงคือ SUM, COUNT(x), COUNT(*), AVG, VARIANCE, STDDEV, MIN, MAX และ Expression ที่จะ Aggregate สามารถเป็น SQL Value Expression ใดๆ

2. Materialized Views containing only Joins (มีแค่ Joins)

บาง Materialized Views มีแค่ Joins และไม่มี Aggregates โดยสร้าง Materialized View ที่ Join Sales Table ไปกับ Times และ Customer Tables ข้อดีคือ Joins ที่มีค่าใช้จ่ายสูงจะถูก Pre-computed ไว้ล่วงหน้า

Fast Refresh สำหรับ Materialized View ที่มีแค่ Joins ทำงานหลัง DML ใดๆ บน Base Tables (Direct-path หรือ Conventional INSERT, UPDATE, DELETE) Materialized View ที่มีแค่ Joins สามารถระบุ Refresh ON COMMIT หรือ ON DEMAND หาก ON COMMIT Refresh จะทำงานที่ Commit Time ของ Transaction ที่ทำ DML บน Base Table ของ Materialized View

หาก Materialized View มีแค่ Joins ROWID Columns สำหรับแต่ละตาราง (และแต่ละ Instance ของตารางที่ปรากฏหลายครั้งใน FROM List) ต้องมีใน SELECT List ของ Materialized View

หาก Materialized View มี Remote Tables ใน FROM Clause ทุกตารางใน FROM Clause ต้องอยู่บน Site เดียวกัน นอกจากนี้ ON COMMIT Refresh ไม่รองรับ Materialized View ที่มี Remote Tables Materialized View Logs ต้องมีที่ Remote Site สำหรับ Detail Tables ทุกตัวของ Materialized View และ ROWID Columns ต้องมีใน SELECT List

3. Nested Materialized Views (ซ้อนกัน)

Nested Materialized View คือ Materialized View ที่ Definition ตั้งอยู่บน Materialized View อื่น Nested Materialized View สามารถอ้างอิง Relations ต่างๆ ในฐานข้อมูล รวมถึง Materialized Views อื่นๆ

ใน Data Warehouse โดยทั่วไปสร้าง Aggregate Views บน Single Join หลายตัว (เช่น Rollups ตามหลาย Dimensions) การ Refresh แบบ Incremental สำหรับ Materialized Aggregate Views ที่แตกต่างกันอาจใช้เวลานาน เพราะ Basic Join ต้อง Execute หลายครั้ง