Pular para o conteúdo

Fóruns Banco de dados Oracle Estrutura de tabela Estrutura de tabela

#86699
Rodrigo Almeida
Participante

    Roberto,

    Com certeza, a modelagem influência sim e muito nas questões de performance, por alguns motivos simples:

    1) Tamanho de Coluna

    Na modelagem exposta, o campo INTEGER será equivalente ao NUMBER(38,0) no Oracle, ou seja, o tamanho máximo de armazenamento para a coluna NUMBER, com isso, perda de espaço, alocação de extents desnecessários, possível fragmentação e etc. Resumindo, poderá ter perda de performances.

    2) Espaço em disco

    Se é tabela de carga, imagina com essa modelagem a quantidade de espaço em disco que será perdido no servidor por má alocação dos extents da tabela.

    3) ìndices e PK/Fk

    Bom, se for tabela para DW, é bom nem ter índices mesmo, ou PK/FK, pq é um ambiente desnormalizado, se tiver é alguma PK ou FK para dimensão e que deverá ser desabilitada no momento do ETL e posteriormente reconstruída.

    E sem dúvida, sem índices e validações (PK/FK), a carga de dados é bem mais rápida.

    4) SQL*LOADER

    Se quiser fazer carga massiva de dados, utilize o SQL*LOADER (sqlldr) e configure os parâmetros de memória no arquivo ctl para aumentar a performance.

    5) Atributos da tabela

    A tabela está correta em Permanecer com os parâmetros NOCOMPRESS e NOCACHE, esses podem atrapalhar a performance de carga.

    6) PARALLEL

    Se quiser aumentar a performance de carga, pense em utilizar o PARALLEL no nível de tabela PARALLEL 4, ou habilite o PARALLEL no nível de sessão, ALTER SESSION ENABLE DML PARALLEL.

    Lembre-se, se configurar o PARALLEL em nível de tabela, qualquer outra operação e qualquer usuário irá utilizar o PARALLEL, portanto, o recomendado é sempre durante SOMENTE o processo de carga habilitar o PARALLEL (ALTER TABLE TESTE PARALLEL 4) e no final desabilitar o PARALLEL (ALTER TABLE TESTE PARALLEL 1).

    7) MONITORING

    Essa opção é para monitoração da utilização de índices na tabela, não é necessário no seu contexto, porém, se existe índices na tabela e querem saber se eles estão sendo utilizados, aí sim habilita o MONITORING, caso contrário, é NOMONITORING.

    E esse opção quando habilitada como no seu caso, pode trazer problemas de performance.

    Acho que é isso.

    Abraços,