Pindahkan Kunci Utama ke Filegroup (SQL Server 2012)


14

Bagaimana saya bisa memindahkan kunci utama yang dikelompokkan ke filegroup baru? Saya sudah menemukan kemungkinan "algoritma" tetapi sangat tidak efisien:

  1. Drop diindeks non-clustered (mengharuskan mereka untuk resored dan dibangun kembali)
  2. Drop indeks berkerumun (mengharuskan seluruh tabel harus disembunyikan)
  3. Buat batasan kunci primer baru (operasi sortir besar)
  4. Buat semua indeks non-cluster (diperlukan pengurutan dan penulisan)

Apakah ada cara yang lebih efisien? Ini sangat tidak efisien dan akan memakan waktu lama karena tabel berukuran 50GB pada server yang lemah.

Apakah tidak ada cara untuk melewati semua ini dan hanya melakukan membangun kembali pada grup file baru? Itu tidak akan memerlukan penyortiran data.

Jawaban:


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

Ini mempertahankan properti PK logis meskipun tidak disebutkan dalam sintaksis.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.