A partir da versão do Oracle 11g foram implementadas
melhorias na administração da tablespace temporária TEMP. Foi criada a visão
chamada “
DBA_TEMP_FREE_SPACE”, que apresenta
as informações sobre a utilização da tablespace temporária TEMP, abaixo segue
as colunas da visão.
SQL>
desc dba_temp_free_space
Name
Null? Type
-----------------------------------------
-------- ----------------------------
TABLESPACE_NAME NOT NULL VARCHAR2(30)
TABLESPACE_SIZE NUMBER
ALLOCATED_SPACE NUMBER
FREE_SPACE NUMBER
SQL>
SELECT * FROM dba_temp_free_space;
TABLESPACE_NAME TABLESPACE_SIZE ALLOCATED_SPACE
FREE_SPACE
------------------------------
--------------- --------------- ----------
TEMP 1.7180E+10 8801746944 1.2778E+10
Com as informações contidas na visão DBA_TEMP_FREE_SPACE,
pode realizar um “shrink” na tablespace TEMP para liberar o espaço que não está
em uso, conforme apresentado abaixo:
SQL> ALTER
TABLESPACE temp SHRINK SPACE KEEP 540M;
Tablespace altered.
Após o ajuste da tablespace temporária pode-se verificar que o tamanho que
era de 8 GB baixou para 540 MB.
TAMANHO ANTES DA EXECUÇÃO DO COMANDO “ALTER TABLESPACE”:
ALOC HWM
EM USO LIVRE %
TABLESPACE (MB) (MB) (MB) (MB) LIVRE
------------------------------
---------- ---------- ---------- ---------- -----
TEMP 8192 2097 0 8192
100
TAMANHO DEPOIS DA EXECUÇÃO DO COMANDO “ALTER TABLESPACE”:
ALOC HWM
EM USO LIVRE %
TABLESPACE (MB) (MB) (MB) (MB) LIVRE
------------------------------
---------- ---------- ---------- ---------- -----
TEMP 541 2097 0 541
100
O “shrink” também pode executado
diretamente no arquivo físico “tempfile”, deve-se utilizar a cláusula abaixo:
SQL> ALTER
TABLESPACE temp
SHRINK TEMPFILE '+DATADG/dbteste/tempfile/temp01.dbf'
KEEP 540M;
Tablespace
altered.
ALOC HWM
EM USO LIVRE %
TABLESPACE (MB) (MB) (MB) (MB) LIVRE
-------------------------
---------- ---------- ---------- ---------- -----
TEMP 541 2097 0 541
100
A cláusula “keep” especifica o tamanho mínimo
da tablespace TEMP ou do
“tempfile”. Se este parâmetro for
omitido, o banco de dados diminuirá o espaço da tablespace TEMP ou do
“tempfile” para o menor tamanho possível, abaixo um exemplo do comando sem a cláusula “keep”.
SQL>
ALTER TABLESPACE temp SHRINK SPACE;
Tablespace altered.
ALOC HWM
EM USO LIVRE %
TABLESPACE (MB) (MB) (MB) (MB) LIVRE
------------------------- ---------- ----------
---------- ---------- -----
TEMP 2 2097 0 2
100
Oracle® Database Administrator´s
Guide 11gR2 (11.2)
MSc.
Rubens Oliveira
DBA Oracle Consultor