เมื่อใดควรใช้ View บนตารางจริง สิ่งนี้ควรคาดหวังว่าจะได้รับอะไรบ้าง?
โดยรวมแล้วข้อดีของการใช้มุมมองบนตารางคืออะไร? ฉันไม่ควรออกแบบโต๊ะในแบบที่มุมมองตั้งแต่แรกหรือไม่?
เมื่อใดควรใช้ View บนตารางจริง สิ่งนี้ควรคาดหวังว่าจะได้รับอะไรบ้าง?
โดยรวมแล้วข้อดีของการใช้มุมมองบนตารางคืออะไร? ฉันไม่ควรออกแบบโต๊ะในแบบที่มุมมองตั้งแต่แรกหรือไม่?
คำตอบ:
มีความแตกต่างมากมายที่คุณจะต้องพิจารณา
มุมมองสำหรับการเลือก:
มุมมองสำหรับการแทรก / อัปเดต:
ข้อเสีย
มุมมองสามารถ:
และคุณไม่ควรออกแบบตารางเพื่อให้ตรงกับมุมมอง แบบจำลองพื้นฐานของคุณควรเกี่ยวข้องกับการจัดเก็บและการดึงข้อมูลที่มีประสิทธิภาพ มุมมองเป็นเครื่องมือส่วนหนึ่งที่ช่วยลดความซับซ้อนที่เกิดขึ้นจากแบบจำลองที่มีประสิทธิภาพและเป็นมาตรฐานโดยช่วยให้คุณสามารถสรุปความซับซ้อนนั้นได้
นอกจากนี้การถามว่า "ข้อดีของการใช้มุมมองบนโต๊ะคืออะไร" ไม่ใช่การเปรียบเทียบที่ดี คุณไม่สามารถไปได้หากไม่มีโต๊ะ แต่คุณสามารถทำได้โดยไม่มีมุมมอง พวกเขาแต่ละคนมีเหตุผลที่แตกต่างกันมาก ตารางเป็นแบบจำลองที่เป็นรูปธรรมและมุมมองเป็นนามธรรมที่ดีมุมมอง
มุมมองเป็นสิ่งที่ยอมรับได้เมื่อคุณต้องการให้แน่ใจว่ามีการปฏิบัติตามตรรกะที่ซับซ้อนทุกครั้ง ตัวอย่างเช่นเรามีมุมมองที่สร้างข้อมูลดิบที่จำเป็นสำหรับการรายงานทางการเงินทั้งหมด การให้รายงานทั้งหมดใช้มุมมองนี้ทำให้ทุกคนทำงานจากชุดข้อมูลเดียวกันแทนที่จะใช้รายงานหนึ่งชุดโดยใช้การรวมชุดเดียวและอีกรายงานหนึ่งลืมใช้อันที่ให้ผลลัพธ์ที่แตกต่างกัน
การดูเป็นสิ่งที่ยอมรับได้เมื่อคุณต้องการ จำกัด ผู้ใช้เฉพาะบางส่วนของข้อมูล ตัวอย่างเช่นหากคุณไม่ลบระเบียน แต่ทำเครื่องหมายเฉพาะระเบียนปัจจุบันว่าใช้งานอยู่และเวอร์ชันเก่ากว่าเป็นไม่ใช้งานคุณต้องการให้มุมมองใช้เพื่อเลือกเฉพาะระเบียนที่ใช้งานอยู่ วิธีนี้จะป้องกันไม่ให้คนลืมใส่ where clause ในแบบสอบถามและได้ผลลัพธ์ที่ไม่ดี
มุมมองสามารถใช้เพื่อให้แน่ใจว่าผู้ใช้สามารถเข้าถึงชุดของระเบียนเท่านั้นตัวอย่างเช่นมุมมองของตารางสำหรับไคลเอนต์หนึ่ง ๆ และไม่มีสิทธิ์ด้านความปลอดภัยบนตารางอาจหมายความว่าผู้ใช้สำหรับไคลเอ็นต์นั้นจะสามารถเห็นข้อมูลได้เท่านั้น สำหรับลูกค้านั้น
มุมมองมีประโยชน์มากเมื่อปรับฐานข้อมูลใหม่
มุมมองไม่สามารถยอมรับได้เมื่อคุณใช้มุมมองเพื่อเรียกดูซึ่งอาจส่งผลให้ประสิทธิภาพแย่ลง (อย่างน้อยใน SQL Server) เราเกือบจะสูญเสียลูกค้ามูลค่าหลายล้านดอลลาร์เพราะมีคนเลือกที่จะทำให้ฐานข้อมูลเป็นนามธรรมด้วยวิธีนี้และประสิทธิภาพก็น่ากลัวและหมดเวลาบ่อย เราต้องจ่ายค่าแก้ไขด้วยไม่ใช่ลูกค้าเนื่องจากปัญหาด้านประสิทธิภาพเป็นความผิดของเราโดยสิ้นเชิง เมื่อมีการเรียกดูมุมมองพวกเขาจะต้องสร้างมุมมองพื้นฐานทั้งหมด ฉันได้เห็นสิ่งนี้ที่มุมมองนี้เรียกว่ามุมมองซึ่งเรียกว่าการดูและมีการสร้างบันทึกมากมายหลายล้านรายการเพื่อที่จะเห็นทั้งสามอย่างที่ผู้ใช้ต้องการในที่สุด ฉันจำได้ว่าหนึ่งในมุมมองเหล่านี้ใช้เวลา 8 นาทีในการนับจำนวนอย่างง่าย (*) ของบันทึก การโทรเข้าชมเป็นความคิดที่แย่มาก
มุมมองมักเป็นความคิดที่ไม่ดีที่จะใช้เพื่ออัปเดตเรกคอร์ดเนื่องจากโดยปกติคุณสามารถอัปเดตฟิลด์จากตารางเดียวกันเท่านั้น (อีกครั้งนี่คือ SQL Server ฐานข้อมูลอื่นอาจแตกต่างกันไป) หากเป็นเช่นนั้นคุณควรอัปเดตตารางโดยตรงเพื่อให้คุณทราบว่ามีช่องใดบ้าง
มุมมองมีประโยชน์เมื่อคุณต้องการเลือกจากหลาย ๆ ตารางหรือเพียงเพื่อรับส่วนย่อยของตาราง
คุณควรออกแบบตารางของคุณในลักษณะที่ฐานข้อมูลของคุณเป็นปกติดี (การทำสำเนาขั้นต่ำ) ซึ่งอาจทำให้การสืบค้นค่อนข้างยาก
มุมมองเป็นการแยกส่วนเล็กน้อยทำให้คุณสามารถดูข้อมูลในตารางได้แตกต่างจากที่จัดเก็บไว้
แนวทางปฏิบัติทั่วไปคือซ่อนการรวมในมุมมองเพื่อนำเสนอโมเดลข้อมูลที่ผิดปกติให้กับผู้ใช้มากขึ้น การใช้งานอื่น ๆ เกี่ยวข้องกับการรักษาความปลอดภัย (เช่นโดยการซ่อนคอลัมน์และ / หรือแถวบางคอลัมน์) หรือประสิทธิภาพ (ในกรณีของมุมมองที่เป็นรูปธรรม)
คุณควรออกแบบโต๊ะของคุณโดยไม่คำนึงถึงมุมมอง
นอกเหนือจากการบันทึกการรวมและเงื่อนไข Views ยังมีข้อได้เปรียบด้านประสิทธิภาพ: SQL Server อาจคำนวณและบันทึกแผนการดำเนินการในมุมมองดังนั้นจึงทำให้เร็วกว่าคำสั่ง SQL แบบ "ทันที"
ดูยังอาจทำให้งานของคุณง่ายขึ้นเกี่ยวกับการเข้าถึงของผู้ใช้ในระดับฟิลด์
ประการแรกตามชื่อที่แสดงให้เห็นว่ามุมมองไม่เปลี่ยนรูป นั่นเป็นเพราะมุมมองไม่ใช่อะไรอื่นนอกจากตารางเสมือนที่สร้างจากคิวรีที่เก็บไว้ในฐานข้อมูล ด้วยเหตุนี้คุณจึงมีลักษณะบางอย่างของมุมมอง:
ดังนั้นจึงมีกรณีการใช้งานกว่าล้านเท่าที่มุมมองจะเหมาะสมกว่าตารางลองนึกถึงการแสดงเฉพาะผู้ใช้ที่ใช้งานอยู่บนเว็บไซต์เท่านั้น ข้อมูลพร็อพเพอร์ตี้จะดีกว่าเนื่องจากคุณดำเนินการเฉพาะกับข้อมูลส่วนย่อยที่อยู่ในฐานข้อมูลของคุณเท่านั้น (ผู้ใช้ที่ใช้งานอยู่และไม่ได้ใช้งาน)
ตรวจสอบบทความนี้
หวังว่านี่จะช่วยได้ ..
ตามที่วิกิพีเดีย ,
มุมมองสามารถ จำกัด ระดับการเปิดรับแสงของตารางที่อยู่ข้างนอกกับโลกภายนอก: ผู้ใช้ที่ระบุอาจมีสิทธิ์ในการสอบถามมุมมองในขณะที่ปฏิเสธการเข้าถึงส่วนที่เหลือของตารางฐาน
มุมมองสามารถรวมและลดความซับซ้อนของตารางหลายตารางลงในตารางเสมือนเดียว
มุมมองสามารถทำหน้าที่เป็นตารางรวมโดยที่เอ็นจินฐานข้อมูลจะรวบรวมข้อมูล (ผลรวมค่าเฉลี่ย ฯลฯ ) และแสดงผลลัพธ์ที่คำนวณเป็นส่วนหนึ่งของข้อมูล
มุมมองสามารถซ่อนความซับซ้อนของข้อมูลได้ ตัวอย่างเช่นมุมมองอาจปรากฏเป็น Sales2000 หรือ Sales2001 โดยแบ่งพาร์ติชันตารางพื้นฐานจริงอย่างโปร่งใส
ชมใช้พื้นที่น้อยมากในการจัดเก็บ ; ฐานข้อมูลมีเพียงนิยามของมุมมองไม่ใช่สำเนาของข้อมูลทั้งหมดที่นำเสนอ
มุมมองสามารถให้ความปลอดภัยเป็นพิเศษขึ้นอยู่กับเอ็นจิ้น SQL ที่ใช้