ความแตกต่างระหว่าง Views และ Materialized Views ใน Oracle คืออะไร
ความแตกต่างระหว่าง Views และ Materialized Views ใน Oracle คืออะไร
คำตอบ:
มุมมองที่เป็นรูปธรรมนั้นเป็นดิสก์และได้รับการอัปเดตเป็นระยะตามข้อกำหนดการสืบค้น
มุมมองเป็นเสมือนเท่านั้นและเรียกใช้คำจำกัดความแบบสอบถามทุกครั้งที่มีการเข้าถึง
พวกเขาประเมินข้อมูลในตารางที่อยู่ภายใต้คำนิยามของมุมมองในเวลาที่มุมมองการสอบถาม เป็นมุมมองแบบลอจิคัลของตารางของคุณโดยไม่มีการจัดเก็บข้อมูลใด ๆ
ข้อดีของมุมมองคือมันจะส่งคืนข้อมูลล่าสุดให้คุณเสมอ ข้อเสียของมุมมองคือประสิทธิภาพการทำงานขึ้นอยู่กับวิธีการที่ดีงบเลือกมุมมองที่อยู่บนพื้นฐานของ หากคำสั่ง select ที่ใช้โดยมุมมองรวมหลายตารางหรือใช้การรวมตามคอลัมน์ที่ไม่ได้จัดทำดัชนีมุมมองอาจทำงานได้ไม่ดี
พวกเขามีความคล้ายคลึงกับมุมมองปกติในการที่พวกเขามีมุมมองเชิงตรรกะของข้อมูลของคุณ (ขึ้นอยู่กับคำสั่งเลือก) แต่พื้นฐานชุดผลแบบสอบถามได้รับการบันทึกลงในตาราง ข้อเสียของเรื่องนี้คือเมื่อคุณสอบถามมุมมองที่ปรากฏขึ้นคุณกำลังสืบค้นตารางซึ่งอาจถูกทำดัชนีด้วย
นอกจากนี้เนื่องจากการรวมทั้งหมดได้รับการแก้ไขในเวลาการรีเฟรชมุมมองที่เป็นรูปธรรมคุณต้องจ่ายราคาของการเข้าร่วมหนึ่งครั้ง (หรือบ่อยครั้งที่คุณรีเฟรชมุมมองที่ปรากฏของคุณ) แทนแต่ละครั้งที่คุณเลือกจากมุมมองที่ปรากฏ นอกจากนี้เมื่อเปิดใช้งานการเขียนแบบสอบถามใหม่ Oracle สามารถเพิ่มประสิทธิภาพการสืบค้นที่เลือกจากแหล่งที่มาของมุมมองที่เป็นรูปธรรมของคุณในแบบที่มันจะอ่านจากมุมมองที่เป็นรูปธรรมของคุณแทน ในสถานการณ์ที่คุณสร้างมุมมอง materialized เป็นรูปแบบของตารางรวมหรือเป็นสำเนาของแบบสอบถามที่ดำเนินการบ่อยครั้งนี้สามารถเร่งเวลาตอบสนองของแอปพลิเคชันผู้ใช้ของคุณได้อย่างรวดเร็ว ข้อเสียก็คือว่าข้อมูลที่คุณได้รับกลับมาจาก materialized ดูจะเป็นเพียงถึงวันที่ครั้งสุดท้ายที่มุมมองที่ปรากฏได้รับการฟื้นฟู
มุมมอง Materialized สามารถตั้งค่าเพื่อฟื้นฟูด้วยตนเองตามเวลาที่กำหนดหรือขึ้นอยู่กับฐานข้อมูลการตรวจสอบการเปลี่ยนแปลงในข้อมูลจากหนึ่งในตารางพื้นฐาน มุมมอง Materialized สามารถปรับปรุงแบบเพิ่มหน่วยโดยการรวมมุมมอง Materialized มุมมองบันทึกซึ่งทำหน้าที่เป็นแหล่งที่มาของการดักจับข้อมูลที่เปลี่ยนแปลงบนตารางต้นแบบ
มุมมองที่เป็นรูปธรรมมักใช้ในแอปพลิเคชันคลังข้อมูล / ระบบธุรกิจอัจฉริยะซึ่งการสืบค้นตารางข้อเท็จจริงขนาดใหญ่ที่มีหลายพันล้านแถวจะส่งผลให้เกิดเวลาตอบสนองแบบสอบถามที่ทำให้แอปพลิเคชันใช้งานไม่ได้
มุมมองรูปธรรมนอกจากนี้ยังช่วยในการรับประกันเป็นช่วงเวลาที่สอดคล้องกันในเวลาคล้ายกับการแยกภาพรวม
มุมมองใช้แบบสอบถามเพื่อดึงข้อมูลจากตารางต้นแบบ
มุมมอง materialized เป็นตารางบนดิสก์ที่มีชุดผลลัพธ์ของแบบสอบถาม
มุมมองที่เป็นรูปธรรมจะถูกนำมาใช้เป็นหลักในการเพิ่มประสิทธิภาพของแอปพลิเคชันเมื่อไม่สามารถทำได้หรือเป็นที่ต้องการในการใช้มุมมองมาตรฐานที่มีการใช้ดัชนีกับมัน Materialized views สามารถปรับปรุงเป็นประจำทั้งผ่านทริกเกอร์หรือโดยใช้ON COMMIT REFRESH
ตัวเลือก สิ่งนี้ต้องการการอนุญาตพิเศษเล็กน้อย แต่ไม่มีอะไรซับซ้อน ON COMMIT REFRESH
มีมาตั้งแต่ Oracle 10 เป็นอย่างน้อย
มุมมองเป็นโครงสร้างที่มีลักษณะคล้ายตารางที่มีเหตุผลเป็นหลักซึ่งมีการค้นหาอย่างรวดเร็ว ผลลัพธ์ของคิวรีมุมมองจะไม่ถูกเก็บไว้ที่ใดก็ได้บนดิสก์และมุมมองจะถูกสร้างขึ้นใหม่ทุกครั้งที่เรียกใช้คิวรี Materialized views เป็นโครงสร้างจริงที่เก็บอยู่ในฐานข้อมูลและเขียนลงดิสก์ พวกเขาจะปรับปรุงตามพารามิเตอร์ที่กำหนดเมื่อพวกเขาถูกสร้างขึ้น
Materialized view - ตารางบนดิสก์ที่มีชุดผลลัพธ์ของแบบสอบถาม
มุมมองที่ไม่ใช่ materiased - แบบสอบถามที่ดึงข้อมูลจากตารางต้นแบบ
มุมมอง:มุมมองเป็นเพียงแบบสอบถามที่มีชื่อ มันไม่ได้เก็บอะไรเลย เมื่อมีแบบสอบถามในมุมมองมันจะเรียกใช้แบบสอบถามของคำจำกัดความมุมมอง ข้อมูลจริงมาจากตาราง
มุมมอง Materialized:เก็บข้อมูลทางกายภาพและรับการปรับปรุงเป็นระยะ ขณะทำการสืบค้น MV จะให้ข้อมูลจาก MV
กำลังเพิ่มคำตอบสวย ๆ ของ Mike McAllister ...
Materialized views สามารถตั้งค่าให้รีเฟรชอัตโนมัติผ่านฐานข้อมูลการตรวจจับการเปลี่ยนแปลงเมื่อคอมไพเลอร์แบบสอบถามถือว่าเรียบง่าย หากพิจารณาว่าซับซ้อนเกินไปจะไม่สามารถตั้งค่าสิ่งที่เป็นตัวกระตุ้นภายในเพื่อติดตามการเปลี่ยนแปลงในตารางต้นฉบับเพื่ออัปเดตแถวที่เปลี่ยนแปลงในตาราง mview เท่านั้น
เมื่อคุณสร้างมุมมองที่เป็นรูปธรรมคุณจะพบว่า Oracle สร้างทั้ง mview และเป็นตารางที่มีชื่อเดียวกันซึ่งอาจทำให้สับสนได้
Materialized views เป็นมุมมองเชิงตรรกะของ data-driven โดยแบบสอบถามแบบใช้เลือกข้อมูล แต่ผลลัพธ์ของแบบสอบถามจะถูกเก็บไว้ในตารางหรือดิสก์รวมทั้งคำจำกัดความของแบบสอบถามจะเก็บไว้ในฐานข้อมูล
ประสิทธิภาพของการดูแบบ Materialized จะดีกว่าการดูแบบปกติเนื่องจากข้อมูลของการดูแบบ Materialized จะถูกจัดเก็บในตารางและตารางอาจมีการจัดทำดัชนีให้เร็วขึ้นสำหรับการเข้าร่วมและการเข้าร่วมจะเสร็จสิ้นในเวลาที่มีการรีเฟรช เข้าร่วมคำสั่งในกรณีที่ดู
ความแตกต่างอื่น ๆ รวมถึงในกรณีของมุมมองเราจะได้รับข้อมูลล่าสุดเสมอ แต่ในกรณีของมุมมองวัสดุเราจำเป็นต้องรีเฟรชมุมมองเพื่อรับข้อมูลล่าสุด ในกรณีของมุมมอง Materialized เราต้องการทริกเกอร์พิเศษหรือวิธีการอัตโนมัติเพื่อให้สามารถรีเฟรช MV ได้ซึ่งไม่จำเป็นสำหรับมุมมองในฐานข้อมูล