ดังนั้นให้ฉันนำหน้าด้วยการบอกว่าฉันไม่สามารถควบคุมการออกแบบฐานข้อมูลของฉันได้ทั้งหมดดังนั้นแง่มุมมากมายของระบบปัจจุบันจึงไม่สามารถเปลี่ยนแปลงได้ตามวัตถุประสงค์ของสถานการณ์นี้
ความคิดเห็นเกี่ยวกับวิธีที่เราคิดใหม่แง่มุมของการออกแบบน่าจะถูกต้อง แต่ไม่ช่วยเหลือ :)
ฉันมีตารางที่มีขนาดใหญ่มากกว้างประมาณ 150 ฟิลด์และแถวประมาณ 600 ม. ซึ่งขับเคลื่อนกระบวนการจำนวนมาก นี่คือสถานการณ์ในคลังข้อมูลดังนั้นเราจึงไม่มีการอัปเดต / แทรกใด ๆ นอกกระบวนการโหลดตามกำหนดเวลาดังนั้นจึงมีการจัดทำดัชนีอย่างหนัก
มีการตัดสินใจที่จะลองแบ่งพาร์ติชันตารางนี้และฉันมีความกังวลเกี่ยวกับการทำดัชนีตารางที่แบ่งพาร์ติชัน ฉันไม่มีประสบการณ์ในการแบ่งพาร์ติชันดังนั้นอินพุตหรือลิงก์ใด ๆ ที่ชื่นชม ฉันไม่สามารถค้นหาสิ่งที่ฉันเป็นบน BOL หรือ msdn โดยเฉพาะได้
ขณะนี้เราจัดกลุ่มในฟิลด์ที่เราจะเรียกIncidentKey
ซึ่งเป็นvarchar(50)
และไม่ซ้ำกัน - เราสามารถมีได้ระหว่าง 1-100 รายการด้วยเหมือนกันIK
(ไม่มีความคิดเห็นโปรด) เรามักจะได้รับข้อมูลใหม่ในIncidentKey
บันทึกเก่า ๆดังนั้นจึงไม่ต่อเนื่องกัน
ฉันเข้าใจว่าฉันต้องรวมฟิลด์พาร์ติชันIncidentDate
ของฉันไว้ในคีย์ดัชนีคลัสเตอร์เพื่อให้พาร์ติชันทำงานได้อย่างถูกต้อง IncidentKey, IncidentDate
ฉันคิดว่ามันจะเป็น
คำถามคือกลไกของดัชนีแบบคลัสเตอร์จะทำงานกับคีย์ 2 ส่วนในตารางที่แบ่งพาร์ติชันได้อย่างไรหากเร็กคอร์ดในพาร์ติชัน "ใหม่" ควรอยู่หน้าเร็กคอร์ดในพาร์ติชัน "เก่า" ในดัชนีคลัสเตอร์
ตัวอย่างเช่นฉันมี 5 บันทึก:
IncidentKey Date
ABC123 1/1/2010
ABC123 7/1/2010
ABC123 1/1/2011
XYZ999 1/1/2010
XYZ999 7/1/2010
ถ้าฉันได้รับการบันทึกสถิติใหม่สำหรับABC123, 2/1/2011
มันจะต้องอยู่ในดัชนีคลัสเตอร์ก่อน XYZ999, 1/1/2010
มันทำงานอย่างไร
ฉันสมมติว่าการแตกแฟรกเมนต์และพอยน์เตอร์ แต่ฉันไม่พบข้อมูลใด ๆ บนที่เก็บข้อมูลจริงและการกำหนดค่าของดัชนีคลัสเตอร์ที่ไม่ได้แบ่งพาร์ติชันบนตารางที่แบ่งพาร์ติชันด้วยคีย์แบบสองส่วน