Pesquisar

Quem sou eu

Minha foto
Formado em Tecnologia de Processamento de Dados pela FESP-Paraná. Pós-graduado em Administração em Informática e Administração de Banco de Dados pela FESP-Paraná. Certificação ORACLE/OCA e DB2 9 Family Fundamentals.

terça-feira, 6 de abril de 2010

Melhorando a performance de IMPORT/EXPORT

Olá!

Um dos maiores problemas em ambientes de homologação que  necessitam de grandes volumes de cargas de bases de dados para desenvolvimento e testes de usuários (como no meu caso ...) é a dificuldade em obter performance no EXPORT/IMPORT dos dados de forma a disponibilizá-los o mais rápido possível para desenvolvedores e usuários. No decorrer dos anos, com a constante necessidade de carregar tais bases com aquele velho papo de "pra ontem", fui observando alguns ítens que melhoram a performance destas operações.

Vale lembrar que, se você não possue um hardware com uma configuração mínima aceitável, a utilização de determinados parâmetros de IMPORT/EXPORT não terá impactos sobre estas operações.

Abaixo, listei algumas dicas e espero que sejam úteis:

- IMPORT

  1. Desabilite a importação de índices: se for possível, desabilite a importação de índices configurando o parâmetro INDEXES=N. Na maioria dos casos, desenvolvedores e usuários, estão interessados nos dados. Desta forma, se você tem uma boa ferramenta como o SQL Developer da Oracle, pode gerar um script que executa a criação dos índices após a carga. Enquanto isso, os dados podem ser acessados durante este processo agilizando a identificação de um problema;
  2. Elimine a carga de grandes tabelas durante a importação: na maioria dos casos, bases de desenvolvimento/homologação não necessitam de todas as tabelas da aplicação. Neste caso, evite a carga de tabelas maiores desnecessárias durante o IMPORT. Como? Crie a estrutura de tais tabelas antes da carga e utilize o parâmetro IGNORE=N (lembrando que esta é valor padrão do parâmetro) no import. Isto fará com que o IMPORT gere erro IMP-00015: following statement failed because the object already exists e "saltará" a importação dessas tabelas. Dependendo do tamanho da tabela, o ganho de tempo pode ser significativo;
  3. Crie processos de importações automáticas de bases em horários de baixo load do BD: normalmente, os desenvolvimentos/homologações de aplicações são feitos durante o horário normal de trabalho (8h às 18h), salvo em casos específicos onde exista uma necessidade urgente de homologação o que também é raro em qualquer empresa com bom planejamento e organização de seus processos. Uma boa prática é criar processos de carga, através de scripts e jobs do WINDOWS ou do próprio ORACLE para realizar automaticamente estes trabalhos. Obviamente, os jobs devem ser agendados para os horários de menor load do banco. Uma boa sugestão de horário é durante a madrugada, pois raramente se trabalha neste horário. A não ser que você seja um DBA ... hehehe ... brincadeira gente ... Se o fluxo de homologações e demanda por bases de dados é muito alto, vale a pena investir tempo na implementação de um processo com esta finalidade;
  4. Aumente o tamanho dos arquivos de redolog e parâmetros de sort: por se tratar de uma operação com características de processos BATCH, o aumento de tamanho dos redologs e dos parâmetros de SORT (sort_area_size e sort_area_retained_size) podem dar um plus na performance do IMPORT. Já tive ganhos consideráveis utilizando o padrão 10 grupos de redologs com tamanho de 100Mb cada. Mas é claro, você tem que adequar a configuração de acordo com o seu BD. Para parâmetros de SORT, utilize valores maiores. Uma configuração razoável é 2Mb para os 2;
  5. Evite operações de IMPORT/EXPORT no modo shared server: utilize SEMPRE conexões dedicadas para tais operações.

- EXPORT

Para estas operações, são poucas as dicas:

  1. Utilize o parâmetro DIRECT=Y: isto faz com que o ORACLE ultrapasse a camada de processamento de comandos SQL. Isto reduz bastante o tempo do EXPORT;
  2. Evite o parâmetro FEEDBACK: a configuração deste parâmetro, exige consumo de processamento da máquina para exibição dos resultados em tela.

Pessoal, essas são algumas dicas que achei interessante compartilhar com vocês. Espero que as utilizem em alguma eventual necessidade.

Até a próxima.

    Um comentário:

    1. Curti Alan !


      legal seu blog... depois dá uma melhorada neste layout ehehehe... tá muito dark, sites de tecnologia optam sempre pelo azul com cinza.... ehehehe !

      Um abração

      ResponderExcluir