การปรับประสิทธิภาพสำหรับตารางขนาดใหญ่ (SQL Server 2008 R2)


14

ข้อมูลประกอบ:
ฉันมีตารางความจริงในระยะเอือด วัตถุประสงค์ในการโหลดข้อมูล 5 ปีใน Prod (คาดว่าจะมีขนาด 400 ล้านระเบียน) ขณะนี้มีข้อมูลทดสอบเพียง 2 ปี

คุณสมบัติตาราง:

  1. ไม่มีขนาด ~ 45
  2. มาตรการ ~ 30
  3. มาตรการที่ไม่ใช่สารเติมแต่งและคอลัมน์อื่น ๆ ~ 25
  4. ขนาดข้อมูลปัจจุบัน ~ 200 ล้าน (ข้อมูล 2 ปี)
  5. มุมมองเวลา: มุมมองเดือนที่แตกต่างกัน 3 แบบ: การคลัง / ปฏิทิน / ปรับ (เช่นแถวเดียวกันอาจอยู่ในเดือนที่ต่างกันโดยขึ้นอยู่กับว่ามุมมองใดที่กำลังมองหา)
  6. ผู้ใช้ต้องเรียกดูครั้งละหนึ่งมุมมอง (เช่น. จะมีการใช้คอลัมน์เดือนเดียวเท่านั้นในแบบสอบถามซึ่งจะทำให้เราต้องทำการแบ่งพาร์ติชันตามเวลา)
  7. ดัชนี: 1 ดัชนีกลุ่มบนคีย์ธรรมชาติ (8 คอลัมน์) สร้างขึ้น 3 ครอบคลุมดัชนีที่ไม่ได้ทำคลัสเตอร์หนึ่งคอลัมน์ในแต่ละคอลัมน์เดือนรวมถึงมิติ SKs (FKs) และการวัดทั้งหมด)
  8. ดัชนีมีขนาดใหญ่ (รวม 190 GB) เนื่องจากสิ่งนี้
  9. พื้นที่ไม่ จำกัด (จัดสรร 1 TB)
  10. RAM 64 GB มีอยู่ในเซิร์ฟเวอร์
  11. การบีบอัดตารางก็ทำได้เช่นกัน

ความต้องการ:
แบบสอบถามในตารางข้อเท็จจริงนี้ควรให้ผลลัพธ์ภายใน 30 วินาที (ข้อความค้นหาทั่วไปเลือกผลรวม (การวัด) เข้าร่วมกลุ่ม Dims บางกลุ่มตามค่า Dim) รายงานจะทำโดยตรงที่ด้านบนของตารางข้อเท็จจริงนี้

ปัญหา:
แบบสอบถามใด ๆ ที่มีคอลัมน์ที่มีอยู่ในดัชนีทำงานได้ดี แต่ถ้าเรารวมคอลัมน์อื่น ๆ ที่ไม่ได้อยู่ใน ... ใช้เวลามากกว่า 5-10 นาที ใครช่วยแนะนำวิธีแก้ปัญหาที่มันทำงานได้ดีสำหรับมิติ / คอลัมน์ใด ๆ ที่เราเลือก ดัชนีดูความช่วยเหลือในสถานการณ์นี้ได้ไหม

คำตอบ:


6

อัปเกรดเป็น SQL Server 2012 และใช้คอลัมน์ร้านค้า พวกเขาเจริญเติบโตในข้อกำหนดเหล่านี้ ดาวน์โหลดรุ่นทดลองใช้อย่างจริงจังและลองดู ดร็อปดัชนีทั้งหมดดร็อปดัชนีคลัสเตอร์เพียงเพิ่มดัชนี columnstore ที่ไม่ใช่คลัสเตอร์ในทุกคอลัมน์และทำให้เป็นวน ฉันเคยเห็นกรณีเช่นเดียวกับคุณที่ลดเวลาดำเนินการลงเหลือ 2-3 วินาทีส่วนใหญ่เป็นเพราะการกำจัดเซ็กเมนต์เตะเข้ามาบางส่วนอ่านเพิ่มเติม:


0

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

วิธีการใช้งาน SSD


ข้อมูลจะถูกอัพเดททุกเดือน ใช้เวลานานเท่าใดในการอัปเดตมุมมอง

หากข้อความค้นหาที่มีอยู่ของคุณใช้เวลา 5-10 นาทีมุมมองที่มีการจัดทำดัชนีจะใช้เวลา 5-10 นาที เมื่อเสร็จแล้วเมื่อคุณเรียกใช้แบบสอบถามเดียวกันมันจะกลับมาราวกับว่ามันออกมาจากตาราง (เช่นทันที) มุมมองที่มีการจัดทำดัชนีจะเรียกใช้บิตของ SQL ล่วงหน้า หากคุณส่ง SQL ที่ตรงกับมันจะนำมาจากมุมมองที่มีการจัดทำดัชนีแทนที่จะเรียกใช้ทั้งหมดอีกครั้ง ข้อได้เปรียบที่สำคัญของมุมมองที่จัดทำดัชนีคือคุณไม่จำเป็นต้องเปลี่ยนข้อความค้นหาที่มีอยู่พวกเขาจะใช้มันโดยอัตโนมัติ ข้อเสียคือคุณต้องสร้างชุดค่าผสมที่แตกต่างกันเล็กน้อย
Nick.McD เงือก

แต่ฉันไม่แนะนำให้คุณสร้างมุมมองที่จัดทำดัชนีไว้หลายรายการเพื่อเพิ่มความเร็ว - คุณจะหมดเวลาและพื้นที่ดิสก์ในที่สุด มันอาจเป็นเพียงเรื่องเดียวที่จะใส่คลังแสงของคุณ
Nick.McD เงือก

และโปรด ... ดูที่คอลัมน์ตามที่แนะนำ!
Nick.McD เงือก
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.