-
1. Проверьте имя и размер табличного пространства.
выберите t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size
из dba_tablespaces t, dba_data_files d
где t.имя_табличного_пространства = d.имя_табличного_пространства
группировать по t.tablespace_name;
2. Просмотр имени и размера физических файлов в табличном пространстве.
выберите имя_табличного_пространства, идентификатор_файла, имя_файла,
раунд(байты/(1024*1024),0) total_space
из dba_data_files
упорядочить по имени табличного_пространства;
3. Проверьте имя и размер сегмента отката.
выберите имя_сегмента, имя_табличного_пространства, r.status,
(initial_extent/1024) InitialExtent, (next_extent/1024) NextExtent,
max_extents, v.curext CurExtent
Из dba_rollback_segs r, v$rollstat v
Где r.segment_id = v.usn(+)
упорядочить по имени_сегмента;
4. Просмотрите управляющий файл
выберите имя из v$controlfile;
5. Просмотр файлов журналов
выбрать участника из v$logfile;
6. Проверьте использование табличного пространства.
выберите сумму (байты)/(1024*1024) как свободное_пространство,имя_табличного_пространства
из dba_free_space
группировать по имени табличного_пространства;
ВЫБЕРИТЕ A.TABLESPACE_NAME, A.BYTES TOTAL, B.BYTES USED, C.BYTES FREE,
(B.BYTES*100)/A.BYTES «% ИСПОЛЬЗОВАНО», (C.BYTES*100)/A.BYTES «% СВОБОДНО»
ИЗ SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C
ГДЕ A.TABLESPACE_NAME=B.TABLESPACE_NAME И A.TABLESPACE_NAME=C.TABLESPACE_NAME;
7. Просмотр объектов базы данных
выбрать владельца, тип_объекта, статус, количество(*) количество# из группы all_objects по владельцу, тип_объекта, статус;
8. Проверьте версию базы данных
Выберите версию ИЗ версии_компонента_продукта
Где SUBSTR(PRODUCT,1,6)='Oracle';
9. Просмотр даты создания и метода архивирования базы данных.
Выберите «Создано», «Log_Mode», «Log_Mode» из V$Database;
10. Захват SQL, который работает уже давно
формат имени пользователя столбца a12
формат имени столбца a16
формат прогресса столбца a8
выберите имя пользователя,sid,opname,
round(sofar*100 / totalwork,0) || '%' как прогресс,
time_remaining,sql_text
из v$session_longops, v$sql
где время_оставшееся <> 0
и sql_address = адрес
и sql_hash_value = hash_value
/
11. Просмотр информации о параметрах в техническом паспорте
ВЫБЕРИТЕ имя_раздела, высокое_значение, длина_высокого_значения, имя_табличного_пространства,
pct_free, pct_used, ini_trans, max_trans, начальный_экстент,
next_extent, min_extent, max_extent, pct_increase, FREELISTS,
freelist_groups, LOGGING, BUFFER_POOL, num_rows, блоки,
пустые_блоки, avg_space, Chain_cnt, avg_row_len, sample_size,
последний_анализ
ИЗ dba_tab_partitions
--WHERE table_name = :tname И table_owner = :towner
Упорядочить по позиции_раздела
12. Просмотр незафиксированных транзакций
выберите * из v$locked_object;
выберите * из v$transaction;
13. Найдите, какие процессы используют объект
выбирать
п.спид,
с.сид,
s.serial# серийный_номер,
s.username имя_пользователя,
а.тип тип_объекта,
s.osuser os_user_name,
владелец,
a.object имя_объекта,
декодировать (знак (48 - команда),
1,
to_char(команда), 'Код действия #' || to_char(команда) ) действие,
p.program oracle_process,
терминал терминала,
программа с.программа,
s.status session_status
из v$session s, v$access a, v$process p
где s.paddr = p.addr и
s.type = 'ПОЛЬЗОВАТЕЛЬ' и
a.sid = s.sid и
a.object='SUBSCRIBER_ATTR'
сортировать по s.username, s.osuser
14. Просмотр сегмента отката
выберите rownum, sys.dba_rollback_segs.segment_name Имя, v$rollstat.extents
Экстенты, v$rollstat.rssize Size_in_Bytes, v$rollstat.xacts XActs,
v$rollstat.gets Получает, v$rollstat.waits Ожидает, v$rollstat.writes Записывает,
Статус sys.dba_rollback_segs.status из v$rollstat, sys.dba_rollback_segs,
v$rollname где v$rollname.name(+) = sys.dba_rollback_segs.segment_name и
v$rollstat.usn (+) = v$rollname.usn порядок по номеру строки
15. Ресурсоемкий процесс (верхняя сессия)
выберите s.schemaname имя_схемы, декодируйте(знак(48 - команда), 1,
to_char(команда), 'Код действия #' || to_char(команда) ) действие, статус
session_status, s.osuser os_user_name, s.sid, p.spid, s.serial# серийный_номер,
nvl(s.username, '[процесс Oracle]') имя_пользователя, терминал s.terminal,
программа s.program, st.value критерий_значение из v$sesstat st, v$session s, v$process p
где st.sid = s.sid и st.statistic# = to_number('38') и ('ALL' = 'ALL'
или s.status = 'ALL') и p.addr = s.paddr в порядке убывания st.value, p.spid asc, s.username asc, s.osuser asc
16. Проверьте статус блокировки
выберите /*+ ПРАВИЛО */ ls.osuser os_user_name, ls.username user_name,
decode(ls.type, 'RW', 'Блокировка очереди ожидания строки', 'TM', 'Блокировка очереди DML', 'TX',
«Блокировка очереди транзакции», «UL», «Блокировка, предоставляемая пользователем») lock_type,
объект o.object_name, decode(ls.lmode, 1, null, 2, 'Row Share', 3,
«Эксклюзивно для строки», 4, «Поделиться», 5, «Эксклюзивно для строки», 6, «Эксклюзивно», ноль)
lock_mode, o.owner, ls.sid, ls.serial# серийный_номер, ls.id1, ls.id2
из sys.dba_objects o, (выберите s.osuser, s.username, l.type,
l.lmode, s.sid, s.serial#, l.id1, l.id2 из v$session s,
v$lock l где s.sid = l.sid ) ls где o.object_id = ls.id1 и o.owner
<> Порядок 'SYS' по o.owner, o.object_name
17. Проверьте статус ожидания
SELECT v$waitstat.class, v$waitstat.count count, SUM(v$sysstat.value) sum_value
FROM v$waitstat, v$sysstat ГДЕ v$sysstat.name IN ('блок базы данных получает',
'последовательное получение') группа по v$waitstat.class, v$waitstat.count
18. Проверьте ситуацию с SGA
ВЫБЕРИТЕ ИМЯ, БАЙТЫ ИЗ SYS.V_$SGASTAT ПОРЯДОК ПО ИМЕНИ ASC
19. Посмотреть пойманный объект
ВЫБЕРИТЕ владельца, имя, db_link, пространство имен,
тип, разделяемая_память, загрузки, выполнения,
замки, штифты, хранятся ИЗ v$db_object_cache
20. Посмотреть V$SQLAREA
ВЫБЕРИТЕ SQL_TEXT, SHARABLE_MEM, PERSISTENT_MEM, RUNTIME_MEM, SORTS,
VERSION_COUNT, LOADED_VERSIONS, OPEN_VERSIONS, USERS_OPENING, EXECUTIONS,
USERS_EXECUTING, LOADS, FIRST_LOAD_TIME, INVALIDATIONS, PARSE_CALLS, DISK_READS,
BUFFER_GETS, ROWS_PROCESSED ИЗ V$SQLAREA
двадцать один. Просмотр количества категорий объектов
выберите декодирование (o.type#,1,'INDEX', 2,'TABLE', 3, 'CLUSTER', 4, 'VIEW', 5,
'SYNONYM', 6, 'SEQUENCE', 'OTHER') object_type, count(*) количество из
sys.obj$ o где o.type# > 1 группируется по декодированию (o.type#,1,'INDEX', 2,'TABLE', 3
, 'КЛАСТЕР', 4, 'ПРОСМОТР', 5, 'СИНОНИМ', 6, 'ПОСЛЕДОВАТЕЛЬНОСТЬ', 'ДРУГИЕ') союз выберите
'COLUMN', count(*) из объединения sys.col$, выберите 'DB LINK', count(*) из
двадцать два. Просмотр типов объектов по пользователю
выберите схему u.name, индексы sum(decode(o.type#, 1, 1, NULL))
sum(decode(o.type#, 2, 1, NULL)) таблицы, sum(decode(o.type#, 3, 1, NULL))
кластеры, sum(decode(o.type#, 4, 1, NULL)) представления, sum(decode(o.type#, 5, 1,
NULL)) синонимы, последовательности sum(decode(o.type#, 6, 1, NULL))
sum(decode(o.type#, 1, NULL, 2, NULL, 3, NULL, 4, NULL, 5, NULL, 6, NULL, 1))
другие из sys.obj$ o, sys.user$ u, где o.type# >= 1 и u.user# =
o.owner# и u.name <> группа 'PUBLIC' по u.name в порядке
sys.link$ объединение выберите 'CONSTRAINT' , count(*) из sys.con$
двадцать три. Сопутствующая информация о подключении
1) Проверьте, какие пользователи подключены
выберите s.osuser os_user_name, decode(sign(48 - команда), 1, to_char(команда),
'Код действия #' || to_char(команда) ) действие, p.program oracle_process,
статус session_status, терминал s.terminal, программа s.program,
s.username имя_пользователя, s.fixed_table_sequence Activity_meter, 'запрос,
0 памяти, 0 max_memory, 0 cpu_usage, s.sid, s.serial# серийный_номер
из v$session s, v$process p, где s.paddr=p.addr и s.type = 'USER'
сортировать по s.username, s.osuser
2) Проверьте использование ресурсов соответствующего соединения на основе v.sid.
выберите имя,
v.значение,
н.класс,
n.statistic#
из v$statname n,
v$sesstat v
где v.sid = 71 и
v.statistic# = n.statistic#
упорядочить по n.class, n.statistic#
3) Проверить работающий sql соответствующего соединения на основе sid
выберите /*+ PUSH_SUBQ */
тип_команды,
sql_текст,
разделяемая_мемь,
постоянная_мем,
runtime_mem,
виды,
количество_версий,
загруженные_версии,
открытые_версии,
пользователи_открытие,
казни,
пользователи_выполнение,
нагрузки,
первое_время_загрузки,
аннулирование,
parse_calls,
диск_чтение,
буфер_получает,
строки_обработано,
системная дата start_time,
системная дата завершения_времени,
'>' || адрес sql_address,
Статус «Н»
из v$sqlarea
где адрес = (выберите sql_address из v$session, где sid = 71)
двадцать четыре. Запросить использование табличного пространства. выберите a.tablespace_name "имя табличного пространства",
100-round((nvl(b.bytes_free,0)/a.bytes_alloc)*100,2) "Занятость (%)",
round(a.bytes_alloc/1024/1024,2) "Емкость (М)",
round(nvl(b.bytes_free,0)/1024/1024,2) "Свободно(M)",
round((a.bytes_alloc-nvl(b.bytes_free,0))/1024/1024,2) "Использовать (M)",
Самый большой «Сегмент максимального выдвижения (M)»,
to_char(sysdate,'гггг-мм-дд чч24:ми:сс') "время выборки"
from (выберите f.tablespace_name,
сумма (f.bytes) bytes_alloc,
sum(decode(f.autoextensible,'YES',f.maxbytes,'NO',f.bytes)) maxbytes
из dba_data_files f
группировать по имени_табличного_пространства) a,
(выберите f.tablespace_name,
сумма (f.bytes) bytes_free
из dba_free_space f
группировать по имени_табличного_пространства) b,
(выберите раунд(макс(ff.длина)*16/1024,2) Самый большой,
ts.name имя_табличного_пространства
из sys.fet$ ff, sys.file$ tf,sys.ts$ ts
где ts.ts#=ff.ts# и ff.file#=tf.relfile# и ts.ts#=tf.ts#
группировать по ts.name, tf.blocks) c
где a.имя_табличного_пространства = b.имя_табличного_пространства и a.имя_табличного_пространства = c.имя_табличного_пространства
25. Запрос степени фрагментации табличного пространства
выберите имя_табличного_пространства,count(имя_табличного_пространства) из группы dba_free_space по имени_табличного_пространства
имея count(имя_табличного_пространства)>10;
изменить имя табличного пространства; объединиться;
изменить имя таблицы, освободить неиспользуемое;
создать или заменить представление ts_blocks_v как
выберите имя_табличного_пространства,идентификатор_блока,байты,блоки,имя_сегмента «свободное пространство» из dba_free_space
объединить все
выберите имя_табличного_пространства,идентификатор_блока,байты,блоки,имя_сегмента из dba_extents;
выберите * из ts_blocks_v;
выберите tablespace_name,sum(bytes),max(bytes),count(block_id) из dba_free_space
группировать по имени табличного_пространства;
26. Проверьте, какие экземпляры запущены:
выберите * из v$active_instances;
-