terça-feira, 8 de abril de 2014

Boas Práticas de desenvolvimento SQL Oracle

Muitas vezes nos deparamos com uma paralisação no servidor de banco de dados.
Podemos evitar muitos destes gargalos com simples praticas diárias em nossas instruções SQL, principalmente para aqueles servidores que possuem limitações.
 
Seguem as recomendações:

1)      Usar as opções NOLOGGING e COMPRESS na criação de tabelas, índices e inserts.
Objetivo: ocupar menos espaço em banco de dados e não onerar a área de archive (que guarda os logs de todas as transações na base de dados);
 
Exemplo 1:
CREATE TABLE TABELA_1(
    CAMPO_1 VARCHAR2(50),
    CAMPO_2 VARCHAR2(50)
)
TABLESPACE TD_DADOS -- definicao da tablespace de dados
COMPRESS -- COMPRIME O TAMANHO DOS DADOS
NOLOGGING -- NÃO GRAVA OS LOGS NA HORA DO CREATE
;
 
Exemplo 2:
CREATE TABLE TABELA_3
COMPRESS
NOLOGGING
TABLESPACE TD_DADOS -- definicao da tablespace de dados
AS
    (SELECT CAMPO_3 FROM TABELA_2)
;
 
Exemplo 3: 
CREATE INDEX TABELA_1_IDX_1 ON
    TABELA_1 (CAMPO_1)
    TABLESPACE TI_DADOS -- definicao da tablespace de index
COMPRESS
NOLOGGING
;
 
2)      Usar a opção UNRECOVERABLE antes do LOAD DATA na carga de arquivos textos via SQLLDR. Objetivo: não onerar a área de archive do banco de dados;
 
3)      Não usar opções de paralelismo, pois isto pode atrapalhar a execução das queries dos outros usuários ou outras equipes que utilizam o mesmo servidor, e caso realmente precise de priorização de execução em grandes cruzamentos de informações, sempre solicite uma verificação com as equipes para discutirem os impactos.

Estas foram algumas regras que podemos implementar no nosso dia a dia, e que ajudam muito no processamento dos dados, o que ajuda muito a sairmos do trabalho mais cedo na sexta-feira para tomas uma gelaaaaada.

Se tiver alguma prática ou sugestão e desejar compartilhar, sinta-se a vontade comentando abaixo.