ในกรณีเช่นนี้เราจะต้องสามารถสร้างตารางเสมือนที่สามารถแสดงคุณสมบัติที่จำเป็นจากตาราง สิ่งนี้เป็นไปได้ผ่านมุมมองและมุมมองที่เป็นรูปธรรมซึ่งเราจะหารือในบทความนี้ เราจะหารือเกี่ยวกับความแตกต่างระหว่างมุมมองและมุมมองที่ปรากฏด้วยความช่วยเหลือของแผนภูมิเปรียบเทียบที่แสดงด้านล่าง:
แผนภูมิเปรียบเทียบ
พื้นฐานสำหรับการเปรียบเทียบ | ดู | มุมมองที่ปรากฏ |
---|---|---|
ขั้นพื้นฐาน | มุมมองไม่เคยถูกจัดเก็บมันจะปรากฏขึ้นเท่านั้น | มุมมอง Materialized ถูกเก็บไว้ในดิสก์ |
กำหนด | มุมมองคือตารางเสมือนที่เกิดขึ้นจากหนึ่งตารางขึ้นไปหรือมุมมองพื้นฐาน | Materialized view เป็นสำเนาจริงของตารางฐาน |
ปรับปรุง | มุมมองจะอัปเดตทุกครั้งที่ใช้ตารางเสมือน (มุมมอง) | Materialized View จะต้องมีการอัพเดทด้วยตนเองหรือใช้ทริกเกอร์ |
ความเร็ว | ประมวลผลช้า | การประมวลผลที่รวดเร็ว |
การใช้ความจำ | มุมมองไม่จำเป็นต้องใช้พื้นที่หน่วยความจำ | Materialized View ใช้พื้นที่หน่วยความจำ |
วากยสัมพันธ์ | สร้างมุมมอง V เป็น | สร้าง Materialized View V Build [clause] รีเฟรช [clause] บน [Trigger] As |
คำจำกัดความของมุมมอง
มุมมองเป็น ตารางเสมือนที่ สร้างขึ้นโดยใช้คำสั่ง สร้างมุมมอง ตารางเสมือนนี้มีข้อมูลที่ดึงมาจาก นิพจน์แบบสอบถาม ในคำสั่งสร้างมุมมอง สามารถสร้างมุมมองได้จากหนึ่งตารางหรือมากกว่าหนึ่งตารางพื้นฐานหรือมุมมอง สามารถสอบถามมุมมองเช่นคุณค้นหาตารางฐานเดิม
ไม่ใช่ ว่า View ถูก คำนวณล่วงหน้า และ เก็บไว้ ในดิสก์แทนมุมมองจะถูก คำนวณ ทุกครั้งที่มีการใช้หรือเข้าถึง เมื่อใดก็ตามที่มีการใช้มุมมองนิพจน์แบบสอบถามในคำสั่งสร้างมุมมองจะถูกดำเนินการในช่วงเวลานั้น ดังนั้นคุณจะได้รับข้อมูลที่ อัปเดต เสมอในมุมมอง
หากคุณอัปเดตเนื้อหาใด ๆ ในมุมมองเนื้อหานั้นจะปรากฏในตารางต้นฉบับและหากมีการเปลี่ยนแปลงใด ๆ กับตารางฐานดั้งเดิมเนื้อหานั้นจะแสดงในมุมมองของมัน แต่สิ่งนี้ทำให้ประสิทธิภาพของมุมมอง ช้าลง ตัวอย่างเช่นมุมมองถูกสร้างขึ้นจากการเข้าร่วมของสองตารางหรือมากกว่า ในกรณีนี้คุณต้องจ่ายเวลาในการแก้ไขการเข้าร่วมทุกครั้งที่ใช้มุมมอง
แต่ก็มี ข้อดี บางอย่างเช่น ไม่ ต้องการ พื้นที่เก็บข้อมูล คุณสามารถสร้างมุมมองที่ กำหนดเอง ของฐานข้อมูลที่ซับซ้อน คุณสามารถ จำกัด ผู้ใช้จากการเข้าถึงข้อมูลที่สำคัญในฐานข้อมูล ลด ความซับซ้อน ของการสืบค้นโดยรับข้อมูลจากหลาย ๆ ตารางเป็นมุมมองที่กำหนดเอง
ตอนนี้ให้เราดูไวยากรณ์ของมุมมอง
สร้างมุมมอง V เป็น
โปรดจำไว้ว่า มุมมองทั้งหมดไม่สามารถอัปเดตได้ เช่นเดียวกับมุมมองที่สร้างโดยใช้คำสั่ง DISTINCT, Group By clause, ข้อ จำกัด การ ตรวจสอบ (หากการตรวจสอบการละเมิดข้อ จำกัด ), ตัวเลือก อ่านอย่างเดียว ไม่สามารถอัปเดตได้
ความหมายของมุมมอง Materialized
Materialized View เป็น สำเนาทางกายภาพ ของตารางฐานดั้งเดิม มุมมอง Materialized เป็นเหมือนส แน็ปช็อต หรือ รูปภาพ ของตารางฐานดั้งเดิม เช่นเดียวกับมุมมองมันยังมีข้อมูลที่ดึงมาจาก นิพจน์แบบสอบถาม ของคำสั่ง สร้างมุมมองวัสดุ
แต่ต่างจากมุมมอง Materialized View จะถูก คำนวณล่วงหน้า และ จัดเก็บไว้ ในดิสก์เช่นวัตถุและจะ ไม่ได้รับการอัปเดต ทุกครั้งที่ใช้งาน มุมมองที่เป็นรูปธรรมจะต้องได้รับการปรับปรุง ด้วยตนเอง หรือด้วยความช่วยเหลือของ ทริกเกอร์ กระบวนการของการอัพเดตมุมมอง Materialized เรียกว่า Materialized View Maintenance
มุมมองที่ปรากฏขึ้นตอบสนองได้เร็วขึ้นเมื่อเทียบกับมุมมอง มันเป็นเพราะมุมมอง materialized ถูกคำนวณไว้ล่วงหน้าและด้วยเหตุนี้จึงไม่เสียเวลาในการแก้ไขแบบสอบถามหรือเข้าร่วมในแบบสอบถามที่สร้างมุมมอง Materialized ซึ่งจะตอบสนองต่อแบบสอบถามที่เกิดขึ้นในมุมมองที่เป็นรูปธรรมได้เร็วขึ้น
ให้เราตรวจสอบไวยากรณ์ของ Materialized View:
สร้าง Materialized View V
สร้าง [ข้อ] รีเฟรช [ประเภท]
เปิด [เรียกใช้]
เช่น
คำสั่งย่อย บิวด์สร้าง ตัดสินใจเมื่อใดที่จะเติมมุมมอง Materialized ประเภทการรีเฟรชจะตัดสินใจว่าจะอัพเดตมุมมองวัสดุและทริกเกอร์จะตัดสินใจว่าจะอัพเดตมุมมองวัสดุเมื่อใด
โดยทั่วไปจะมีการใช้มุมมอง Materalized ใน คลังข้อมูล
ความแตกต่างที่สำคัญระหว่างมุมมองและมุมมองที่ปรากฏ
- ความแตกต่างพื้นฐานระหว่างมุมมองและมุมมองที่เกิดขึ้นจริงคือมุมมอง ไม่ได้ถูกจัดเก็บ ทางกายภาพบนดิสก์ ในทางกลับกัน Materialized Views จะ ถูกเก็บไว้ ในแผ่นดิสก์
- มุมมองสามารถกำหนดเป็น ตารางเสมือนที่ สร้างขึ้นเป็นผลมาจากการแสดงออกแบบสอบถาม อย่างไรก็ตาม Materialized View เป็น สำเนา ภาพหรือสแน็ปช็อตจริงของตารางฐาน
- มุมมองจะได้ รับการอัปเดต อยู่เสมอเนื่องจากแบบสอบถามที่สร้างมุมมองจะเรียกใช้งานทุกครั้งที่ใช้มุมมอง ในทางกลับกัน Materialized View จะถูกอัพเดต ด้วยตนเอง หรือโดยการใช้ ทริกเกอร์
- มุมมองที่เป็นรูปธรรมจะตอบสนอง เร็ว กว่ามุมมองเนื่องจากมุมมองที่เกิดขึ้นจะถูกคำนวณไว้ล่วงหน้า
- Materialized View ใช้ พื้นที่หน่วยความจำ ตามที่จัดเก็บไว้ในดิสก์ในขณะที่ View เป็นเพียง จอแสดงผลเท่านั้น จึงไม่ต้องการพื้นที่หน่วยความจำ
สรุป:
มุมมองที่ปรากฏขึ้นตอบสนองได้เร็วขึ้นเมื่อเทียบกับมุมมอง แต่มุมมองจะให้ข้อมูลล่าสุดแก่ผู้ใช้เสมอ