สถานการณ์:
- สองฐานข้อมูล: DB_A และ DB_Archive กับหนึ่งตารางใหญ่มากที่เรียกว่า tableA
- ทุกวันบันทึกที่เก่ากว่า 60 วันจะถูกลบออกจาก DB_A และย้ายไปที่ DB_Archive เป็นหลักเพื่อแยกสิ่ง "แยก" ออกเนื่องจาก tableA ถูกสอบถามอย่างหนักใน DB_A สำหรับบันทึกของ 2 เดือนที่ผ่านมา
ฉันต้องการกำจัดกระบวนการนี้เพราะมันช้าและสิ้นเปลืองทรัพยากรจำนวนมาก ฉันกำลังคิดที่จะนำตารางพาร์ติชั่นไปใช้บน DB_A ด้วยฟังก์ชั่นพาร์ติชั่นในคอลัมน์วันที่และเก็บบันทึกทั้งหมด <2 เดือนในหนึ่งพาร์ติชั่นและทุกเรคคอร์ด> 2 เดือนในอีกพาร์ติชันหนึ่ง คำถามของฉัน:
- สถานการณ์นี้จะทำงานเป็นอย่างไรถ้าฉันมีฐานข้อมูล 2 แบบ ถ้าฉันค้นหา tableA สำหรับบันทึก> getdate () - 30 จะอ่านพาร์ติชันเก็บถาวรหรือไม่
- ฉันคิดว่าฉันต้องแบ่งดัชนีด้วยใช่มั้ย
- ฉันจะจัดการกับความจริงที่ว่าในวันพรุ่งนี้ฟังก์ชั่นพาร์ทิชันของฉันจะ "เปลี่ยน" ฉันหมายความว่าถ้าฉันสร้างฟังก์ชั่นวันนี้ (วันที่ 2 กรกฎาคมช่วงของมันจะเป็นวันที่ 2 พฤษภาคม แต่พรุ่งนี้จะเป็นวันที่ 3 พฤษภาคม) ฉันสามารถสร้างฟังก์ชั่นพาร์ทิชันแบบไดนามิกได้หรือไม่?