tsfree.sql

----------------------------------
-- SCRIPT  tsfree.sql
-- INICO DO SCRIPT 
-- ALEXANDRE PIRES 14/05/2012
----------------------------------
rem
rem ARQUIVO
rem    tsfree2.sql
rem
rem FINALIDADE
rem    Exibe informacoes sobre os espacos livres em uma determinada tablespace em 80 colunas.
rem
rem PARAMETROS
rem    1 = Parte do nome da tablespace
rem
rem MODIFICACOES
rem 14/05/2012 ALEXANDRE PIRES
rem

set pagesize 500
set feedback off
col TABLESPACE_NAME for a22
col FILE_NAME for a50
col ARQUIVOS  for 99
col TOTAL_MBYTES for 999,999,999
col USED_MBYTES for 999,999,999
col FREE_MBYTES for 999,999,999
col PCT for 999,99
column file_size_mbytes format 999g990d0 heading 'FILE_SIZE|MBYTES'
column saldo_mbytes     format 999g990d0 heading 'SALDO|MBYTES'

break on tablespace_name skip 1 on drive
compute sum of free_mbytes      on tablespace_name
compute sum of used_mbytes      on tablespace_name
compute sum of tam_mbytes       on tablespace_name
compute sum of pct              on tablespace_name

select  decode (tbs.extent_management, 'LOCAL', 'L|', 'D|')
    ||  tbs.tablespace_name as  tablespace_name , dt.file_name, dt.AUTOEXTENSIBLE, dt.MAXBYTES/1024/1024 as MAXSIZE
     ,  dt.bytes/1024/1024 as tam_mbytes
     ,  (dt.bytes/1024/1024) - (livres/1024/1024) as used_mbytes
     ,  livres/1024/1024 as free_mbytes
     ,  100*nvl(livres,0)/tot_bytes as pct
  --   ,  100*nvl(liv,0)   /tot_bytes as pct2
from
  ( select   tablespace_name
           , sum(bytes) as tot_bytes
    from     dba_data_files
    group by tablespace_name
                            ) tot
, ( select  DTF.file_id, dtf.tablespace_name
          , nvl(sum(fr.bytes),0) as livres
   from     dba_free_space fr, dba_data_files dtf
   where    dtf.file_id = fr.file_id (+)
   group by DTF.FILE_ID, dtf.tablespace_name ) free
, ( select tablespace_name
           , nvl(sum(bytes),0) as liv
      from dba_free_space 
      group by tablespace_name ) free2
, dba_tablespaces tbs
, dba_data_files dt
where    tot.tablespace_name = tbs.tablespace_name
and      tot.tablespace_name = free.tablespace_name  (+)
and      tot.tablespace_name = free2.tablespace_name (+)
and      tbs.tablespace_name = dt.tablespace_name
and      tot.tablespace_name not in ('TEMP', 'TEMP1','TEMP2')
and      dt.file_id = free.file_id
and 100*liv/tot_bytes <5
order by tablespace_name
/
set feedback on

----------------------------------
-- FIM DO SCRIPT  -- 

Sobre Alexandre Pires

ORACLE OCS Goldengate Specialist, OCE RAC 10g R2, OCP 12C, 11g, 10g , 9i e 8i - Mais de 25 anos de experiência na área de TI. Participei de projetos na G&P alocado na TOK STOK, EDINFOR alocado na TV CIDADE "NET", 3CON Alocado no PÃO DE AÇUCAR, DISCOVER alocado na VIVO, BANCO IBI e TIVIT, SPC BRASIL, UOLDIVEO alocado no CARREFOUR e atualmente na ORACLE ACS atendendo os seguintes projetos: VIVO, CLARO, TIM, CIELO, CAIXA SEGUROS, MAPFRE, PORTO SEGURO, SULAMERICA, BRADESCO SEGUROS, BANCO BRADESCO, BASA, SANTANDER, CNJ, TSE, ELETROPAULO, EDP, SKY, NATURA, ODEBRESHT, NISSEI, SICREDI, CELEPAR, TAM, TIVIT, IBM, SMILES, CELEPAR, SERPRO,OKI,BANCO PAN, etc
Esse post foi publicado em ORACLE 11gR2, PLSQL SCRIPTS, PLSQL TUNING e marcado , , . Guardar link permanente.

Deixe uma resposta

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 )

Imagem do Twitter

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

Foto do Facebook

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

Foto do Google+

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

Conectando a %s