ความแตกต่างระหว่างมุมมองมุมมองและมุมมองวัสดุมุมมอง

Anonim

มุมมองเทียบกับมุมมองวัตถุ

เลือก * จาก viewname

ดู

ตามที่กล่าวไว้ก่อนหน้ามุมมองเป็นเสมือนตารางซึ่งจะซ่อนคำค้นหาที่เลือกไว้ ข้อความค้นหาที่เลือกเหล่านี้จะไม่ได้ประมวลผลล่วงหน้า เมื่อเราดำเนินการคำสั่ง select จากมุมมองจะดำเนินการ select statement ที่อยู่ภายใน body view สมมติว่าคำสั่ง select ของ view body เป็นคำสั่งที่ซับซ้อนมาก ดังนั้นเมื่อดำเนินการใช้เวลาในการดำเนินการ (ใช้เวลามากพอสมควร) นอกจากนี้มุมมองใช้พื้นที่ขนาดเล็กมากในการจัดเก็บเอง นั่นเป็นเพราะมันมีเพียงคำสั่งเลือกเป็นเนื้อหาของมัน

มุมมอง Materialized (Mview)

นี่คือมุมมองแบบพิเศษ Mviews ถูกสร้างขึ้นเมื่อเรามีปัญหาเกี่ยวกับประสิทธิภาพการทำงานของข้อมูลพร็อพเพอร์ตี้ เมื่อเราสร้าง mview จะรันการสอบถาม select และจัดเก็บเอาท์พุทเป็นตาราง snapshot เมื่อเราขอข้อมูลจาก Mview ไม่จำเป็นต้องดำเนินการคำสั่ง select ของมันอีกครั้ง ให้ผลลัพธ์จากตาราง snapshot ของมัน ดังนั้นเวลาดำเนินการของ mview จะน้อยกว่ามุมมอง (สำหรับคำสั่ง select เดียวกัน) อย่างไรก็ตาม mviews ไม่สามารถใช้งานได้ตลอดเวลาเนื่องจากจะแสดงผลลัพธ์เดียวกันซึ่งจะจัดเก็บไว้ในตาราง snapshot เราควรรีเฟรช mview เพื่อรับชุดผลลัพธ์ล่าสุด

ความแตกต่างระหว่าง View กับ Mview คืออะไร?

1 Mview จัดเก็บเอาท์พุทเป็นตาราง snapshot เสมอเมื่อสร้าง แต่มุมมองไม่ได้สร้างตารางใด ๆ

2 มุมมองไม่จำเป็นต้องมีพื้นที่ขนาดใหญ่ในการจัดเก็บเนื้อหา แต่ mview ต้องการพื้นที่ขนาดใหญ่กว่ามุมมองเพื่อจัดเก็บเนื้อหา (เป็นตาราง snapshot)

3 ดูใช้เวลาดำเนินการที่ใหญ่กว่า แต่ mview ใช้เวลาดำเนินการน้อยกว่าวิว (สำหรับคำสั่ง select เดียวกัน)

4 Mviews จำเป็นต้องได้รับการรีเฟรชเพื่อรับข้อมูลล่าสุด แต่ข้อมูลพร็อพเพอร์ตี้จะให้ข้อมูลล่าสุดเสมอ

5 สคีมาต้องการสิทธิ์ "สร้างมุมมอง materialized" เพื่อสร้าง mviews และสำหรับมุมมองต้องมีสิทธิ์ "create view"

6 ดัชนีสามารถสร้างได้ใน mviews เพื่อให้ได้ประสิทธิภาพมากขึ้น แต่ไม่สามารถสร้างดัชนีได้ในมุมมอง