[firebase-br] Chave primaria Guid

Rodrigo Gomes da Silva rodrgomes em gmail.com
Domingo Março 14 16:15:40 -03 2021


Não é melhor usar como char(16) charset NONE mesmo? Pois como o Cantu
falou, não tem nada especial no indice de octets... E com none, nem mesmo
tem algum tratamento de charset na string pra fazer ter alguma diferença
(minima) de performance.

Em sáb., 13 de mar. de 2021 às 19:00, Carlos Wilson via lista <
lista em firebase.com.br> escreveu:

> Vou ler o artigo sim, mas a questão de ter um char ou varchar acima de
> 16 posiçoes pelo que vi em outros estudos é a lentidão dos índices.
> Conforme a tabela cresce o desempenho fica horrível segundo os artigos
> que li. a vantagem do char(16) octects é que tem o mesmo desempenho de
> um indice inteiro de 128 bits, portanto melhor pra PK e FK.
>
> Mas está tudo no campo da teoria ainda, pois nem consegui fazer funcionar.
>
> Obrigado.
>
> []'s
> Carlos Wilson
> Formosystem
> Informática e Automação Comercial
>
> Em 13/03/2021 17:06, Mário Reis via lista escreveu:
> > Bem recomendo a leitura do link:
> > https://firebirdsql.org/refdocs/langrefupd25-intfunc-gen_uuid.html
> > Já usei com MSSSQLSERVER e guardava numa varchar(35) salvo erro. Já foi
>> > 4 anos já não lembro bem
> > Com os meus melhores cumprimentos
> > Mário Agostinho Reis
> > 919262146
> >
> > Esta mensagem contém informação de natureza confidencial e é
> > exclusivamente dirigida ao(s) destinatário(s) indicado(s). Se, por
> engano,
> > receber este email agradecemos que não o copie nem o reenvie e que nos
> > notifique do ocorrido através do email de resposta.
> > [image: cloudHQ] <https://www.free-email-tracker.com> Powered by
> > cloudHQ <https://www.free-email-tracker.com>
> >
> >
> > Marcelo - MK Softwares via lista <lista em firebase.com.br> escreveu no dia
> > sexta, 12/03/2021 à(s) 22:58:
> >
> >> Nessa questão de leitura o C# faz bem tranquilo, usando a dll
> >> FirebirdSql.Data.FirebirdClient. É só declarar uma propriedade em uma
> >> class com o tipo Guid e fazer a leitura/gravação no banco sem problemas
> >> algum.
> >>
> >> Agora se usar em string como o Cantu sugeriu, retorna erro de leitura
> >> gravação. Tentamos dessa forma mas sem sucesso, e só conseguimos
> >> solucionar quando mudamos o field para esse domain que compartilhei
> >> anteriormente.
> >>
> >>
> >> Em 12/03/2021 20:32, Carlos H. Cantu via lista escreveu:
> >>> Acredito que você tenha que usar um string e não TBytes.
> >>>
> >>> []s
> >>> Carlos H. Cantu
> >>> eBook Guia de Migração para o FB 3 - www.firebase.com.br/guiafb3.php
> >>> www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br
> >>>
> >>> CWvl> Criei desse mesmo jeito no banco, a questão é na aplicação pra
> ler
> >> esse
> >>> CWvl> dado.
> >>>
> >>>
> >>> CWvl> []'s
> >>> CWvl> Carlos Wilson
> >>> CWvl> Formosystem
> >>> CWvl> Informática e Automação Comercial
> >>>
> >>> CWvl> Em 12/03/2021 15:57, Marcelo - MK Softwares via lista escreveu:
> >>>>> Aqui usamos C# e para resolver os problemas com guid, criamos esse
> >>>>> domain, e funciona bem tranquilo.
> >>>>>
> >>>>> CREATE DOMAIN UUID AS CHAR(16) CHARACTER SET OCTETS COLLATE OCTETS;
> >>>>>
> >>>>>
> >>>>> Em 12/03/2021 15:44, Carlos Wilson via lista escreveu:
> >>>>>> Boa tarde a todos,
> >>>>>>
> >>>>>> Atravessei a madrugada pesquisando e não achei solução para o meu
> >>>>>> problema. Utilizo o Unidac.
> >>>>>>
> >>>>>> Devido a tantos problemas com replicação e outros em sincronizar
> >>>>>> bancos de várias filiais estou tentando migrar minhas PK para GUID
> >>>>>>
> >>>>>> depois de estudar em alguns lugares vi que a pk tem que ser criada
> >>>>>> como Char(16) Octates. Dessa maneira a pk é gravada como bytes
> >>>>>> binarios e o desempenho fica melhor ao indexar e usar como FK.
> >>>>>>
> >>>>>> No delphi fiz essa função para preenchimento da chave.
> >>>>>>
> >>>>>> function Tdm.IncUUID: TBytes;
> >>>>>> var
> >>>>>>     qry: TUniQuery;
> >>>>>> begin
> >>>>>>     qry := TUniQuery.Create(Self);
> >>>>>>     qry.Connection := DBConn1;
> >>>>>>     qry.SQL.Clear;
> >>>>>>     qry.SQL.Add('select GEN_UUID() from RDB$DATABASE');
> >>>>>>     qry.Open;
> >>>>>>     Result := qry.Fields[0].AsBytes;
> >>>>>>     qry.Free;
> >>>>>> end;
> >>>>>>
> >>>>>> Ao fazer o append ele chama essa função e parece que está
> >>>>>> preenchendo. porém ao dar um post, acontece a excessao:
> >>>>>>
> >>>>>> Could not convert variant of type (array byte) into type (integer).
> >>>>>>
> >>>>>> Atualizei o Unidac mas o erro persiste, mas não sei mais o que posso
> >>>>>> fazer. Alguém, por favor, pode me dar uma luz?
> >>>>>>
> >>>>>> Grato.
> >>>>>>
> >>>>> ______________________________________________
> >>>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> >>>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
> >>>>> http://www.firebase.com.br/fb/artigo.php?id=1107
> >>>>> Para consultar mensagens antigas:
> >>>>> http://www.firebase.com.br/pesquisa_lista.html
> >>> CWvl> ______________________________________________
> >>> CWvl> FireBase-BR (www.firebase.com.br) - Hospedado em
> >> www.locador.com.br
> >>> CWvl> Para saber como gerenciar/excluir seu cadastro na lista, use:
> >>> CWvl> http://www.firebase.com.br/fb/artigo.php?id=1107
> >>> CWvl> Para consultar mensagens antigas:
> >>> CWvl> http://www.firebase.com.br/pesquisa_lista.html
> >>>
> >>>
> >>> ______________________________________________
> >>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> >>> Para saber como gerenciar/excluir seu cadastro na lista, use:
> >> http://www.firebase.com.br/fb/artigo.php?id=1107
> >>> Para consultar mensagens antigas:
> >> http://www.firebase.com.br/pesquisa_lista.html
> >> ______________________________________________
> >> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> >> Para saber como gerenciar/excluir seu cadastro na lista, use:
> >> http://www.firebase.com.br/fb/artigo.php?id=1107
> >> Para consultar mensagens antigas:
> >> http://www.firebase.com.br/pesquisa_lista.html
> >>
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas:
> http://www.firebase.com.br/pesquisa_lista.html
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas:
> http://www.firebase.com.br/pesquisa_lista.html
>


Mais detalhes sobre a lista de discussão lista