Mover clave principal al grupo de archivos (SQL Server 2012)


14

¿Cómo puedo mover una clave primaria en clúster a un nuevo grupo de archivos? Ya he encontrado un posible "algoritmo" pero es terriblemente ineficiente:

  1. Descarte indexado no agrupado (requiere que se recurran y reconstruyan)
  2. Descartar índice agrupado (requiere que se recurra a toda la tabla)
  3. Crear nueva restricción de clave primaria (operación de clasificación enorme)
  4. Crear todos los índices no agrupados (se requiere ordenar y escribir)

¿Hay alguna forma más eficiente? Esto es terriblemente ineficiente y llevará mucho tiempo ya que la mesa tiene un tamaño de 50 GB en un servidor débil.

¿No hay una manera de omitir todo esto y simplemente reconstruir un nuevo grupo de archivos? Eso no requeriría ninguna clasificación de datos.

Respuestas:


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

Esto preserva la propiedad PK lógica a pesar de que no se menciona en la sintaxis.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.