Esta funcionalidade foi introduzida no Oracle
11G R2 e permite que os segmentos para tabelas e seus objetos dependentes
(LOBs, índices) não sejam criados até que a primeira linha seja inserida na
tabela.
Esta funcionalidade pode ser controlada pelo
parâmetro de inicialização DEFERRED_SEGMENT_CREATION, que é definido como TRUE
por padrão. Este valor também pode ser alterado somente para a sessão,
utilizando o ALTER SESSION.
NAME TYPE VALUE
------------------------------------ ------------------- -----
deferred_segment_creation boolean TRUE
SQL> create table TABELA_TESTE(coluna1 number);
Table created.
SQL> SELECT segment_name,
segment_type
FROM user_segments
WHERE segment_name='TABELA_TESTE';
no rows selected
SQL> insert into TABELA_TESTE values(1);
1 row created.
SQL> SELECT segment_name,
segment_type
FROM user_segments
WHERE segment_name='TABELA_TESTE';
no rows selected
SEGMENT_NAME SEGMENT_TYPE
-------------------------------- ------------
TABELA_TESTE TABLE
1 linha seleccionada.
Podemos especificar isso na criação da
tabela, utilizando SEGMENT CREATION DEFERRED ou SEGMENT CREATION IMMEDIATE.
Table created.
SQL> SELECT segment_name,
segment_type
FROM user_segments
WHERE segment_name='TABELA_TESTE2';
no rows selected
SEGMENT_NAME SEGMENT_TYPE
-------------------------------- ------------
TABELA_TESTE2 TABLE
1 linha seleccionada.
Para apagar os segmentos associados a tabela,
foi adicionado a cláusula DROP ALL
STORAGE ao TRUNCATE TABLE (disponível no 11.2.0.2).
Table truncated.
SQL> SELECT segment_name,
segment_type
FROM user_segments
WHERE segment_name='TABELA_TESTE';
no rows selected
Abraço,
Alex Zaballa.
0 comentários:
Postar um comentário