Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ruiz

SQL Loader

Recommended Posts

Gostaria de alguma documentação a respeito do SQL Loader. Existem vários parametros que podem ser utilizados, e eu gostaria de entender o que significa cada um deles.Alias, eiste algum parametro que faça com que o loader realize commit em um determinado intervalo de operações.Quando utilizo o modo Replace, o loader realiza um delete, e somente após completar todas as exclusões ele faz o commit, correto? É possivel alterar esse modo de execução?Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela resposta.Eu li o texto mas ainda fiquei com dúvidas. Os parametros que estou utilizando no SQLLoader são os seguintes: errors=1000000 bindsize=5242880 readsize=5242880 rows=5000Pelo que observei, o rows=5000 indicaria o intervalo de registros onde seria realizado o commit.A minha área de rollback tem 4.5 GB. E estou manipulando 20 milhoes de registros aproximadamente.Eu deveria reduzir o parametro rows? Além da queda de performance, temos algum outro agravante ao utilizar o parametro ROWS com valor reduzido?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ruiz,No SQL*LOADER você tem algumas maneiras para realizar um tuning:- Dependendo da quantidade de memória que você tem na maquina, aumente o readsize para 100M ou 200M.- Caso a tabela de destino não tenha campos LONG ou BLOBS, use o parâmetro direct=true- Caso a maquina tenha mais que 1 processador, poderá utilizar o parâmetro parallel para ser mais rápido.Aumentar o tamanho de rollback (undo), também pode melhorar a carga de dados.Abraços,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa!!

 

Fiz pequena documentação bastante simples que pode incrementar nos seus estudos:

 

 

SQLLOADER é uma ferramenta produzida pela Oracle, que permite ao usuário do SGBD importar dados de um TXT para dentro de suas próprias tabelas em alta velocidade. Para que isso seja possível, é necessário que os registros encontrados dentro do arquivo TXT sejam posicionados um a cada linha, e as colunas podem ficar separadas por vírgulas ou simplesmente ficar em uma linha contínua sem qualquer separação com um tamanho fixo.

 

Para que seja possível a migração dos dados são necessários a criação de dois arquivos, para que o SQLLOADER reconheça o que deve ser feito. O primeiro seria um arquivo com extensão .dat (Ex.:arquivo.dat) onde armazena todos os registros que serão importados, e o segundo seria um arquivo .clt (EX.:arquivo.clt) onde se configura o mapeamento da tabela que será poupulada. A seguir serão demonstrados alguns exemplos.

 

 

----------------------------------------------------------------------------------------------------------------------------

EXEMPLO DE UM ARQUIVO .DAT

----------------------------------------------------------------------------------------------------------------------------

Este primeiro exemplo mostra os dados em uma linha contínua, onde os 4(quatro) primeiros caracteres são destinados ao codigo do usuario, os 31(trinta e um) carateres sucessores do codigo dizem respeito ao nome do usuário e os 8(oito) caracteres sucessores do nome diz respeito a data de nascimento do usuario.

 

-->0001FORUM DE BD ORACLE DO IMASTERS07051986

 

Este segundo exemplo é mais simples de perceber cada coluna de um registro, pois as mesmas são separadas por vírgulas.

 

-->0001,FORUM DE BANCO DE DADOSIMASTERS,07051986

 

 

----------------------------------------------------------------------------------------------------------------------------

EXEMPLO DE UM ARQUIVO .CLT

----------------------------------------------------------------------------------------------------------------------------

O exemplo abaixo é usado quando os registros do arquivo .dat são postos um a cada linha e as colunas não são separadas por nada simplesmente ficam coladas com as colunas vizinhas. (Ex.: 0001FORUM DE BANCO DE DADOSIMASTERS07051986)

 

LOAD DATA --------------------------------- Início de um novo carregamento de dados.

INFILE 'arquivoAcarregar.DAT' ---------- O nome do arquivo de dados que se deseja carregar.

INSERT --------------------------------- Usado para determinar que se deseja inserir em uma tabela.

INTO TABLE testUser ------------------------ Determina qual tabela será inserida os dados.

 

(iduser POSITION(1:4) CHAR(04),

nmuser POSITION(5:35) CHAR(31),

dtNascimento POSITION(36:43) CHAR(08))

 

 

 

Este outro exemplo é utilizado quando os registros do arquivo .dat são postos um a cada linha e as colunas são separadas por vírgulas. (Ex.:0001,FORUM DE BANCO DE DADOSIMASTERS,07051986)

 

LOAD DATA --------------------------------- Início de um novo carregamento de dados.

INFILE 'arquivoAcarregar.DAT' ---------- O nome do arquivo de dados que se deseja carregar.

INSERT --------------------------------- Usado para determinar que se deseja inserir em uma tabela.

INTO TABLE testUser ------------------------ Determina qual tabela será inserida os dados.

FIELDS TERMINATED BY ','

 

(iduser,nmuser,dtNascimento)

 

 

----------------------------------------------------------------------------------------------------------------------------

EXECUTANDO O SQLLOADER VIA LINHA DE COMANDO (DOS)

----------------------------------------------------------------------------------------------------------------------------

sqlldr userid=usuario\senha@sid control=arquivo.clt log=arquivo.log

 

obs.: antes de executar os comandos para o carregamento deve ter sido criada a tabela de acordo com o arquivo .clt

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.