sexta-feira, 14 de junho de 2013

DBA - Truncate em apenas UMA partição da tabela

Olá amigos

Hoje o post é curto , porém, interessante.
Precisei atuar em um ambiente consideravelmente grande, onde havia uma tabela e suas várias partições.
O cliente solicitou o TRUNCATE em apenas uma partição. Eu atuei, o cliente validou e reportou que houve sucesso. Fiquei contente =)

Segue log de atuação:


-- Consultando partições da tabela

SQL> SELECT TABLE_NAME, PARTITION_NAME, TABLESPACE_NAME FROM DBA_TAB_PARTITIONS WHERE TABLE_NAME = 'TABLE_FISCAL';



TABLE_NAME                     PARTITION_NAME                 TABLESPACE_NAME
------------------------------ ------------------------------ ------------------------------
TABLE_FISCAL                   UU_OO201205               MM_MM_ORA201205
TABLE_FISCAL                   UU_OO201206               MM_MM_ORA201206
TABLE_FISCAL                   UU_OO201207               MM_MM_ORA201207
TABLE_FISCAL                   UU_OO201208               MM_MM_ORA201208
TABLE_FISCAL                   UU_OO201209               MM_MM_ORA201209
TABLE_FISCAL                   UU_OO201210               MM_MM_ORA201210
TABLE_FISCAL                   UU_OO201211               MM_MM_ORA201211
TABLE_FISCAL                   UU_OO201212               MM_MM_ORA201212
TABLE_FISCAL                   UU_OO201301               MM_MM_ORA201301
TABLE_FISCAL                   UU_OO201302               MM_MM_ORA201302
TABLE_FISCAL                   UU_OO201303               MM_MM_ORA201303

O cliente solicitou para truncar a partição do mês de março de 2013. Logo, deveria truncar a partição UU_OO201303.

-- Comando para truncar a partição

SQL> ALTER TABLE TABLE_FISCAL TRUNCATE PARTITION UU_OO201303;

Table truncated.

-- Validando STATUS dos índices da tabela TABLE_FISCAL

SQL> SELECT OWNER,  INDEX_NAME, STATUS FROM DBA_INDEXES WHERE TABLE_NAME = 'TABLE_FISCAL';

OWNER                          INDEX_NAME                     STATUS
------------------------------ ------------------------------ --------
SYS                             IX_TABLE_FISCAL_001            N/A
SYS                             IX_TABLE_FISCAL_002            N/A

N/A siginifica que o índice também é particionado. Está normal. Teríamos problemas se os índices estivessem UNUSABLE. Falaremos de UNUSABLE index posteriormente.

Até a próxima galera.



-->