Дек. 172009
 

Тази сутрин една БД ме посрещна с 5 сесии, които висят от няколко часа върху 'cursor: pin S wait on X'. Бърз поглед из нета ми показа, че има твърде много буболечки, свързани с тия мутекси.

Но на Коледа стават чудеса. Оказа се, че при мен проблема е много по-прозаичен. Трябваше само да намеря кой, по дяволите, е отговорен заключването. Оказа се, че всяка от 5-те сесии чака различна друга сесия. Коя по-точно се намира така:

SELECT inst_id, sid blocked_sid, p2raw, 
       to_number(substr(to_char(rawtohex(p2raw)), 1, 8), 'XXXXXXXX') blocking_sid
  FROM gv$session
 WHERE event = 'cursor: pin S wait on X'
 order by 1, 2;

Всички виновници се оказаха заспали долу-горе по едно време, все поради прекъсване по средата на distributed query. Причините за това хлъцване са ми ясни. Просто за пръв път виждам това да доведе до спор за мутекси…

Избих заспалите сесии и отидох да си направя чай.

А на вън вече не вали сняг.

 Posted by at 9:22

  2 Responses to “Добро утро: pin S wait on X”

  1. Bug 5907779: CURSOR: PIN S WAIT ON X“ RUNNING DBMS_STATS.GATHER_DATABASE_STATS_JOB_PROC
    Bug 7234778:SELECTS AGAINST DUAL CAUSE CURSOR PIN S WAIT ON X WAITS
    Bug 7027252: LONG WAIT FOR ‘LIBRARY CACHE LOCK’ AND ‘CURSOR: PIN S WAIT ON X’
    Bug 5964485: HIGH WAIT IN RAC OF „LIBRARY CACHE LOCK“ AND „CURSOR: PIN S WAIT ON X“
    Bug 7307972: HIGH VALUE FOR LIBRARY CACHE: MUTEX X“ IN AWR AS TOP WAIT EVENT
    Bug 7288805: „CURSOR: PIN S WAIT ON X“ EVENTS AND EXTREME PERFORMANCE IMPACT
    turn off mutexes: _kks_use_mutex_pin = FALSE

  2. Мда, има твърде много буболечки, свързани с тия мутекси 🙂
    Но като цяло идеята е „за добро“. Едно време и Cursor sharing-а беше супер бъглив, както е бил и Multi-threaded server-а при пускането си, и т.н….

Sorry, the comment form is closed at this time.