Importação de dados. Banco extremamente grande.
Preciso fazer uma importação de dados de um banco SQL para outro SQL mesmo so que com uma estrutura diferente. O problema é: Esse banco de onde vou retirar os dados é simplismente gigante. Tem tabelas que possuem 3 milhões de registros. E esses dados crescem constantemente. E esse importador que vou fazer vai buscar os dados nesta base para importar todos os dias. Queria saber de vocês se tem alguma idéia de como eu posso fazer isso para que não fique tão devagar. As tabelas ja tem indices nos campos de pesquisa, mas a minha importação sempre fica lenta. O que vocês poderiam me sugerir para esta importação? Aceito todo tipo de ideia galera.
Foxcyber
Curtidas 0
Respostas
Rbarbosa75
30/06/2006
Voce poderia estar usando uma propria ferramenta do SQL Server para poder fazer esta importação do DTS - Data Transformation Services. para um melhor entendimento deste recurso no SQL Server vou te passar um endereço muito legal e com um material muito didatico
ai vai
http://www.imasters.com.br/artigo/1844/sql_server/dts_uma_ferramenta_para_facilitar_o_processo_de_etl
qualquer coisa me avise.
ai vai
http://www.imasters.com.br/artigo/1844/sql_server/dts_uma_ferramenta_para_facilitar_o_processo_de_etl
qualquer coisa me avise.
GOSTEI 0
Foxcyber
30/06/2006
Mas ha casos em que os dois banco não são iguais. Por isso essa ferramenta pra mim não deu certo. Mais idéias??? Será que ninguém nunca teve que lidar com um banco gigantesco assim?
GOSTEI 0
Foxcyber
30/06/2006
Ajuda ai pessoal.
GOSTEI 0
Foxcyber
30/06/2006
De novo.
GOSTEI 0
Macario
30/06/2006
Ola.
Estou na mesma situacao.
Voce conseguiu uma solucao?
Alguem tem alguma dica?
Sera que existe alguma opcao no SQL Server que se possa desabilitar/habilitar para que se tenha uma melhor performance na hora de fazer o Insert/Update.
grato pela atencao
8)
Estou na mesma situacao.
Voce conseguiu uma solucao?
Alguem tem alguma dica?
Sera que existe alguma opcao no SQL Server que se possa desabilitar/habilitar para que se tenha uma melhor performance na hora de fazer o Insert/Update.
grato pela atencao
8)
GOSTEI 0
Psergio.p
30/06/2006
Caro amigo, existem varias maneiras de solucionar seu problema porém para isso preciso de mais informações, por exemplo: quantas tabelas você quer importar? com que frequencia? qual a quantidade de registros? me manda por e-mail que analiso e com certeza poderei te ajudar!
GOSTEI 0
Psergio.p
30/06/2006
Analisando friamente você poderia montar um script para fazer o select dos dados e importar em outro servidor. Depois você poderia agendar a execução deste script no SQL Server Agent! Seria uma das maneiras! Você também poderia fazer pelo DTS (Data Transaformation Services). Enfim me passe mais informações que podemos juntos solucionar o seu problema!
GOSTEI 0
Macario
30/06/2006
Ola.
Ambiente: Delphi 6, dbExpress driver CoreLab 2.50.05, MSSQL2000
Esta importacao e referente a migracao de dbf/db para SQL, onde tenho entorno de 270 tabelas, a importacao sera efetuada poucas vezes(no caso ate que se tenha total integridade das informacoes).
Algumas tabelas estao entre 70MB a 350MB.
Hoje faco a importacao no ´braco´, mas dependendo da tabela demora cerca de 3 horas.
Nao posso usar o DTS pois como citado acima as estruturas nao conferem.
Grato pela atencao.
Ambiente: Delphi 6, dbExpress driver CoreLab 2.50.05, MSSQL2000
Esta importacao e referente a migracao de dbf/db para SQL, onde tenho entorno de 270 tabelas, a importacao sera efetuada poucas vezes(no caso ate que se tenha total integridade das informacoes).
Algumas tabelas estao entre 70MB a 350MB.
Hoje faco a importacao no ´braco´, mas dependendo da tabela demora cerca de 3 horas.
Nao posso usar o DTS pois como citado acima as estruturas nao conferem.
Grato pela atencao.
GOSTEI 0
Psergio.p
30/06/2006
Então você está importando DBF para o SQL Server?
GOSTEI 0
Macario
30/06/2006
Exato.
GOSTEI 0
Psergio.p
30/06/2006
Como você está obtendo acesso ao DBF pelo SQL Server? Com que frequencia você faz a importação? Você sempre importaa a tabela inteira ou somente os ultimos registros inseridos?
GOSTEI 0
Macario
30/06/2006
Como você está obtendo acesso ao DBF pelo SQL Server?
Faço acesso ao dbf via BDE, gero uma string com os dados(apos os mesmos terem sido tratados) e faço um insert no SQL via dbexpress.
Com que frequencia você faz a importação?
A importacao esta sendo efetuada para teste, pois como mencionei, estamos migrando o sistema, estamos importando todo dia.
Você sempre importaa a tabela inteira ou somente os ultimos registros inseridos?
Sempre a base completa, pois ja estamos pensando em quando a base for entrar em producao.
Aqui temos diversas bases, que veem de clientes que trabalham com ramos e regras de negocios diferentes. Por isso precisamos sempre estar trocando a base para testes, conforme avanca a migracao. E esta demora para importar esta atrapalhando.
Grato pela atencao.
GOSTEI 0
Psergio.p
30/06/2006
Eu tenho uma tabela no SQL Server com 2.000.000 de registros, vou fazer uma experiencia exportando os dados para dbf e depois importado novamente! Depois te digo qual a melhor maneira de fazer isso sem comprometer a performance!
GOSTEI 0
Psergio.p
30/06/2006
Eu tenho uma tabela no SQL Server com 2.000.000 de registros, vou fazer uma experiencia exportando os dados para dbf e depois importado novamente! Depois te digo qual a melhor maneira de fazer isso sem comprometer a performance!
GOSTEI 0
Psergio.p
30/06/2006
Eu tenho uma tabela no SQL Server com 2.000.000 de registros, vou fazer uma experiencia exportando os dados para dbf e depois importado novamente! Depois te digo qual a melhor maneira de fazer isso sem comprometer a performance!
GOSTEI 0
Macario
30/06/2006
Ola.
Uma observacao importante que esqueci de mencionar, as tabelas necessitam de tratamento devido a conversao dos campos. Existem campos que armazenam data mas estao em formato string(e ainda por cima gravam a data com ponto - 01.01.1900) sendo convertidos para datetime, outro tipo de conversao e campos float, tive problema com arredondamento de valor, campos float sao convertidos para numeric.
Uma observacao importante que esqueci de mencionar, as tabelas necessitam de tratamento devido a conversao dos campos. Existem campos que armazenam data mas estao em formato string(e ainda por cima gravam a data com ponto - 01.01.1900) sendo convertidos para datetime, outro tipo de conversao e campos float, tive problema com arredondamento de valor, campos float sao convertidos para numeric.
GOSTEI 0
Wantuilcezar
30/06/2006
Aqui na empresa onde trabalho tivemos que fazer algo parecido e usamos muito o DTS, da seguinte maneira:
Criamos um database no SQl de todas as tabelas que viriam do DBF com a mesma estrutura;
Fizemos um dts para fazer esta carga full sem regras, ou seja, da mesma forma que a informação estava em dbf ficaria em sql;
Após estas subidas era rodado todas as regras, eliminando inconsistencias e registros que não eram precisos;
Registros que não atendiam as regras eram movidos para tabelas com a mesma estrutura indicadas com _trash no final para que estes dados fossem analisados e os dados bons era inseridos nas tabelas destino.
Não tinhamos problema com esta importação pois antes de cada importação as tabelas eram truncadas e as mesmas não possuiam inidices, que causam certa lentidão nas importações, e o tempo maior era na execução das regras para separar dados válidos dos dados inválidos.
Espero ter ajudado.
Criamos um database no SQl de todas as tabelas que viriam do DBF com a mesma estrutura;
Fizemos um dts para fazer esta carga full sem regras, ou seja, da mesma forma que a informação estava em dbf ficaria em sql;
Após estas subidas era rodado todas as regras, eliminando inconsistencias e registros que não eram precisos;
Registros que não atendiam as regras eram movidos para tabelas com a mesma estrutura indicadas com _trash no final para que estes dados fossem analisados e os dados bons era inseridos nas tabelas destino.
Não tinhamos problema com esta importação pois antes de cada importação as tabelas eram truncadas e as mesmas não possuiam inidices, que causam certa lentidão nas importações, e o tempo maior era na execução das regras para separar dados válidos dos dados inválidos.
Espero ter ajudado.
GOSTEI 0
Macario
30/06/2006
Interessante estarei analisando esta opcao.
Em breve retornarei com uma indicacao do resultado.
Por enquanto agradeco a atencao de todos.
[]´s 8)
Em breve retornarei com uma indicacao do resultado.
Por enquanto agradeco a atencao de todos.
[]´s 8)
GOSTEI 0