Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
1171
Assunto : SQL Server
Titulo: Utilize NewSequentialID ao invés de NewID

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon


Utilizar GUIDs como chave primária em grandes sistemas, especialmente quando distribuidos por muitas bases de dados, pode ser uma boa idéia.

O GUID é único globalmente, então se precisarmos unir dados de diferentes servidores não teremos problemas com isso. Já enfrentei problemas com chaves Identity mal planejadas que posteriormente precisaram ser unidas, gerando muitos problemas operacionais. O GUID simplesmente resolve isso.

Quando criamos uma chave primária GUID, criamos uma constraint de Default com a função NewID para gerar o GUID, algo parecido com a seguinte tabela :

CREATE TABLE myTable (ColumnA uniqueidentifier DEFAULT NEWID());


Porém a função NewID gera GUID's totalmente aleatórios. Isso é ruim para a performance porque ela é mais lenta mas especialmente por causa do efeito disso no indice.

Para resolver esse problema podemos utilizar a função NewSequentialID, que cria um GUID sequencial e ainda assim com a garantia de ser globalmente único. Essa função é baseada na função UuidCreateSequential do windows, portanto é o próprio windows que irá controlar a sequencia dos IDs.

A sequencia dos ID's pode mudar quando o servidor reiniciar, porém o windows escolherá um outro intervalo totalmente diferente do utilizado anteriormente, garantindo que não haja conflito nos ID's.

Assim sendo, nossa tabela de exemplo passa a ficar da seguinte forma :

CREATE TABLE myTable (ColumnA uniqueidentifier DEFAULT NEWSequentialID());


Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
Nenhum comentário foi realizado ainda. Seja o primeiro !
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br