Проблема с файлом USERS01.DBF

Daphne
Дата: 30.09.2015 14:00:46
Добрый день!
У меня база Oracle 11g. Стала очень медленно работать. Когда посмотрела Мониторинг ресурсов - увидела бешеную цифру чтения из файла USERS01.DBF - аж 6 гигабит в минуту! Каким образом можно узнать кто именно так круто "читает" и что читает?
И еще насколько я знаю, в MySQL есть понятие slow_query_long. Подскажите пожалуйста, есть ли аналог в Оракле и если есть, то где это можно посмотреть?
Спасибо!!!
совсем чайник
Дата: 30.09.2015 14:10:30
1. Сформируйте awr (о рабочей нагрузке) отчёт, чтобы там увидеть топы запросов за рабочий день, в том числе по I/O
2. Если у вас не запущена DBConsole, то запустите, в OEM на вкладке SQL Monitoring увидите выполняющиеся/выполненные запросы
совсем чайник
Дата: 30.09.2015 14:13:58
Запрос ниже покажет статистику по логическим и физическим чтениям

select object_name, sum(value) from V$SEGMENT_STATISTICS where owner = 'SCHEMA' 
and STATISTIC_NAME in ('logical reads','physical reads') and object_type = 'TABLE'
group by object_name
order by 2 desc; 
совсем чайник
Дата: 30.09.2015 14:19:35
так можно посмотреть статистику физическим чтениям и записи
select d.name, t.name, F.PHYRDS, F.PHYWRTS, F.READTIM, F.WRITETIM
from v$datafile d,
v$filestat f,
v$tablespace t
where F.FILE#=D.FILE#
and D.TS#=T.TS#;
совсем чайник
Дата: 30.09.2015 14:23:43
Попробуйте поискать фуллсканы, из v$active_session_history получите SQL_ID запроса и USER_ID пользователя

select A.SAMPLE_TIME, A.SQL_ID, A.USER_ID, A.SQL_PLAN_OPERATION, A.SQL_PLAN_OPTIONS
from v$active_session_history a
where lower(A.SQL_PLAN_OPTIONS) like '%full%'
order by A.SAMPLE_TIME desc;


далее из представления v$sqltext узнаете, что это за запрос, т.е. сам текст запроса сможете получить.

select *
from v$sqltext t
where T.SQL_ID='SQL_ID';
совсем чайник
Дата: 30.09.2015 14:35:34
Возможно у вас слишком маленький буфферный кэш, или память SGA не правильно распределена.
Посмотрите:
select component, current_size/1024/1024, user_specified_size/1024/1024
from v$memory_dynamic_components
order by 2 desc;

Найдите топ таблиц на чтение, проверьте, есть ли индексы у этих таблиц, используются ли они,
посмотрите планы запросов в OEM, или с помощью dbms_xplan
совсем чайник
Дата: 30.09.2015 14:39:04
Также можете выполнить ash отчёт.
$ORACLE_HOME/rdbms/admin/ashrpt.sql

https://oracle-base.com/articles/10g/active-session-history
совсем чайник
Дата: 30.09.2015 14:40:16
Жду ответы ГУРУ, правильно ли я мыслю или нет.
А то может насоветовал чего дурного.
mefman
Дата: 30.09.2015 15:57:02
совсем чайник
1. Сформируйте awr (о рабочей нагрузке) отчёт, чтобы там увидеть топы запросов за рабочий день, в том числе по I/O

Для начала можно и ADDM посмотреть.
А вообще вырезать аппендицит по телефону - неблагодарное занятие.