Tenho um programa que faz isso. 
 
Como a base do programa legado é uma base em foxpro, optou-se por usar o 
proprio fox por questoes de performance... pois o fox acessa suas bases em dbf 
nativamente sem ter que passar por qualquer tipo de conversao em algum driver 
(seja odbc, jdbc, etc). Com esse tipo de approach o ganho de performance foi 
tão substancial (tb tentei fazer em java e em VB mas a performance era muito 
ruin) que esta valendo ate a pena a ultima milha lenta dentro do driver oledb.
 
Pra mim aqui, o melhor dos mundos seria fazer esses inserts funcionarem de 
forma mais rapida, pois toda a base do processo jah esta pronta e funcional. Eu 
li que o Copy ele nao faz uma porção de checagens e que ele acaba sendo muito 
mais rapido que os inserts por conta dele nao fazer varias checagens que os 
inserts fazem... minha intenção seria conseguir fazer uso dessa velocidade do 
comando copy, mas nao consigo fazer o bichim funcionar... na verdade, nem sei 
se é possivel isso (usar o comando copy de dentro do oledb).
 
Eu poderia muito bem gerar tabelas ou arquivos texto com os dados já acertados, 
mas na minha cabeça eu estaria adicionando mais "moving parts" no sistema, 
seria mais um ponto para ter falha e mais um roundtrip pra ficar checando se 
deu certo... por isso a insistencia de tentar fazer o copy funcionar.
 
Abracos,
Marcelo Magno
 
 

________________________________

De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Em nome de Sebastian Selau 
Webber Colombo
Enviada em: terça-feira, 3 de abril de 2007 14:16
Para: Grupo de Usuários do PostgreSQL no Brasil
Assunto: Re: [PostgreSQL-Brasil] RES: RES: performance


ta. mas como tu faz para "ler" os arquivos dbf?


On 4/3/07, Marcelo Magno <[EMAIL PROTECTED]> wrote: 

        No caso o Oledb eh o do postgresql, eu instancio dentro do loader esse 
objeto oledb do pg e por ele dou os comandos no banco do pg... 
         
        Abracos,
        Marcelo Magno

________________________________

        De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Em nome de Sebastian 
Selau Webber Colombo 
        Enviada em: terça-feira, 3 de abril de 2007 12:15
        Para: Grupo de Usuários do PostgreSQL no Brasil
        Assunto: Re: [PostgreSQL-Brasil] RES: performance
        
         
        
        existe oledb pra o dbf?
        
        
        On 4/3/07, Marcelo Magno <[EMAIL PROTECTED] > wrote: 

                rapaz, eh de dbf mesmo... mas pode ser de qualquer banco, basta 
conhecer bem os metadados de cada banco (mas nao vem ao caso agora)... 
                 
                Eu fiz aqui foi programar um loader, seguindo as dicas do 
pessoal da lista usando os metadados do foxpro (e até que ficou beeem 
legalzinho, tem varias regras pra fazer um load full toda noite e um 
incremental em alguns momentos do dia), mas o problema começa quando temos 
muitos registros, nesse ponto ele dah uma enlerdada pq a milha final do 
programa são inserts via driver OLEDB (tentei antes via ODBC mas era 
absurdamente mais lento). 
                 
                Por isso a  ideia de usar o COPY por dentro do OLEDB. Jah tenho 
uma infra toda programada fazendo tudo que eu preciso, o unico problema eh a 
ultima milha que esta lenta (os inserts). Se eu conseguisse resolver dessa 
forma seria perfeito pra mim... 
                 
                De qq forma, valeu ai pela dica, talvez numa proxima eu de uma 
olhada no ems...
                 
                Grande Abraco,
                Marcelo Magno
                
                 
________________________________

                De: [EMAIL PROTECTED] [mailto: [EMAIL PROTECTED] <mailto:[EMAIL 
PROTECTED]> ] Em nome de Sebastian Selau Webber Colombo
                Enviada em: terça-feira, 3 de abril de 2007 10:41 
                
                Para: Grupo de Usuários do PostgreSQL no Brasil
                Assunto: Re: [PostgreSQL-Brasil] performance
                

                 
                
                tu quer importar da onde(sql server, dbf's, access)?
                 
                pra importar os registros dos arquivos dbf gerados pelo visual 
fox pro, utilizo o EMS Data Pump, que é pago... existem outras ferramentas que 
fazem parte do contrib, eu acho pelo menos, como dbf2pg
                 
                Abraço
                
                 
                On 4/3/07, Marcelo Magno <[EMAIL PROTECTED] > wrote: 

                        Aproveitando o bonde da pergunta... a alguns dias atraz 
postei na lista uma mensagem sobre o uso do comando copy via drivers odbc e 
oledb. 
                         
                        Nao consigo uma maneira correta de fazer funcionar... 
alguem que já tenha implementado algo parecido poderia me dar um toque pra 
gente trocar uma ideia? 
                         
                        Hoje eu tenho um sistema que funciona bem usando 
inserts para fazer o load de uma base legada, mas se eu conseguisse diminuir o 
tempo final dessa transacao usando comandos copy seria o ideal pra mim. 
                         
                        Fico grato se alguem puder me dar uma bola,
                         
                        Grande Abraco,
                        Marcelo Magno

________________________________

                        De: [EMAIL PROTECTED] [mailto: [EMAIL PROTECTED] 
<mailto:[EMAIL PROTECTED]> ] Em nome de Rodrigo Hjort
                        Enviada em: segunda-feira, 2 de abril de 2007 20:49
                        Para: Grupo de Usuários do PostgreSQL no Brasil
                        Assunto: Re: [PostgreSQL-Brasil] performance 
                        
                         
                        Usar o COPY é a maneira mais rápida mesmo. Seria 
interessante você dar uma olhada no manual [1].
                        
                        [1] 
http://www.postgresql.org/docs/8.2/interactive/populate.html 
                        
                        -- 
                        Atenciosamente,
                        
                        Rodrigo Hjort
                        Icewall Tecnologias
                        http://www.icewall.com.br <http://www.icewall.com.br/>  
                        
                        
                        
                        2007/4/2, Diego Altheman dos Santos <[EMAIL 
PROTECTED]>: 

                                Pessoal,
                                Alguem conhece algum jeito mais rapido de 
importar arquivos csv pra base sem
                                ser pelo comando copy ?? Tenho alguns milhoes 
de registros e o processamento 
                                ta demorando muito com o copy...
                                


                         

                        _______________________________________________
                        Grupo de Usuários do PostgreSQL no Brasil
                        Antes de perguntar consulte o manual
                        http://pgdocptbr.sourceforge.net/
                        
                        Para editar suas opções ou sair da lista acesse a 
página da lista em:
                        http://pgfoundry.org/mailman/listinfo/brasil-usuarios
                        




                -- 
                Atenciosamente,
                Sebastian Selau Webber Colombo 

                _______________________________________________ 
                Grupo de Usuários do PostgreSQL no Brasil
                Antes de perguntar consulte o manual
                http://pgdocptbr.sourceforge.net/ 
                
                Para editar suas opções ou sair da lista acesse a página da 
lista em:
                http://pgfoundry.org/mailman/listinfo/brasil-usuarios 
                




        -- 
        Atenciosamente,
        Sebastian Selau Webber Colombo 

        _______________________________________________
        Grupo de Usuários do PostgreSQL no Brasil 
        Antes de perguntar consulte o manual
        http://pgdocptbr.sourceforge.net/
        
        Para editar suas opções ou sair da lista acesse a página da lista em: 
        http://pgfoundry.org/mailman/listinfo/brasil-usuarios
        




-- 
Atenciosamente,
Sebastian Selau Webber Colombo 
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios

Responder a