Mover chave primária para o grupo de arquivos (SQL Server 2012)


14

Como mover uma chave primária em cluster para um novo grupo de arquivos? Eu já encontrei um possível "algoritmo", mas é terrivelmente ineficiente:

  1. Eliminar indexados não agrupados em cluster (requer que eles sejam recolocados e reconstruídos)
  2. Eliminar índice agrupado (requer que toda a tabela seja usada)
  3. Criar nova restrição de chave primária (operação de classificação enorme)
  4. Crie todos os índices não agrupados em cluster (classificação e gravação necessárias)

Existe uma maneira mais eficiente? Isso é terrivelmente ineficiente e levará muito tempo, pois a tabela tem 50 GB de tamanho em um servidor fraco.

Não existe uma maneira de pular tudo isso e apenas reconstruir um novo grupo de arquivos? Isso não exigiria nenhuma classificação de dados.

Respostas:


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

Isso preserva a propriedade PK lógica, apesar de não ter sido mencionada na sintaxe.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.