SQL - การปรับฐานข้อมูล

การเป็นผู้เชี่ยวชาญด้านฐานข้อมูลหรือผู้ดูแลฐานข้อมูลผู้เชี่ยวชาญต้องใช้เวลา ทั้งหมดนี้มาพร้อมกับประสบการณ์มากมายในการออกแบบฐานข้อมูลต่างๆและการฝึกอบรมที่ดี

แต่รายการต่อไปนี้อาจเป็นประโยชน์สำหรับผู้เริ่มต้นในการมีฐานข้อมูลที่ดี -

  • ใช้การออกแบบฐานข้อมูล 3BNF ที่อธิบายไว้ในบทช่วยสอนนี้ในบทแนวคิด RDBMS

  • หลีกเลี่ยงการแปลงจำนวนเป็นอักขระเนื่องจากตัวเลขและอักขระเปรียบเทียบต่างกันและนำไปสู่การลดระดับประสิทธิภาพ

  • ในขณะที่ใช้คำสั่ง SELECT ให้ดึงเฉพาะข้อมูลที่จำเป็นและหลีกเลี่ยงการใช้ * ในการสืบค้น SELECT ของคุณเนื่องจากจะโหลดระบบโดยไม่จำเป็น

  • สร้างดัชนีของคุณอย่างระมัดระวังในทุกตารางที่คุณมีการค้นหาบ่อยๆ หลีกเลี่ยงการจัดทำดัชนีบนตารางที่คุณมีจำนวนการดำเนินการค้นหาน้อยกว่าและจำนวนการดำเนินการแทรกและอัพเดตมากขึ้น

  • การสแกนแบบเต็มตารางเกิดขึ้นเมื่อคอลัมน์ในส่วนคำสั่ง WHERE ไม่มีดัชนีที่เกี่ยวข้อง คุณสามารถหลีกเลี่ยงการสแกนแบบเต็มตารางได้โดยการสร้างดัชนีบนคอลัมน์ที่ใช้เป็นเงื่อนไขในคำสั่ง WHERE ของคำสั่ง SQL

  • โปรดระวังตัวดำเนินการความเท่าเทียมกับตัวเลขจริงและค่าวันที่ / เวลา ทั้งสองอย่างนี้อาจมีความแตกต่างเล็ก ๆ น้อย ๆ ที่ไม่ชัดเจนต่อสายตา แต่ทำให้ไม่สามารถจับคู่แบบตรงทั้งหมดได้ดังนั้นจึงป้องกันไม่ให้ข้อความค้นหาของคุณกลับมาเป็นแถว

  • ใช้รูปแบบการจับคู่อย่างรอบคอบ LIKE COL% เป็นเงื่อนไข WHERE ที่ถูกต้องโดยลดชุดที่ส่งคืนให้เหลือเฉพาะระเบียนที่มีข้อมูลขึ้นต้นด้วยสตริง COL อย่างไรก็ตาม COL% Y จะไม่ลดผลลัพธ์ที่ตั้งไว้อีกต่อไปเนื่องจากไม่สามารถประเมิน% Y ได้อย่างมีประสิทธิภาพ ความพยายามในการประเมินผลมากเกินกว่าที่จะพิจารณาได้ ในกรณีนี้จะใช้ COL% แต่% Y ถูกโยนทิ้งไป ด้วยเหตุผลเดียวกันสัญลักษณ์แทนชั้นนำ% COL จึงป้องกันไม่ให้ใช้ตัวกรองทั้งหมดได้อย่างมีประสิทธิภาพ

  • ปรับแต่งการสืบค้น SQL ของคุณอย่างละเอียดเพื่อตรวจสอบโครงสร้างของคิวรี (และเคียวรีย่อย) ไวยากรณ์ SQL เพื่อดูว่าคุณได้ออกแบบตารางของคุณเพื่อรองรับการจัดการข้อมูลอย่างรวดเร็วและเขียนคิวรีในลักษณะที่เหมาะสมที่สุดทำให้ DBMS ของคุณจัดการข้อมูลได้อย่างมีประสิทธิภาพ .

  • สำหรับแบบสอบถามที่ดำเนินการเป็นประจำให้ลองใช้โพรซีเดอร์ โพรซีเดอร์คือกลุ่มคำสั่ง SQL ที่อาจมีขนาดใหญ่ ขั้นตอนถูกคอมไพล์โดยเอ็นจินฐานข้อมูลแล้วดำเนินการ ไม่เหมือนกับคำสั่ง SQL เอ็นจินฐานข้อมูลไม่จำเป็นต้องปรับขั้นตอนให้เหมาะสมก่อนที่จะดำเนินการ

  • หลีกเลี่ยงการใช้ตัวดำเนินการทางตรรกะหรือในแบบสอบถามถ้าเป็นไปได้ หรือทำให้การสืบค้นช้าลงเกือบทุกรายการเทียบกับตารางที่มีขนาดใหญ่อย่างหลีกเลี่ยงไม่ได้

  • คุณสามารถเพิ่มประสิทธิภาพการโหลดข้อมูลจำนวนมากได้โดยการทิ้งดัชนี ลองนึกภาพตารางประวัติศาสตร์ที่มีหลายพันแถว ตารางประวัตินั้นมีแนวโน้มที่จะมีดัชนีอย่างน้อยหนึ่งรายการ เมื่อคุณนึกถึงดัชนีโดยปกติคุณจะนึกถึงการเข้าถึงตารางที่เร็วขึ้น แต่ในกรณีของการโหลดแบตช์คุณจะได้รับประโยชน์จากการทิ้งดัชนี

  • เมื่อทำธุรกรรมแบบกลุ่มให้ดำเนินการ COMMIT หลังจากสร้างเรกคอร์ดตามจำนวนที่เหมาะสมแทนการสร้างรายการหลังจากสร้างเรกคอร์ดทุกครั้ง

  • วางแผนจัดเรียงข้อมูลในฐานข้อมูลเป็นประจำแม้ว่าการทำเช่นนั้นจะหมายถึงการพัฒนากิจวัตรประจำสัปดาห์

เครื่องมือปรับแต่งในตัว

Oracle มีเครื่องมือมากมายสำหรับจัดการประสิทธิภาพคำสั่ง SQL แต่ในสองรายการนั้นเป็นที่นิยมอย่างมาก เครื่องมือทั้งสองนี้คือ -

  • Explain plan - เครื่องมือระบุเส้นทางการเข้าถึงที่จะใช้เมื่อดำเนินการคำสั่ง SQL

  • tkprof - วัดประสิทธิภาพตามเวลาที่ผ่านไปในแต่ละขั้นตอนของการประมวลผลคำสั่ง SQL

หากคุณต้องการวัดเวลาที่ผ่านไปของแบบสอบถามใน Oracle คุณสามารถใช้คำสั่ง SQL * Plus SET TIMING ON

ตรวจสอบเอกสาร RDBMS ของคุณสำหรับรายละเอียดเพิ่มเติมเกี่ยวกับเครื่องมือที่กล่าวถึงข้างต้นและการจัดเรียงข้อมูลในฐานข้อมูล