คำตอบสั้น ๆ
ใช่คุณสามารถเขียนมาตรฐานที่มีความหมายของกรณีศึกษาหากคุณทำด้วยความระมัดระวังและเข้าใจว่าถ้ามันเกี่ยวข้องกับกรณีเฉพาะอาจเป็นกรณีอื่น สิ่งนี้เป็นจริงอย่างเท่าเทียมกันเมื่อเปรียบเทียบฐานข้อมูลประเภทเดียวกัน (ฐานข้อมูลเชิงสัมพันธ์กับฐานข้อมูลเชิงสัมพันธ์อื่น) หรือฐานข้อมูลประเภทอื่น
ไม่คุณไม่สามารถเขียนเกณฑ์มาตรฐานซึ่งจะพิสูจน์ได้อย่างน่าอัศจรรย์ว่าฐานข้อมูลเฉพาะนั้นดีกว่าที่อื่นในทุกกรณีสำหรับทุกแอปพลิเคชัน
คำตอบที่ยาว
เป็นไปได้แน่นอนที่จะกล่าวว่า "การย้ายจากฐานข้อมูลไปยังอีกการปรับปรุงประสิทธิภาพเว็บไซต์ของเรา"
คุณวัดประสิทธิภาพของฐานข้อมูลก่อนหน้านี้ผ่านการทำโปรไฟล์หรือสถิติรันไทม์โดยรวบรวมข้อมูลเพียงพอเกี่ยวกับแบบสอบถามและความรวดเร็ว
คุณย้ายแอปพลิเคชันไปยังฐานข้อมูลใหม่
คุณทำมาตรการเดียวกัน
คุณเปรียบเทียบ
ตัวอย่างเช่นหากรายการทั้งหมดของ 3 182 432 ผลิตภัณฑ์โหลดเป็น 2.834 วินาที บนฐานข้อมูลเก่าและโหลดใน 0.920 วินาที ในฐานข้อมูลใหม่เนื่องจากทั้งสองกรณีแอปพลิเคชันมีแคชว่างเปล่ามันเป็นชัยชนะ: ฐานข้อมูลใหม่ปรับปรุงประสิทธิภาพเว็บไซต์ของคุณเกี่ยวกับแบบสอบถามนี้
ตอนนี้ในฐานะที่เป็นตัวชี้วัดประสิทธิภาพใด ๆ มันลำเอียง:
ตกลงแบบสอบถามใหม่เร็วกว่า แต่รอDBA ของคุณไม่ได้รู้วิธีการใช้ฐานข้อมูลที่คุณมีมาก่อนดังนั้นแบบสอบถามซึ่งโหลดผลิตภัณฑ์ทั้งหมดจะไม่เหมาะ หากคุณเขียนซ้ำเช่นนั้นคุณจะสามารถโหลดผลิตภัณฑ์เหล่านั้นใน 0.855 วินาที แทน 2.834
ตกลงคุณมีผลลัพธ์ที่ดีกว่า แต่คุณไม่คิดหรือว่ามันไม่ยุติธรรมที่จะเปรียบเทียบฐานข้อมูลกับข้อมูลใหม่ที่เพิ่งลบไปแล้วกับฐานข้อมูลอายุ 10 ปีที่แผนการบำรุงรักษาล่าสุดถูกเรียกใช้เมื่อสามปีที่แล้ว? คุณคิดว่าคุณควรอัพเดทผลิตภัณฑ์ฐานข้อมูลอย่างน้อยหนึ่งครั้งในช่วงสี่ปีที่ผ่านมาหรือไม่?
แบบสอบถามบางรายการเร็วกว่า บางคนช้ากว่า คุณคำนวณผลลัพธ์เฉลี่ยอย่างไรเพื่อทราบว่าคุณได้รับประสิทธิภาพโดยรวมเมื่อย้ายไปยังฐานข้อมูลใหม่ ตกลงเวลาที่คุณโหลดผลิตภัณฑ์ 3 182 432 ทั้งหมดนั้นเร็วขึ้น แต่มันสำคัญหรือไม่ในขณะที่การสืบค้นนั้นดำเนินการบนเว็บไซต์เฉพาะในกรณีที่ไม่ค่อยเกิดขึ้นเมื่อผู้ดูแลระบบกำลังทำงานบางอย่างที่เขาทำเพียงสองครั้งในช่วงสิบปีที่ผ่านมา ในทางตรงกันข้ามการดำเนินการค้นหาทั้งหมดในหน้าแรกสำหรับผู้ใช้ใหม่เสีย 0.281 s กับฐานข้อมูลใหม่เมื่อมันเป็น 0.207 วินาที ด้วยฐานข้อมูลเก่า ผลลัพธ์นี้มีความสำคัญมากกว่าโดยเฉพาะอย่างยิ่งเนื่องจากแบบสอบถามเหล่านั้นไม่สามารถแคชได้เป็นเวลานานและมีการดำเนินการหลายหมื่นครั้งต่อวัน
ฐานข้อมูลทั้งสองจะต้องทดสอบบนเซิร์ฟเวอร์เดียวกันฮาร์ดแวร์เดียวกันโครงสร้างเดียวกัน ตัวอย่างเช่นคุณไม่สามารถทดสอบหนึ่งฐานข้อมูลบนฮาร์ดไดรฟ์เดียวและอีกหนึ่งฐานข้อมูลใน RAID1 ของ SSD สองตัว เมื่อคุณโอนย้ายโปรเจ็กต์ขนาดใหญ่ไปยังฐานข้อมูลใหม่มีโอกาสที่คุณจะเพิ่งโฮสต์ฐานข้อมูลใหม่บนแร็คเซิร์ฟเวอร์ที่ปรับใช้ใหม่อื่น ๆ นับร้อยเมื่อฐานข้อมูลก่อนหน้านี้จะยังคงอยู่บนเครื่องก่อนหน้านี้
เพื่อสรุปคุณสามารถมาตรฐานการสืบค้นฐานข้อมูลของโปรแกรมประยุกต์และได้รับตัวชี้วัดที่แม่นยำ แต่คุณต้องให้ความหมายกับตัวเลข ที่รัฐนี้เป็นการดึงดูดที่จะกล่าวว่าคุณได้รับประสิทธิภาพของไซต์: ไม่เช่นนั้นผู้บริหารจะโกรธที่จะรู้ว่าคุณใช้เงินหลายพันดอลลาร์และทำงานหลายเดือนเพื่อทำให้สิ่งต่าง ๆ ช้าลง
ข้อผิดพลาดที่แย่ที่สุดคือการหาข้อสรุปจากเกณฑ์มาตรฐานและเพื่อสรุปความโง่เขลาเช่น "Microsoft SQL Server เร็วกว่า Oracle สามเท่า": การพูดแบบนี้เป็นการบอกว่า "Java ดีกว่า PHP" กำหนดได้ดีขึ้น ดีกว่าในกรณีอะไร? สำหรับแอปพลิเคชันประเภทใด สำหรับทีมพัฒนา
ยิ่งคุณตีความและพูดคุยทั่วไปมากขึ้นสิ่งต่าง ๆ ก็จะไม่เกี่ยวข้องและไร้ความหมาย
แบบสอบถามที่select [...]
คุณสามารถหาได้ในการแก้ไข # 832 ในไฟล์ProductFactory.cs
บรรทัด 117 ดำเนินการภายใต้ 0.5 วินาที ด้วยฐานข้อมูลใหม่เมื่อทดสอบภายใต้เงื่อนไขที่ระบุในข้อกำหนดที่ไม่ใช้งานได้ภาคผนวก M กรณีที่ 3 ทำให้สามารถผ่านข้อกำหนดที่ไม่ใช้งานได้ 527 (ดูหน้า 80, การแก้ไข 9) ข้อกำหนดเดียวกันไม่เป็นที่พอใจกับฐานข้อมูลก่อนหน้านี้เมื่อผลการทดสอบอยู่ในช่วง 0.9..1.3 s ในสภาพเดียวกัน
มีความหมายสำหรับนักพัฒนาและแม่นยำพอที่จะรู้ว่าสิ่งใดที่ถูกทดสอบวิธีและผลลัพธ์คืออะไร นี่จะตอบคำถามหมายเลข 2 ของคุณ
น่าเศร้าที่มันไม่สมเหตุสมผลสำหรับการจัดการ แทน:
การโอนย้ายผลิตภัณฑ์ของเราจาก MySQL ไปเป็น Microsoft SQL Server รุ่นล่าสุดปรับปรุงประสิทธิภาพโดยรวมของผลิตภัณฑ์ของเราห้าประการลดค่าใช้จ่ายลงสองเท่าและลดผลกระทบต่อสิ่งแวดล้อมโดยรวมในเวลาเดียวกัน เราเชื่อว่าการโยกย้ายแอปพลิเคชันทั้งหมดของเราไปยัง Microsoft SQL Server ในปีหน้าจะให้ผลลัพธ์ที่ดียิ่งขึ้นและเพิ่มความสามารถในการแข่งขันในตลาดของเรา
เป็นนักการตลาดที่มีความเชี่ยวชาญเฉพาะทางและไม่ได้มีความหมายใด ๆ แต่ในทางเทคนิคแล้วนั้นมีค่าสำหรับฝ่ายบริหารและการตลาด
สุดท้ายเราสามารถเปรียบเทียบฐานข้อมูลประเภทต่าง ๆ ได้หรือไม่ ฉันจะบอกว่ามันเป็นไปได้โดยสิ้นเชิง สมมติว่าฉันมีเว็บไซต์ที่โฮสต์รูปภาพขนาดใหญ่ ภาพถ่ายเหล่านั้นถูกเก็บไว้ในvarbinary(max)
Microsoft SQL Server 2005 (ดังนั้นฉันไม่สามารถใช้filestream
) ฉันกังวลเกี่ยวกับประสิทธิภาพเมื่อโหลดรูปภาพเหล่านั้นดังนั้นฉันตัดสินใจที่จะเก็บรูปภาพเป็นไฟล์แทนโดยใช้ระบบไฟล์เป็นฐานข้อมูลใหม่ของฉัน ก่อนไฟล์เหล่านั้นจะถูกเก็บไว้ในเครื่องเดียวกันกว่าฐานข้อมูล ฉันโปรไฟล์โซลูชันใหม่และรับผลลัพธ์ที่แสดงว่าในกรณีของฉันไฟล์จะถูกโหลดเร็วกว่าระบบไฟล์จาก Microsoft SQL Server 4% มาตรฐานมีความชัดเจนมาก ตอนนี้ฉันสามารถนึกถึงการปรับใช้เซิร์ฟเวอร์เฉพาะที่ได้รับการปรับให้เหมาะสมสำหรับการจัดเก็บไฟล์โดยตรงแทนที่จะใช้เซิร์ฟเวอร์ที่ปรับให้เหมาะสมสำหรับ Microsoft SQL Server