Dsvolk > > Oracle > > Tuning > > Session_waits My Blog | Search | About
(Not Logged In)
[ welcome! ] [ news ] [ install ] [ jump-jet ] [ app ] [ rac ] [ papers ] [ dba ] [ dvp ] [ racdd4d ] [ oem ] [ statspack ] [ education ] [ tuning ] [ ias ] [ backup ] [ dataprotection ] [ security ] [ oid ] [ options ] [ integration ] [ sales ] [ sun ] [ linux ] [ consulting ] [ faq ]

Кое что об теущих ожиданиях пользователей

Соглашение о материалах на этом сайте

Мой oracle blog
true dsvolk!
 
 Не секрет, что набольшее желание у администраторов возникает понимать, что происходит в системе прямо сейчас. Да резервное копирование, восстановление, да умные параметры в init.ora,  но почему мне звонят и жалуются пользователи  сейчас ? 

На мой взгляд, наиболее простой вариант заглянуть в v$session_wait, выделив сессии, находящиеся в состоянии ожидания (state = 'WAITING').

Это прием все знают. Но что делать с полученным выводом не вполне очевидно. Ну получили  вы, что все ожидают 'latch free', а что дальше ?. Ага, оказывается, с помощью 3 параметров p1,p2, p3 можно разгадать за какой  именно latch идет конкуренция. Но держать в голове, что означают параметры для каждого из событий ожидания очень сложно. Поэтому я попытался написать скрипт, который сразу показывает в понятном виде что происходит (требуется Oracle 9i !) 

На данный момент он раскрывает 

  • для cache buffers chains, buffer busy waits, db file scattered read, db file sequential read  наименование объекта и его владельца
  • для enqueuе - тип блокировки 
  • для latch free - имя защелки

Для каждой сессии показывается тип текущей выполняемой команды на которой произошло ожидание.

Установка и запуск

Сначала нужно создать в схеме sys вспомогательные объекты create_apt_tables.sql

Затем запускать  скрипт session_waits.sql   с привилегиями пользователя sys

Ограничения:

Скрипт отрабатывает не менее 1 сек и запускать его часто не рекомендуется, только уж когда совсем плохо становится.

Если скрипт работает долго (сильно больше 10 сек) попробуйте выполнять его по частям (скажем сначала кусок по cache buffers chains, затем по enqueue чтобы определить причину медленной работы. Пришлите ее мне с указанием объема SGA и кол-ва пользователей.  Beta тестеры  получат окончательные вариант скрипта !.

ToDo:

Расширить список раскрываемых ожиданий

Получать события ожидания прямым чтением из SGA с частотой скажем 1 раз в сек. 

Сопоставлять эту информацию  с информацией о том, сколько то или иное ожидание заняло времени от жизни сессии  

Web интерфейс (cgi ?,java ?)

Поддержка 10g (скрипт работает с косметическим изменением)

Dsvolk > > Oracle > > Tuning > > Session_waits Last Modified: 16-11-2004 01:32