Oracle mechanics

ad-hoc diagnosis

Как проанализировать, чем в настоящий момент занят сервер Oracle, «что делают» сессии пользователей, почему долго выполняются запросы?

Запрос для мониторинга состояния текущих сессий: ожидания, блокировки, исполняемые SQL, long operations и т.д. (Oracle 10+) — session_waits.sql. Тот же скрипт — для Oracle 8/9.

Ожидания подключённой сессии

select
event,
wait_class,
total_waits,
total_timeouts,
time_waited,
average_wait
from V$session_event
where sid = &SID
order by time_waited desc;

Суммарные ожидания/использования CPU подключённых пользовательских сессий

! Краткосрочная динамика ожиданий сессий в скрипте Steve Adams’а waiters.sql

!! Run-time скрипты от Tanel Poder’а: waitprof.sql, snapper, latchprof.sql,… — «…to sample V$SESSION_WAIT for a session up to 100 000 times per second!» — удивительные возможности Oracle SQL !!

Пакет Тома Кайта RUNSTATS для сравнительного анализа статистик сессии, latch activity при выполнении разных версий процедур/запросов. Развитие идеи на сайте http://www.oracle-developer.net/.

Как найти и удалить процессы в Unix системе, оставшиеся после выполнения команды ALTER SYSTEM KILL SESSION ‘sid,serial#’

SELECT USERNAME, terminal, program, 'kill '||spid
FROM v$process
WHERE NOT EXISTS ( SELECT 1 FROM v$session WHERE paddr = addr)
and UPPER(program) not like '%PSEUDO%'
and UPPER(program) not like '%D00%'
and UPPER(program) not like '%S00%';

274216.1 Removing Sessions in Killed Status on Unix

TrackBack URI

Блог на WordPress.com.

%d такие блоггеры, как: