Understanding Deferred Segment Creation

Já foi visto aqui, que ao criar um segmento, o Oracle automaticamente já cria um extent associado a esse segmento. Mas, podemos criar um objeto sem nenhum segment e assim sem nenhum extent. Isso pode ser feito com a ajuda do parâmetro DEFERRED_SEGMENT_CREATION ou com a cláusula SEGMENT CREATION. Veja o exemplo abaixo:

SQL> ALTER SYSTEM SET DEFERRED_SEGMENT_CREATION=FALSE;

System altered.

SQL> CREATE TABLE terciocosta.teste1(a NUMBER);

Table created.

SQL> CREATE TABLE terciocosta.teste2(a NUMBER) SEGMENT CREATION DEFERRED;

Table created.

SQL> ALTER SYSTEM SET DEFERRED_SEGMENT_CREATION=TRUE;

System altered.

SQL> CREATE TABLE terciocosta.teste3(a NUMBER);

Table created.

SQL> CREATE TABLE terciocosta.teste4(a NUMBER) SEGMENT CREATION IMMEDIATE;

Table created.

SQL> SELECT segment_name
  2  FROM   DBA_SEGMENTS
  3  WHERE  SEGMENT_NAME LIKE 'TESTE_'
  4    AND  owner = 'TERCIOCOSTA';

SEGMENT_NAME
--------------------------------------------------------------------------------
TESTE1
TESTE4

SQL> SELECT table_name
  2  FROM   DBA_TABLES
  3  WHERE  TABLE_NAME LIKE 'TESTE_'
  4    AND  owner = 'TERCIOCOSTA';

TABLE_NAME
--------------------------------------------------------------------------------
TESTE1
TESTE2
TESTE3
TESTE4

SQL> SELECT segment_name
  2  FROM   dba_extents
  3  WHERE  SEGMENT_NAME LIKE 'TESTE_'
  4    AND  owner = 'TERCIOCOSTA';

SEGMENT_NAME
--------------------------------------------------------------------------------
TESTE1
TESTE4

SQL>

Perceba que de acordo dom o valor do parâmetro ou se a cláusula SEGMENT CREATION é informada, o Oracle pode criar o objeto no dicionário de dados, mas o segmento juntamente com o seu extent ainda não foram criados. Essa criação só irá acontecer em um futuro insert.

Um detalhe é que objetos criados nos usuários internos, como SYSTEM e SYS, o segmento sempre será criado imediatamente, independente do valor do parâmetro DEFERRED_SEGMENT_CREATION. Se utilizar a cláusula SEGMENT CREATION DEFERRED com algum desses usuários um erro será retornado.

A cláusula SEGMENT CREATION suporta somente os dois valores mencionados.

Meu nome é Tércio Costa, sou formado em Ciências da Computação pela UFPB, tenho a certificação OCA 12c, Oracle SQL Expert e OCP PL/SQL, mantendo um blog reconhecido pela OTN(oraclepress.wordpress.com), no qual também publico artigos técnicos no portal OTN, no portal http://www.profissionaloracle.com.br/gpo e na revista SQL Magazine. Além de tudo isto sou um Oracle ACE por estar sempre contribuindo para a comunidade com um bom nível de expertise.

Marcado com: , , ,
Publicado em Administração, Certificação Oracle

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.

Esse Blog é reconhecido pela
Sou um
Certificações
Sou articulista

Clique para seguir este blog e receber notificações via email de novos posts.

Tércio Costa

Tércio Costa

Meu nome é Tércio Costa, sou formado em Ciências da Computação pela UFPB, tenho a certificação OCA 12c, Oracle SQL Expert e OCP PL/SQL, mantendo um blog reconhecido pela OTN(oraclepress.wordpress.com), no qual também publico artigos técnicos no portal OTN, no portal http://www.profissionaloracle.com.br/gpo e na revista SQL Magazine. Além de tudo isto sou um Oracle ACE por estar sempre contribuindo para a comunidade com um bom nível de expertise.

Links Pessoais

Serviços verificados

Visualizar Perfil Completo →

Total de Visualizações da Página
  • 161.532 Visualizações
%d blogueiros gostam disto: