Bunch of queries I use.

При работе в SQL*pus бывает удобно посмотреть не только дату, но и конкретное время:
alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss";

Теперь мы знаем точное время запуска экземпляра : )

Порой autoextend = YES (автоматическое расширение файлов данных) не очень хорошая идея. Добавление файлов данных, их расширение и прочие манипуляции будут проводиться вручную, в этом нам помогут :

--Добавление нового файла данных в табличное пространство
ALTER TABLESPACE "ИМЯ_ТАБЛИЧНОГО_ПРОСТРАНСТВА"   ADD     DATAFILE 'ПОЛНЫЙ_ПУТЬ_К_НОВОМУ_ФАЙЛУ_ДАННЫХ' SIZE 10240m;

--Добавление нового файла данных с авторасширением в табличное пространство
ALTER TABLESPACE "PSAPUNDO"   ADD     DATAFILE 'ПОЛНЫЙ_ПУТЬ_К_НОВОМУ_ФАЙЛУ_ДАННЫХ' SIZE 100M autoextend on;
--Изменение размера файла данных
ALTER DATABASE DATAFILE 'ИМЯ_ТАБЛИЧНОГО_ПРОСТРАНСТВА' RESIZE 32767M;

--Список файлов в табличном пространстве с информацией о размере и наличии авторасширения
select substr(file_name,instr(file_name,'\',-1,1)+1,100) as "FileName", file_name "FullName",tablespace_name "TS Name", file_id "ID", autoextensible,
floor((bytes)/(1024*1024*1024))as Total_Gb,floor((bytes)/(1024*1024))as Total_Mb from dba_data_files
where tablespace_name=upper('ИМЯ_ТАБЛИЧНОГО_ПРОСТРАНСТВА')
order by relative_fno;

--Создание табличного пространства
create tablespace "ИМЯ_НОВОГО_ТАБЛИЧНОГО_ПРОСТРАНСТВА" datafile 'ПОЛНЫЙ_ПУТЬ_К_НОВОМУ_ФАЙЛУ_ДАННЫХ' size 1000M;

--Добавление файла во временное табличное пространство
ALTER TABLESPACE "ИМЯ_ВРЕМЕННОГО_ТП"
ADD TEMPFILE 'ПОЛНЫЙ_ПУТЬ_К_НОВОМУ_ФАЙЛУ' SIZE 100M;

--Удаление табличного пространства
DROP TABLESPACE ИМЯ_ТП INCLUDING CONTENTS AND DATAFILES;

--Место занимаемое DF, redo и temp [Можно использовать подзапрос]
select round(sum(Total_GB),2) as Total_GB from
(select File_name, sum(total_mb/1024) as Total_GB from
(
select file_name as File_name, floor((bytes)/(1024*1024)) as Total_Mb from dba_data_files
union all
select lf.member as dir, l.bytes/(1024*1024)as Total_Mb from v$logfile lf, v$log l where lf.group#=l.group#
union all
select name as dir, bytes/(1024*1024) as Total_Mb from v$tempfile
union all
select name, round((block_size*file_size_blks)/1024/1024,2) from v$controlfile
)
group by File_name
);

--Directory list (Список папок/Каталогов Windows)
select substr(file_name,0,instr(file_name,'\',-1,1)) as dir from dba_data_files
union all
select substr(lf.member,0,instr(lf.member,'\',-1,1)) as dir from v$logfile lf, v$log l where lf.group#=l.group#
union all
select substr(name,0,instr(name,'\',-1,1)) as dir from v$tempfile
union all
select substr(name,0,instr(name,'\',-1,1)) as dir from v$controlfile;

--Directory list (Список папок/Каталогов *nix)
select substr(file_name,0,instr(file_name,'/',-1,1)) as dir from dba_data_files
union all
select substr(lf.member,0,instr(lf.member,'/',-1,1)) as dir from v$logfile lf, v$log l where lf.group#=l.group#
union all
select substr(name,0,instr(name,'/',-1,1)) as dir from v$tempfile
union all
select substr(name,0,instr(name,'/',-1,1)) as dir from v$controlfile;

--Свободное место в TS
select t.tablespace_name,floor((t.total)/(1024*1024*1024)) as Total_Gb,floor((f.free)/(1024*1024*1024)) as Free_Gb, floor((t.total-f.free)*100/t.total) as pct from
(select tablespace_name, sum(bytes) as free from dba_free_space group by tablespace_name) f,
(select tablespace_name, sum(bytes) as total from dba_data_files group by tablespace_name) t
where t.tablespace_name=f.tablespace_name
--and t.tablespace_name like 'ИМЯ_ТАБЛИЧНОГО_ПРОСТРАНСТВА_ЕСЛИ_НУЖНО%'
order by pct desc;

--Размер таблицы
SELECT owner, segment_name, segment_type,tablespace_name,
ROUND(SUM (BYTES) / 1024 / 1024) "SIZE (MB)",
SUM (blocks) blocks, COUNT (*) extents
FROM dba_extents
WHERE owner = 'ВЛАДЕЛЕЦ' AND segment_name = 'ИМЯ_ТАБЛИЦЫ'
AND segment_type = 'TABLE'
GROUP BY owner, segment_name, segment_type, tablespace_name;

 

--Размер объектов схемы:
select sum(bytes)/1024/1024 as size_in_mega,
segment_type
from dba_segments
where owner='&owner_name'
group by segment_type;

--Размер всех схем с разбивкой по юзерам:
select sum(bytes)/1024/1024 as size_in_mega, owner
from dba_segments
group by owner;

--Размер данных в базе данных 8192-размер блока:
select (sum(blocks)*8192)/1024/1024/1024 from dba_segments;

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *