Os problemas são reais e acho que por isso o Oracle implementa o
conceito de sequências. Quando se cria uma sequência pode-se dizer a
partir de qual número a geração irá começar e a geração do número não
precisa de nenhum bloqueio, é uma função otimizada dentro do banco.



Em 13/05/05, Eduardo E. J. Menoncello<[EMAIL PROTECTED]> escreveu:
> João Paulo,
> 
> Vamos para a Importação e Exportação, nos dois casos, tanto dentro do
> mesmo BD quanto migrando ela tem problemas.
> A menos que você crie uma rotina que nosso colega sugeriu, por exemplo:
> Eu tenho um código interno de um produto de valor 350, quando eu vou
> incluir ele com auto-incremento, como posso chegar a esse número?
> Eu poderia criar uma rotina pra ir gerando até o número 350. Mas eu to
> falando de só 350, imagine se o código for 123456, imagina o tempo que
> levaria para chegar a esse número.
> Em um outro caso, se por acaso no banco de dados primeiro importar o 355
> que veio numa remessa anterior e depois chegasse o 350? Acabaria sem
> importar.
> E a pior das hipóteses seria se o código utilizado pelo cliente contiver
> letras, o que não é raro.
> 
> A solução mais lógica, seria criar 2 códigos, um interno, que até pode
> ser auto-incremento, pq só existirá no banco de dados atual, e o outro o
> externo, que poderia ser alterado a vontade pelo usuário, além de poder
> conter letras. Quando você exportar, ele será o código que sairá no
> arquivo, e o interno não, será encapsulado no próprio banco.
> 
> Quanto à performance, claro, tudo é relativo. Mas já trabalhei em
> sistemas que tinha um alto nível de inclusão e eles tinham um sério
> problema de performance, porque sempre que você grava no banco, ele tem
> que alterar uma variável e gravá-la também. Então, além de acabar
> gerando um tráfego a mais na rede, também tem o esquema da fila, porque
> se 1000 incluírem ao mesmo tempo, o auto-incremento irá travar até que
> seja liberado um por um.
> 
> Então para solucionar o problema, e até não ter que ficar esperando o
> retorno do banco de dados com o ID, a solução seria implementar um ID
> que gere com o instante atual (em milisegundos) e ainda com um número
> aleatório grande, para você ter absoluta certeza de que não irá incluir
> o mesmo ID. E como já havia discutido na lista à um tempo atrás, o GUID
> ou algo baseado nele, percebi que é a solução mais viável.
> 
> []'s
> 
> Eduardo E. J. Menoncello
> 
> -----Mensagem original-----
> De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED]
> Em nome de João Paulo Linhares Gonçalves
> Enviada em: quinta-feira, 12 de maio de 2005 09:43
> Para: delphi-br@yahoogrupos.com.br
> Assunto: Re: RES: [delphi-br] Auto-Incremento
> 
> Olá,
> 
> Que tipo de problemas de importação e exportaçãovc está falando ? Isso
> é dentro do mesmo banco de dados ou migrando de um banco para outro ?
> 
> E os problemas de performance ? pq o gargalo na gravação dos dados ?
> Que tipo de auto-incremento gera tal gargalo ?
> 
> Em 12/05/05, Eduardo E. J. Menoncello<[EMAIL PROTECTED]>
> escreveu:
> > Paulo,
> >
> > Sinceramente, eu ainda não consegui achar as vantagens, então vou
> dizer
> > as desvantagens...
> > No auto-incremento, você tem problemas com importação e exportação,
> você
> > terá que criar um algoritmo pra achar a tabela relacionada, pode
> ocorrer
> > problemas de performance, porque se cria um gargalo na gravação dos
> > dados.
> >
> > Sugestão:
> > Como eu mesmo pedi informações por aqui, crie um campo inteiro, ou
> > string, e decomponha-o,  de forma que você consiga guardar nele o
> > momento atual e um número relativamente grande aleatório. Por que?
> Para
> > que você não precise acessar o banco para criar a chave, ele no
> momento
> > que gravar já terá uma chave única. E com isso, reduzirá e muito o
> > gargalo do sistema.
> >
> > Abraços
> >
> > Eduardo E. J. Menoncello
> >
> > -----Mensagem original-----
> > De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED]
> > Em nome de Info Desenvolvimento
> > Enviada em: quinta-feira, 12 de maio de 2005 09:27
> > Para: delphi-br@yahoogrupos.com.br
> > Assunto: [delphi-br] Auto-Incremento
> >
> > Alguém pode me responder quais as vantagens e as desvantagens em se
> > trabalhar com Auto-Incremento?
> >
> > PAULO FERNANDES
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> > --
> > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
> >
> > Para ver as mensagens antigas, acesse:
> > http://br.groups.yahoo.com/group/delphi-br/messages
> >
> > Para falar com o moderador, envie um e-mail para:
> > [EMAIL PROTECTED] ou [EMAIL PROTECTED]
> >
> > Yahoo! Grupos, um serviço oferecido por:
> >
> >
> <http://br.rd.yahoo.com/SIG=12af2u49k/M=264379.5078783.6203979.1588051/D
> >
> =brclubs/S=2137111264:HM/EXP=1115908131/A=2191897/R=0/SIG=10vqa2grn/*htt
> > p:/br.diversao.yahoo.com/>
> >
> >
> <http://br.rd.yahoo.com/SIG=12af2u49k/M=264379.5078783.6203979.1588051/D
> >
> =brclubs/S=2137111264:HM/EXP=1115908131/A=2191897/R=1/SIG=10vqa2grn/*htt
> > p:/br.diversao.yahoo.com/>
> > São Paulo    Rio de Janeiro    Curitiba    Porto Alegre    Belo
> > Horizonte    Brasília
> >
> >  _____
> >
> > Links do Yahoo! Grupos
> > *         Para visitar o site do seu grupo na web, acesse:
> > http://br.groups.yahoo.com/group/delphi-br/
> >
> > *         Para sair deste grupo, envie um e-mail para:
> > [EMAIL PROTECTED]
> > <mailto:[EMAIL PROTECTED]>
> >
> > *         O uso que você faz do Yahoo! Grupos está sujeito aos Termos
> do
> > <http://br.yahoo.com/info/utos.html>  Serviço do Yahoo!.
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> > --
> > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
> >
> > Para ver as mensagens antigas, acesse:
> > http://br.groups.yahoo.com/group/delphi-br/messages
> >
> > Para falar com o moderador, envie um e-mail para:
> > [EMAIL PROTECTED] ou [EMAIL PROTECTED]
> >
> > Links do Yahoo! Grupos
> >
> >
> >
> >
> >
> 
> --
> João Paulo L.G.
> [EMAIL PROTECTED]
> 
> --
> <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
> 
> Para ver as mensagens antigas, acesse:
> http://br.groups.yahoo.com/group/delphi-br/messages
> 
> Para falar com o moderador, envie um e-mail para:
> [EMAIL PROTECTED] ou [EMAIL PROTECTED]
> 
>  _____
> 
> Links do Yahoo! Grupos
> *         Para visitar o site do seu grupo na web, acesse:
> http://br.groups.yahoo.com/group/delphi-br/
> 
> *         Para sair deste grupo, envie um e-mail para:
> [EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>
> 
> *         O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
> <http://br.yahoo.com/info/utos.html>  Serviço do Yahoo!.
> 
> [As partes desta mensagem que não continham texto foram removidas]
> 
> --
> <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
> 
> Para ver as mensagens antigas, acesse:
> http://br.groups.yahoo.com/group/delphi-br/messages
> 
> Para falar com o moderador, envie um e-mail para:
> [EMAIL PROTECTED] ou [EMAIL PROTECTED]
> 
> Links do Yahoo! Grupos
> 
> 
> 
> 
> 


-- 
João Paulo L.G.
[EMAIL PROTECTED]




-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a