2015-11-27 4 views
1

Так как часть реконфигурации нашей базы данных оракула, я пытаюсь выяснить, какова максимальная сумма процессов из экземпляра нашей базы данных.Oracle 11G - Определение пиковых процессов и сеансов

Хотя я могу получить текущие процессы/сеансы, которые работают в базе данных, я не уверен, есть ли функция/представление, которая содержит эту информацию в 11G.

Я выполнил поиск, однако ничего не произошло.

Спасибо, C

ответ

1

Я надеюсь, что я правильно понимаю, что вы хотите найти исторические данные о сессии деятельности в целях мониторинга производительности. Есть несколько решений, о которых я могу думать.

Я бы предложил DBA_HIST_ACTIVE_SESS_HISTORY, V $ ACTIVE_SESSION_HISTORY для исторических данных и V $ SESSION для текущих данных. (Я думаю, вы используете V $ SESSION для получения текущего состояния процессов/сеансов).

Если этого недостаточно, вы всегда можете создать свою собственную процедуру с запланированным выполнением и сохранить моментальные снимки текущего состояния где-нибудь или использовать Zabbix trapper (или любой другой инструмент мониторинга по вашему выбору) для мониторинга активности БД.

Если у вас есть Oracle Enterprise Manager, я бы рекомендовал его использовать. Вы можете использовать страницу производительности, чтобы видеть как текущие, так и исторические данные на сеансах, а также генерировать отчеты ASH.

0

Пиковые процессы и сеансы доступны в активном репозитории рабочей нагрузки (AWR) в DBA_HIST_SYSMETRIC_SUMMARY.

--Maximum number of sessions. 
select instance_number, maxval, begin_time 
from dba_hist_sysmetric_summary 
where metric_name = 'Session Count' 
order by maxval desc, begin_time desc; 

--Maximum number of processes. 
--This is a little trickier because only the Limit is stored so it must be compared 
--to the parameter value. 
--This assumes that the PROCESSES parameter hasn't changed recently. 
select instance_number, round(maxval/100 * gv$parameter.value) processes, begin_time 
from dba_hist_sysmetric_summary 
join gv$parameter 
    on dba_hist_sysmetric_summary.instance_number = gv$parameter.inst_id 
where gv$parameter.name = 'processes' 
    and metric_name = 'Process Limit %' 
order by processes desc, begin_time desc; 

Это, вероятно, информация для установки параметров PROCESSES и SESSIONS. Если вам действительно нужно знать, как активна база данных была, а затем посмотреть на DBA_HIST_ACTIVE_SESS_HISTORY, как упоминалось в J91321, это, вероятно, лучший метод.

+0

Спасибо за ответы ребята, вы можете подумать о причине, почему эти таблицы/представления отсутствуют в моей БД? Поскольку это забрасывает мне ошибку «ORA-00942 таблица или вид не существует». Я не DBA для базы данных, но у меня есть доступ к нему, чтобы делать случайный запрос, когда меня спрашивают. – varilight

+1

@varilight У вас, вероятно, нет разрешения на просмотр этой таблицы. Вам понадобится роль «SELECT_CATALOG_ROLE» или системная привилегия «ВЫБЕРИТЕ ЛЮБОЙ СЛОВАРЬ». –

+0

Ну, я думаю, что для доступа к любому представлению, начинающемуся с префикса DBA, вам нужна роль DBA или определенные привилегии для этого представления. Обратитесь к администратору базы данных. – J91321