Pergunta

Eu tenho um marrom-campo de banco de dados SQL Server 2005 que utiliza padrão, GUIDs não triados como a maioria dos valores de chaves primárias e também em índices de cluster (que é ruim para o desempenho).

Como devo ir sobre como alterar estes para GUIDs seqüenciais? Um dos desafios seria substituir todos os valores da chave estrangeira como eu mudar cada chave primária.

Você sabe de quaisquer ferramentas ou scripts para executar este tipo de conversão?

Foi útil?

Solução

lembre-se que você só pode usar a função newsequentialid () como um padrão

para criar uma nova tabela com 2 colunas. Insira a chave de você tabela original em um presente (deixe a outra coluna fora ele vai encher-se)

juntar-se de volta para a tabela original e atualizar o PK com o newsequantialid, se você tem atualização em cascata as FKs deve atualizar por si

Outras dicas

Como você sabe que é ruim para o desempenho?

A vantagem de GUIDs é que você não precisa se preocupar com múltiplos processos de criação de registros ao mesmo tempo. Ele pode simplificar o seu código consideravelmente, dependendo do programa.

SequentialGuids são os melhores para o desempenho quando o Guid é a PK. Esta é a razão por trás de sua existência.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top