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

<*> 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