Importação de dados. Banco extremamente grande.

SQL Server

30/06/2006

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

Foxcyber

Curtidas 0

Respostas

Rbarbosa75

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.


GOSTEI 0
Foxcyber

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

Foxcyber

30/06/2006

Ajuda ai pessoal.


GOSTEI 0
Foxcyber

Foxcyber

30/06/2006

De novo.


GOSTEI 0
Macario

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)


GOSTEI 0
Psergio.p

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

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

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.


GOSTEI 0
Psergio.p

Psergio.p

30/06/2006

Então você está importando DBF para o SQL Server?


GOSTEI 0
Macario

Macario

30/06/2006

Exato.


GOSTEI 0
Psergio.p

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

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

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

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

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

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.


GOSTEI 0
Wantuilcezar

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.


GOSTEI 0
Macario

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)


GOSTEI 0
POSTAR