Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marcos Venicio

Row GUID Column

Recommended Posts

Bom Dia pessoal,

 

Eu utilizo o SQL Server 2000/2005 a muitos anos e tem uma coisa que eu nao consigo entender e depois de muito pesquisar eu resolvi enviar a questao para um forum, olhando os foruns de vários sites, cheguei a este e vi que em termos de qualidade de perguntas/respostas trata-se de um dos melhores.

 

Para tanto e visando resolver a minha dúvida a pergunta é a seguinte:

 

1 - Em que casos usar o campo UniqueIdentifier?

2 - Para que serve a Row GUID Column?

 

 

Obrigado

 

 

Marcos Venicio

Compartilhar este post


Link para o post
Compartilhar em outros sites

1) UniqueIdentifier:

- Utilizado quando você nao quer controlar os codigos (id) via programacao, setando um campo para identity yes, este ira se autoincrementar em cada novo registro. (nao recomendado se sua aplicacao tera replicacao de dados).

- Nao existe nenhuma utilizacao mas especifica para isto e apenas uma utilidade de autoincremento. eu utilizo muito como chave primaria nas tabelas mestre .

 

 

2) Row GUID Column

 

GUID Global Unique Identify.

Quer dizer que se isto for setado para Yes, o SQL Criara uma chave unica que na teoria nao ira se repetir em nenhum BD do planeta.

 

Tire suas proprias conclusoes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao sou nenhum estudioso do SqlServer. Sou um simples usuario, portanto posso ter me enganado em algum ponto abaixo, mas caso encontre alguma informacao erronea, informe pois algumas pessoas usam essas info para tirar conclusoes, ok

 

somente para constar, ROWGUID é uma propriedade do campo onde voce fala para o BD que que aquele campo é o identificador unico da linha do tipo GUID. Apesar dessa informacao naum ser obrigatoria setar (mesmo o campo sendo UniqueIdentifier), se nao me engano, para utilizar dos recursos de replicacao de dados ele eh obrigatorio setar para que a replicacao trate essa informacao da forma correta.

 

Eu acredito que o ROWGUID que voce quis dizer, na verdade é o GUID... bom, vou considerar issso, ok:

 

vamos lá

GUID é a sigla para Globally Unique IDentifier... no caso, você está utilizando um identificador unico. Esse é o conceito.

 

No sql server, o tipo de dados que armazena essa informação é chamada de UniqueIdentifier. Esse campo é hexadecimal, de 16 bytes... um exemplo desse valor: A45E43CE-ACDB-4012-743B-49D35098FFFC

 

No sql server, a função que gera essa chave de 16bytes é a NEWID(). Essa funcao (diz a lenda) usa informacoes de memoria, trilha fisica no HD, data/hora/seg/miliseg, MAC Address, etc... e gera uma chave única. Na teoria, devido as características para a geracao da chave, ela é unica no servidor e (na teoria) em qq servidor (d~uvidas qto a isso, pergunte a MS).

 

Resumindo... os 2 sao a mesma coisa, certo. GUID eh o conceito (que pode ser aplicado em qq estrutura de BD).. e UniqueIdentifier é o tipo de campo onde o GUID é armazenado nos servidores SQL Server.

 

O que nosso amigo [Karepa] deve ter se enganado com o IDENTITY pois o nome é bem semelhante... esse sim que é o sequenciador que ele fala (semelhante ao SEQUENCE do Oracle)

 

Um exemplo de utilizacao:

 

já vi um caso de utilizacao de Guid, onde acredito q você irá se deparar....

 

quando vocë faz replicacao de dados, algumas tabelas, devido caracteristicas, nao possuem chave primarias... ou adm de BD preferem n"ao confiar nas primarykeys, e é criada uma coluna nas tabelas com a funcao de rowguid, onde ele usarã essa coluna como a chave primária da tabela. Dessa forma, ele usará essa informação para garantir a replicação de forma integra...

 

O bom de utilizar esse recurso, eh a garantia da informacao unica entre tabelas e servidores (porem nao manipulavel)... o ruim, eh a performance de busca, alem de armazenar um espaco muito grande (16Bytes).

 

Outro caso que ví, foi para fazer deduplicacao de dados... mas acho q nem vem ao caso explicar!

 

Bom... esperamos ter ajudado na sua dúvida!

 

abs!

e escuta Ska...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.