- Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 18 anos, 3 meses atrás por rosterne.
-
AutorPosts
-
5 de outubro de 2006 às 12:29 am #76683andrenParticipante
Olá gostaria de saber se alguém pode explicar como funcionam as tablespaces gerenciadas localmente (management local).
Tenho o seguinte caso:
1) Importei uma base para um banco 9.2.0.7 (com tablespace gerenciada localmente).
2) Uma tabela de 45 milhões de registros com 3 indices de colunas diferentes ficou assim:
Nome do indice tamanho_atual extents
———————— —————– ———
INDICE_A 2056 MB 131
INDICE_B 2056 MB 131
INDICE_C 2056 MB 131Sendo que os indices são da seguinte estrutura:
Indice Coluna
————————- ————————-
INDICE_A COD_PRODUTO
INDICE_A COD_EMPRESA
INDICE_A DATA_CADASTRO
INDICE_A COD_GRUPO
INDICE_A COD_SUBGRUPOINDICE_B DATA_CADASTRO
INDICE_B COD_GRUPOINDICE_C COD_CLASSE
INDICE_C COD_EMPRESA
INDICE_C COD_GRUPOOu seja, deveriam estar com tamanhos diferentes, ou pelo menos extents diferentes.
Alguém pode me ajudar a entender isso ?
16 de outubro de 2006 às 7:15 pm #76770rosterneParticipanteUm tablespace gerenciada Localmente controla seus próprios extents e mantém um bitmap em cada um datafile para manter-se a par do status livre ou usado dos blocos naquele datafile.
Cada bit no bitmap corresponde a um grupo dos blocos. Quando uma extensão é alocada ou descartada, o oracle muda os valores bitmap para mostrar o status novo dos blocos.
Estas mudanças não geram a informação do rollback porque não atualizam tabelas (como sys.uet$, sys.fet$) no dicionário dos dados (à exceção dos casos especiais tais como a informação do quota do tablespace).
Quando se cria uma tablespace gerenciada localmente, pode-se utilizar o recurso “UNIFORM SIZE”, que parece ser o seu caso. Com esse recurso a tablespace alocará uniformimente os extents, ou seja todos extnts terão tamanho iguais.
Ex1:
SQL> CREATE TABLESPACE exemplo1 DATAFILE
2 ‘exemplo01.dbf’ SIZE 100M reuse
3 EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;
Tablespace created.Quando se usa a clúsula “AUTOALLOCATE” , o Oracle identifica e aloca o primeiro extent da tablespace com no minimo de 64k.
Ex2:
SQL> CREATE TABLESPACE exemplo2 DATAFILE
2 ‘exemplo02.dbf’ SIZE 100M reuse
3 EXTENT MANAGEMENT AUTOALLOCATE
Tablespace created.- SQL> select TABLESPACE_NAME, INITIAL_EXTENT, NEXT_EXTENT, MIN_EXTENTS, MAX_EXTENTS,
2 MIN_EXTLEN, EXTENT_MANAGEMENT, ALLOCATION_TYPE, PLUGGED_IN
3 from dba_tablespaces
4 where tablespace_name like ‘EXEMPLO%’;
TABLESPACE_NAME INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS
MIN_EXTLEN EXTENT_MAN ALLOCATION PLUGG
EXEMPLO1 131,072 131,072 1 2,147,483,645
131,072 LOCAL UNIFORM NO
EXEMPLO2 65,536 1 2,147,483,645
65,536 LOCAL SYSTEM NOAbraço.
- SQL> select TABLESPACE_NAME, INITIAL_EXTENT, NEXT_EXTENT, MIN_EXTENTS, MAX_EXTENTS,
-
AutorPosts
- Você deve fazer login para responder a este tópico.