O comando a seguir lista todas as tabelas contidas em uma determinada TABLESPACE:
SELECT tablespace_name, table_name FROM All_TABLES;
Caso haja a necessidade de consultar em qual TABLESPACE uma determinada tabela está, usa-se o seguinte script:
SELECT TABLE_NAME FROM DBA_TABLES WHERE TABLE_NAME = 'CONTRATO';
É possível alterar uma tabela criada em uma TABLESPACE para outra com o uso da clausula MOVE TABLESPACE, para realizar a alteração basta digitar o script a seguir:
ALTER TABLE
TB_NOME_TABELA
MOVE TABLESPACE
TBS_NOME_TABLESPACE_DESTINO;
Também é possível alterar o nome de uma TABLESPACE, isso pode ser feito com o uso da clausula RENAME TO conforme o seguinte exemplo:
ALTER TABLESPACE
TBS_NOME_TABLESPACE
RENAME TO TBS_NOVO_NOME_TABLESPACE;
Consultar tamanho Tablespace:
SELECT df.tablespace_name TABLESPACE, df.total_space TOTAL_SPACE,
fs.free_space FREE_SPACE, df.total_space_mb TOTAL_SPACE_MB,
(df.total_space_mb - fs.free_space_mb) USED_SPACE_MB,
fs.free_space_mb FREE_SPACE_MB,
ROUND(100 * (fs.free_space / df.total_space),2) PCT_FREE
FROM (SELECT tablespace_name, SUM(bytes) TOTAL_SPACE,
ROUND(SUM(bytes) / 1048576) TOTAL_SPACE_MB
FROM dba_data_files
GROUP BY tablespace_name) df,
(SELECT tablespace_name, SUM(bytes) FREE_SPACE,
ROUND(SUM(bytes) / 1048576) FREE_SPACE_MB
FROM dba_free_space
GROUP BY tablespace_name) fs
WHERE df.tablespace_name = fs.tablespace_name(+)
ORDER BY fs.tablespace_name;
--------Aumentando Tablespace ------------------
Primeiro é necessário pegar o caminho da tablespace, que pode ser obtido com a seguinte query:
SQL> SELECT * FROM DBA_DATA_FILES WHERE TABLESPACE_NAME='TS_DADOS';
Depois o código para aumentar;
ALTER TABLESPACE PSAP_CUST_IDX ADD DATAFILE '/oracle/xx/xxxxx/xxx/psap_cust_idx_011' size 32000M REUSE AUTOEXTEND ON NEXT 1024M MAXSIZE 32000M;
Depois o código para aumentar;
ALTER TABLESPACE PSAP_CUST_IDX ADD DATAFILE '/oracle/xx/xxxxx/xxx/psap_cust_idx_011' size 32000M REUSE AUTOEXTEND ON NEXT 1024M MAXSIZE 32000M;
Você pode listar todas as tabelas:
Select tablespace_name, table_name From dba_tables Order By tablespace_name;
Ou então filtar pela tablespace ou nome da tabela:
Select tablespace_name, table_name From dba_tables Where tablespace_name = 'nome tablespace';
Select tablespace_name, table_name From dba_tables Where table_name = 'NOme da table';
Se você não tiver acesso a dba_tables, pode usar user_tables(que ira listar as tabelas do usuario logado) ou a all_tables(que ira listar todas as tabelas que o usuario logado tem acesso).
ESPAÇO OCUPADO PELAS TABELAS NAS TABLESPACES (POR TABELA)
SELECT OWNER, TABLE_NAME, TABLESPACE_NAME, NUM_ROWS, AVG_ROW_LEN, NUM_ROWS * AVG_ROW_LEN, BLOCKS, EMPTY_BLOCKS, BLOCKS + EMPTY_BLOCKS FROM DBA_TABLES;
Saber o numero de blocos utilizados em Kb
SELECT TABLE_NAME, TO_CHAR (BLOCKS + EMPTY_BLOCKS) * 8 FROM DBA_TABLES WHERE BLOCKS + EMPTY_BLOCKS >= 1 ORDER BY TABLE_NAME;
Ver as Tabelas particionadas
select table_name,partitioned,num_rows from user_tables;
Nenhum comentário:
Postar um comentário