ย้ายคีย์หลักไปยังกลุ่มไฟล์ (SQL Server 2012)


14

ฉันจะย้ายคีย์หลักแบบคลัสเตอร์ไปยังกลุ่มไฟล์ใหม่ได้อย่างไร ฉันได้พบ "อัลกอริทึม" ที่เป็นไปได้แล้ว แต่มันไม่มีประสิทธิภาพอย่างน่ากลัว:

  1. วางดัชนีที่ไม่ได้ทำคลัสเตอร์ (ต้องการให้สร้างใหม่และสร้างใหม่)
  2. ดร็อปดัชนีแบบคลัสเตอร์ (ต้องใช้ทั้งตารางเพื่อนำไปใช้)
  3. สร้างข้อ จำกัด คีย์หลักใหม่ (การดำเนินการเรียงลำดับขนาดใหญ่)
  4. สร้างดัชนีที่ไม่ทำคลัสเตอร์ทั้งหมด (จำเป็นต้องมีการเรียงลำดับและการเขียน)

มีวิธีที่มีประสิทธิภาพมากกว่านี้ไหม? สิ่งนี้ไม่มีประสิทธิภาพอย่างน่ากลัวและใช้เวลานานเนื่องจากตารางมีขนาด 50GB บนเซิร์ฟเวอร์ที่อ่อนแอ

ไม่มีวิธีที่จะข้ามสิ่งเหล่านี้ทั้งหมดและสร้างใหม่ในกลุ่มไฟล์ใหม่หรือไม่ ที่จะไม่ต้องเรียงลำดับข้อมูลใด ๆ

คำตอบ:


24
CREATE UNIQUE CLUSTERED INDEX Your_PK_Name
    ON YourTable(YourColumnList)
WITH (DROP_EXISTING =  ON )
ON [YourOtherFileGroup]

สิ่งนี้จะรักษาคุณสมบัติ PK แบบโลจิคัลแม้ว่าจะไม่ถูกกล่าวถึงในไวยากรณ์

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