คุณกำลังจะทำการจูน 3 แบบคือ 1 ปฏิกิริยาและ 2 เชิงรุก
ปฏิกิริยา
จากแบบสอบถามสีน้ำเงินบางคำถามก็เริ่มก่อให้เกิดปัญหา อาจเป็นเพราะข้อผิดพลาดของแอปพลิเคชันหรือฟีเจอร์ตารางที่เกินความคาดหวังปริมาณการใช้งานที่เพิ่มขึ้นหรือเครื่องมือเพิ่มประสิทธิภาพการสืบค้นที่ได้รับ "ความคิดสร้างสรรค์" นี่อาจเป็นเรื่องกลางคันของเรื่องลงไซต์หรืออาจตอบสนองต่อความช้าของระบบในลักษณะที่ไม่สำคัญ ไม่ว่าจะด้วยวิธีใดอักขระกำหนดของการปรับค่าแบบตอบโต้คือคุณมีปัญหาอยู่แล้ว ไม่จำเป็นต้องพูดว่าคุณต้องการทำสิ่งนี้ให้น้อยที่สุดเท่าที่จะทำได้ ซึ่งนำเราไปที่ ...
เชิงรุก
ประเภทที่ 1: การบำรุงรักษาตามปกติ
ในกำหนดการบางประเภททุก ๆ สองสามเดือนหรือสัปดาห์ขึ้นอยู่กับว่า schema ของคุณเปลี่ยนแปลงบ่อยแค่ไหนและข้อมูลของคุณเติบโตเร็วแค่ไหนคุณควรตรวจสอบผลลัพธ์ของเครื่องมือวิเคราะห์ประสิทธิภาพของฐานข้อมูล (เช่นรายงาน AWR สำหรับ Oracle DBAs) คุณกำลังมองหาปัญหาเริ่มแรกนั่นคือสิ่งที่กำลังดำเนินการเพื่อปรับจูนปฏิกิริยาเช่นเดียวกับผลไม้แขวนต่ำรายการที่ไม่น่าจะทำให้เกิดปัญหาเร็ว ๆ นี้ แต่สามารถปรับปรุงได้ด้วยความพยายามเพียงเล็กน้อยในการป้องกันไกล - ปัญหาในอนาคต เวลาที่คุณควรใช้ในการนี้จะขึ้นอยู่กับว่าคุณมีเวลามากน้อยเพียงใดและคุณสามารถใช้เวลากับมันได้อีก แต่จำนวนที่เหมาะสมจะไม่เป็นศูนย์ อย่างไรก็ตามคุณสามารถลดจำนวนเงินที่คุณต้องการใช้จ่ายได้อย่างง่ายดายด้วยการทำ ...
ประเภทที่ 2: การออกแบบที่เหมาะสม
คำเตือนของ Knuth เกี่ยวกับ "การเพิ่มประสิทธิภาพก่อนวัยอันควร" เป็นที่รู้จักอย่างกว้างขวางและได้รับความเคารพอย่างถูกต้อง แต่ต้องใช้คำจำกัดความที่เหมาะสมของ "การคลอดก่อนกำหนด" นักพัฒนาแอปพลิเคชั่นบางคนเมื่อได้รับอนุญาตให้เขียนแบบสอบถามของตนเองมีแนวโน้มที่จะนำคำถามแรกที่พวกเขาพบว่าถูกต้องตามหลักเหตุผลมาใช้และไม่ต้องคำนึงถึงประสิทธิภาพการทำงานปัจจุบันหรืออนาคต หรือพวกเขาอาจทดสอบกับชุดข้อมูลการพัฒนาที่ไม่ได้เป็นตัวแทนของสภาพแวดล้อมการผลิต (เคล็ดลับ: อย่าทำเช่นนี้นักพัฒนาควรมีสิทธิ์เข้าถึงข้อมูลที่เป็นจริงสำหรับการทดสอบเสมอ) ประเด็นก็คือเวลาที่เหมาะสมในการปรับแต่งแบบสอบถามคือเมื่อมีการปรับใช้ครั้งแรกไม่ใช่เมื่อปรากฏขึ้นในรายการของ SQL ที่มีประสิทธิภาพต่ำและไม่แน่นอนเมื่อเกิดปัญหาร้ายแรง
ดังนั้นสิ่งที่จะมีคุณสมบัติเป็นการเพิ่มประสิทธิภาพก่อนกำหนดในที่ดิน DBA? ที่ด้านบนของรายการของฉันจะเสียสละฟื้นฟูโดยไม่จำเป็นต้องแสดงให้เห็น แน่ใจว่าคุณสามารถรักษายอดรวมในแถวพาเรนต์แทนที่จะคำนวณจากรันไทม์จากแถวย่อย แต่คุณต้องการจริงๆหรือ? หากคุณเป็นทวิตเตอร์หรืออเมซอนการลดความสำคัญเชิงกลยุทธ์และการคำนวณล่วงหน้าอาจเป็นเพื่อนที่ดีที่สุดของคุณ หากคุณกำลังออกแบบฐานข้อมูลการบัญชีเพียงเล็กน้อยสำหรับผู้ใช้ 5 คนโครงสร้างที่เหมาะสมเพื่ออำนวยความสะดวกด้านความสมบูรณ์ของข้อมูลจำเป็นต้องมีความสำคัญสูงสุด การปรับให้เหมาะสมก่อนวัยอื่น ๆ นั้นมีความสำคัญเช่นเดียวกัน อย่าใช้เวลาหลายชั่วโมงในการปรับแต่งแบบสอบถามที่เรียกใช้วันละครั้งและใช้เวลา 10 วินาทีแม้ว่าคุณคิดว่าคุณสามารถตัดเหลือ 0.1 วินาทีก็ตาม บางทีคุณอาจมีรายงานที่ใช้เวลา 6 ชั่วโมงต่อวัน แต่สำรวจกำหนดเวลาเป็นงานแบ็ตช์ก่อนลงทุนเวลาในการปรับแต่ง อย่าลงทุนในอินสแตนซ์การรายงานที่ทำซ้ำแบบแยกต่างหากแบบเรียลไทม์หากปริมาณการผลิตของคุณไม่เกิน 10% (สมมติว่าคุณสามารถจัดการความปลอดภัยได้)
ด้วยการทดสอบกับข้อมูลที่เป็นจริงการคาดเดาอย่างมีการศึกษาที่รูปแบบการเติบโตและปริมาณการใช้งาน (รวมถึงค่าเผื่อสำหรับ spikes) และการใช้ความรู้ของคุณเกี่ยวกับเครื่องมือเพิ่มประสิทธิภาพแพลตฟอร์มของคุณคุณสามารถปรับใช้แบบสอบถามที่ทำงาน และภายใต้เงื่อนไขที่ไม่เหมาะ เมื่อคุณใช้เทคนิคที่เหมาะสมคุณสามารถคาดการณ์ประสิทธิภาพของคิวรีได้อย่างแม่นยำและปรับให้เหมาะสม (ในแง่ขององค์ประกอบแต่ละส่วนที่เร็วที่สุดเท่าที่จำเป็น)
(และในขณะที่คุณอยู่ที่นี่เรียนรู้สถิติ! )