вторник, 18 августа 2015 г.

Размер табличных пространств Oracle

Другой запрос для вычисления размера табличных пространств Oracle:
http://www.dba-oracle.com/t_tablespace_script.htm

set lines 132
set pages 105
set pause off
set echo off
set feedb on

column "TOTAL ALLOC (MB)" format 9,999,990.00
column "TOTAL PHYS ALLOC (MB)" format 9,999,990.00
column "USED (MB)" format 9,999,990.00
column "FREE (MB)" format 9,999,990.00
column "% USED" format 990.00

select
a.tablespace_name,
a.bytes_alloc/(1024*1024) "TOTAL ALLOC (MB)",
a.physical_bytes/(1024*1024) "TOTAL PHYS ALLOC (MB)",
nvl(b.tot_used,0)/(1024*1024) "USED (MB)",
(nvl(b.tot_used,0)/a.bytes_alloc)*100 "% USED"
from
(select
tablespace_name,
sum(bytes) physical_bytes,
sum(decode(autoextensible,'NO',bytes,'YES',maxbytes)) bytes_alloc
from
dba_data_files
group by
tablespace_name ) a,
(select
tablespace_name,
sum(bytes) tot_used
from
dba_segments
group by
tablespace_name ) b
where
a.tablespace_name = b.tablespace_name (+)
and
a.tablespace_name not in
(select distinct
tablespace_name
from
dba_temp_files)
and
a.tablespace_name not like 'UNDO%'
order by 1;

вторник, 11 августа 2015 г.

sub_var (Oracle)

Можно задавать переменные прямо в SQL-редакторе IDE, например, вместо
select 'test' from dual;
можно выполнить:
define myvar='dual'
select 'test' from &myvar;
т.е. название таблицы "DUAL" я поместил в переменную "myvar", а затем обратился к этой переменной из запроса "SELECT".

Для подстановки переменной для замены "OWNER" в конструкции:
SELECT * FROM OWNER.TABLE
нужно дублировать "точку", например, вместо:
select * from SCOTT.DEPT
пишем:
define myowner='SCOTT'
define myowner_to_run='&myowner..'
select * from &myowner_to_run.DEPT.


По мотивам: sub_var, sub_var2.

Архив