Como substituir todos os GUIDs não sequenciais com os seqüenciais?
-
06-07-2019 - |
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?
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.