powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / что можно выудить из latch free в v$session_wait?
25 сообщений из 51, страница 1 из 3
что можно выудить из latch free в v$session_wait?
    #35469713
latch free
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пытаюсь разобраться, почему висит программа на одном запросе около минуты, хотя если его выполняю в sqlplus - выполняется миллисекунды и план нормальный - без фулл скэнов. Смотрю v$session_wait. вот типичный пример:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 SID   SEQ#   EVENT#  EVENT                    P1TEXT             P1  P2TEXT        P2  P3TEXT    P3   WAIT_TIME   WAIT_COUNT  
-------------------------------------------------------------------------------------------------------------------------------
  284        1        117   db file scattered read   file#                7   block#     212291   blocks     16             0              1   
  284        2        117   db file scattered read   file#                7   block#     212275   blocks     16             0              1   
  284        3        291   latch free               address     2158731500   number        127   tries       0           243              1   
  284        4        117   db file scattered read   file#                8   block#     200365   blocks     16             0              1   
  284        5        117   db file scattered read   file#                8   block#     200349   blocks     16             0              1   
  284        6        117   db file scattered read   file#                8   block#     200493   blocks     16             0              1   
  284        7        117   db file scattered read   file#                8   block#     200477   blocks     16             0              1   
  284        8        117   db file scattered read   file#                8   block#     200461   blocks     16             0              1   
  284        9        117   db file scattered read   file#                8   block#     200445   blocks     16             0              1   
  284       10        117   db file scattered read   file#                8   block#     200429   blocks     16             0              1   
ну db file scattered read - вроде ясно, читает эту несчастную таблицу (около млн. записей), с 120 экстентами рассеянную по нескольким файлам. Нехорошо, но не смертельно. А какую информацию можно вытащить из latch free? Могут они быть источником зла?
...
Рейтинг: 0 / 0
что можно выудить из latch free в v$session_wait?
    #35469725
jan2ary
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отсюда много не увидишь: латчи - они такие, что без них никуда. Другое дело, как часто приходится их перезапрашивать и переперезапрашивать и пере...
Хорошо бы трассировку сделать, или посмотреть v$session_event по сессии.
...
Рейтинг: 0 / 0
что можно выудить из latch free в v$session_wait?
    #35469742
latch free
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
jan2ary
Хорошо бы трассировку сделать, или посмотреть v$session_event по сессии.
сорри, это конечно был v$session_wait_history, не v$session_wait... Вот привожу v$session_event - не очень хорошо я понимаю, как это нужно расшифровывать...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Select EVENT, TOTAL_WAITS, TOTAL_TIMEOUTS, TIME_WAITED from V$SESSION_event
where sid= 284  order by TIME_WAITED desc
----------------------------------------------------------------------------------------------------

EVENT                            TOTAL_WAITS   TOTAL_TIMEOUTS   TIME_WAITED  
-----------------------------------------------------------------------------
SQL*Net message from client          13006885                  0       276538332   
db file scattered read                1965249                  0          803054   
log file sync                         1134547                297          579909   
read by other session                   21072               3267          476654   
events in waitclass Other               11075                  0          256810   
latch: cache buffers chains              3149                  0           83615   
db file sequential read                285798                  0           30239   
SQL*Net more data to client           1655885                  0           27120   
SQL*Net message to client            13006886                  0           21506   
latch: library cache                      396                  0            1318   
log file switch completion                106                  0             446   
enq: TX - index contention                 41                  0             367   
buffer busy waits                        1070                  0             299   
latch: In memory undo latch               217                  0             134   
cursor: pin S wait on X                    75                 74              89   
latch: shared pool                          7                  0              72   
enq: TX - row lock contention              21                  0              41   
db file parallel read                     214                  0               9   
latch: library cache lock                  12                  0               4   
latch: row cache objects                    7                  0               1   
latch: redo copy                            1                  0               0   
latch: library cache pin                    1                  0               0   
...
Рейтинг: 0 / 0
что можно выудить из latch free в v$session_wait?
    #35469802
jan2ary
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по топовому ожиданию и его отрыву от ближайших преследователей - где-то Ваша программа слишком долго думает (над возвращенными результатами, либо о чем-то своем). В таком случае база тут ни при чем, весь затык в приложении.
...
Рейтинг: 0 / 0
что можно выудить из latch free в v$session_wait?
    #35469811
Фотография RA\/EN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По сравнению с количеством roundtrips с клиентом (13 миллионов) все остальное - ерунда.
"Нехорошие" ожидания из-за того, что эту табличку слишном интенсивно читают несколько сессий, отсюда "read by other session" - сессия хочет блок, но ждет, пока его читает другая сессия.
Хотя, конечно, в среднем 0.2 секунды многовато на один RbOS, но при большом объеме LIO вполне может быть.

А возвращаясь к начальному вопросу (плчему висит программа) - это у программы и спрашивайте, судя по всему она очень уж много резурсов тратит на обработку каждой строки получаемого запроса. Вполне возможно, что она умеет брать только строчка-за-строчкой, а не пакетно, что вполне объясняет 0.2 секунды на сетевое взаимодействие + время обработки одной строки.
...
Рейтинг: 0 / 0
что можно выудить из latch free в v$session_wait?
    #35470337
sql+
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
latch freeпытаюсь разобраться, почему висит программа на одном запросе около минуты, хотя если его выполняю в sqlplus - выполняется миллисекунды и план нормальный - без фулл скэнов. Смотрю v$session_wait. вот типичный пример:
Код: plaintext
1.
2.
 SID   SEQ#   EVENT#  EVENT                    P1TEXT             P1  P2TEXT        P2  P3TEXT    P3   WAIT_TIME   WAIT_COUNT  
-------------------------------------------------------------------------------------------------------------------------------
  284        3        291   latch free               address     2158731500   number        127   tries       0          
А какую информацию можно вытащить из latch free

Наименование можно выцепить. И посмотреть на металинке инфу насчёт него.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SQL> variable v_latch number
exec :v_latch:= 127 ;
select *
from v$latchname
where latch# = :v_latch;
SQL> 
PL/SQL procedure successfully completed.

SQL>    2      3   
    LATCH# NAME                                                     HASH
---------- -------------------------------------------------- ----------
        127  simulator lru latch                                  405505728 
...
Рейтинг: 0 / 0
что можно выудить из latch free в v$session_wait?
    #35470365
StarBlade
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Латчи - лишь симптом. Причина похоже не в базе а в ожидании реакции клиента.
...
Рейтинг: 0 / 0
что можно выудить из latch free в v$session_wait?
    #35470379
sql+
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
StarBladeЛатчи - лишь симптом. Причина похоже не в базе а в ожидании реакции клиента.

Если ты не в курсе, ожидания типа SQL*Net message from client как правило в расчёт не берутся.
Рекация клиента тут непричём.
...
Рейтинг: 0 / 0
что можно выудить из latch free в v$session_wait?
    #35470409
StarBlade
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sql+
Если ты не в курсе, ожидания типа SQL*Net message from client как правило в расчёт не берутся.
Рекация клиента тут непричём.

В расчет чего? В плюсе мгновенно - а в приложении (судя по всему) медленно. Ну и на рабочей базе (если это действительно рабочая) все не так однозначно.
...
Рейтинг: 0 / 0
что можно выудить из latch free в v$session_wait?
    #35470424
wurdu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sql+Если ты не в курсе, ожидания типа SQL*Net message from client как правило в расчёт не берутся.Я бы не обобщал. SQL*Net Message from client - Idle Time or your Problem?
...
Рейтинг: 0 / 0
что можно выудить из latch free в v$session_wait?
    #35470439
Фотография RA\/EN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sql+ StarBladeЛатчи - лишь симптом. Причина похоже не в базе а в ожидании реакции клиента.

Если ты не в курсе, ожидания типа SQL*Net message from client как правило в расчёт не берутся.
Рекация клиента тут непричём.
Вы очень категоричны
Вы знаете, что "как правило в расчет не берутся", но можете объяснить, что это за "правило", позволяющее игнорировать ожидание, возникающее в 10 раз чаще любого другого?
...
Рейтинг: 0 / 0
что можно выудить из latch free в v$session_wait?
    #35470483
sql+
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я бы был категоричен если бы это была исключительно моя точка зрения. Однако в любом отчёте statspack вы увидете такую фразу:ordered by wait time desc, waits desc ( idle events last )

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Wait Events for DB:
> ordered by wait time desc, waits desc (idle events last)
Top  5  Timed Events
~~~~~~~~~~~~~~~~~~                                                     % Total
Event                                               Waits    Time (s) Ela Time
-------------------------------------------- ------------ ----------- --------
db file sequential read                         17 , 050 , 605       276 , 209      37 . 06 
CPU time                                                       226 , 484      30 . 39 
db file scattered read                           3 , 241 , 322        61 , 014       8 . 19 
direct path read (lob)                           3 , 419 , 503        36 , 753       4 . 93 
io done                                          1 , 269 , 406        21 , 155       2 . 84 
          -------------------------------------------------------------
Wait Events for DB: WF  Instance: wf  Snaps:  229  - 238 
-> s  - second
-> cs - centisecond -     100th of a second
-> ms - millisecond -    1000th of a second
-> us - microsecond - 1000000th of a second
-> ordered by wait time desc, waits desc (idle events last)

                                                                   Avg
                                                     Total Wait   wait    Waits
Event                               Waits   Timeouts   Time (s)   (ms)     /txn
---------------------------- ------------ ---------- ---------- ------ --------
db file sequential read         17 , 050 , 605            0      276 , 209       16       19 . 0 
db file scattered read           3 , 241 , 322            0       61 , 014       19        3 . 6 
direct path read (lob)           3 , 419 , 503            0       36 , 753       11        3 . 8 
io done                          1 , 269 , 406      404 , 412       21 , 155       17        1 . 4 
buffer busy waits                  967 , 353          473       16 , 308       17        1 . 1 

В самом конце
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
                                                                   Avg
                                                     Total Wait   wait    Waits
Event                               Waits   Timeouts   Time (s)   (ms)     /txn
---------------------------- ------------ ---------- ---------- ------ --------
SQL*Net message from client     17 , 265 , 432            0  ##########     813       19 . 3 
jobq slave wait                  1 , 110 , 737      920 , 582    2 , 899 , 755     2611        1 . 2 
wakeup time manager                 47 , 006       46 , 523    1 , 114 , 978    23720        0 . 1 
i/o slave wait                   1 , 731 , 859        3 , 428        5 , 507        3        1 . 9 
SQL*Net more data from clien     2 , 753 , 313            0        2 , 627        1        3 . 1 
SQL*Net message to client       17 , 265 , 391            0           23        0       19 . 3 

Поэтому как правило, данное ожидание не должно браться в расчёт.

По той информации, которую выдал автор темы, нет никаких оснований утверждать иное.
...
Рейтинг: 0 / 0
что можно выудить из latch free в v$session_wait?
    #35470486
sql+
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
RA\/EN sql+ StarBladeЛатчи - лишь симптом. Причина похоже не в базе а в ожидании реакции клиента.

Если ты не в курсе, ожидания типа SQL*Net message from client как правило в расчёт не берутся.
Рекация клиента тут непричём.
Вы очень категоричны
Вы знаете, что "как правило в расчет не берутся", но можете объяснить, что это за "правило", позволяющее игнорировать ожидание, возникающее в 10 раз чаще любого другого?

А объяснить проще простого - клиент ничего не делает в приложении- пъёт чай, курит, пошёл пописать, вызвали к начальсту, смотрит почту, переписывается в аське - а приложение загружено - но ничего не делает, а событие SQL*Net message from client тем временем увеличивается.
...
Рейтинг: 0 / 0
что можно выудить из latch free в v$session_wait?
    #35470552
Фотография RA\/EN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sql+Я бы был категоричен если бы это была исключительно моя точка зрения. Однако в любом отчёте statspack вы увидете такую фразу:ordered by wait time desc, waits desc ( idle events last )
...

Поэтому как правило, данное ожидание не должно браться в расчёт.

По той информации, которую выдал автор темы, нет никаких оснований утверждать иное.
latch freeпочему висит программа на одном запросе около минуты, хотя если его выполняю в sqlplus - выполняется миллисекунды
Не, не оно?
Соотношение TOTAL WAITS у SQL*Net message from client и db file scattered read тоже ни о чем не говорит?
Рассмотрение каждого отдельного ожидания в отрыве от остальных - что-то вроде утверждения "90-60-90 - идеальная девушка!", не обращая внимание на то, что это "рост-возраст-вес"
P.S. Я не утверждаю, что возможная проблема в клиенте - единственно верный и окончательный диагноз (хотя по симптомам - именно оно), но отвергать версию ("Рекация клиента тут непричём.") с аргументацией в виде сортировки статспаковских отчетов - юношеский максимализм. Еще раз подумайте над КОЛИЧЕСТВОМ ожиданий SQL*Net message from client.
...
Рейтинг: 0 / 0
что можно выудить из latch free в v$session_wait?
    #35470557
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sql+А объяснить проще простого - клиент ничего не делает в приложении- пъёт чай, курит, пошёл пописать, вызвали к начальсту, смотрит почту, переписывается в аське - а приложение загружено - но ничего не делает, а событие SQL*Net message from client тем временем увеличивается.
... либо лопатит кучу данных _построчно_ с огромным количеством roundtrip'ов (что характерно для топикстартера).
Оракл ведь считает что они idle потому что для него они действительно idle, но не для клиента - они входят в респонс тайм приложения точно так же как и другие ивенты.
...
Рейтинг: 0 / 0
что можно выудить из latch free в v$session_wait?
    #35470563
latch free
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sql+
А объяснить проще простого - клиент ничего не делает в приложении- пъёт чай, курит, пошёл пописать, вызвали к начальсту, смотрит почту, переписывается в аське - а приложение загружено - но ничего не делает, а событие SQL*Net message from client тем временем увеличивается.
Да, всё так :-). Программа (это фоновый процесс) и ORACLE не находятся в состоянии непрерывного обмена данными, но остаются connected. Т.е. в цикле есть период активности, потом программа засыпает на 10 секунд, просыпается и снова что-то делает...

единственно, что не очень понятно - что количество SQL*Net message from client и SQL*Net message to client одинаково (хотя время существенно различается). SQL*Net message to client чего ждет?
...
Рейтинг: 0 / 0
что можно выудить из latch free в v$session_wait?
    #35470589
latch free
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ступил, сорри... :-/ Всё понятно: при N сеансах работы есть N*M SQL*Net message to client и N*M SQL*Net message from client (ну может на один меньше :-). Из SQL*Net message from client олько один - последний - тянется до начала следующего сеанса, а среди SQL*Net message to client таких длинных нет вообще
...
Рейтинг: 0 / 0
что можно выудить из latch free в v$session_wait?
    #35470599
sql+
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
RA\/EN
"Нехорошие" ожидания из-за того, что эту табличку слишном интенсивно читают несколько сессий, отсюда "read by other session" - сессия хочет блок, но ждет, пока его читает другая сессия.


Подозреваю что ты неправильно понимаешь смысл данного события. Связи между "эту табличку слишном интенсивно читают несколько сессий" и данным ожиданием нет никакой.
...
Рейтинг: 0 / 0
что можно выудить из latch free в v$session_wait?
    #35470690
latch free
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sql+ RA\/EN
"Нехорошие" ожидания из-за того, что эту табличку слишном интенсивно читают несколько сессий, отсюда "read by other session" - сессия хочет блок, но ждет, пока его читает другая сессия.


Подозреваю что ты неправильно понимаешь смысл данного события. Связи между "эту табличку слишном интенсивно читают несколько сессий" и данным ожиданием нет никакой.
не могли бы вы тогда обьяснить смысл этого события? Меня оно как раз тоже заинтересовало, но путных обьяснений пока не нашел...
...
Рейтинг: 0 / 0
что можно выудить из latch free в v$session_wait?
    #35470696
sql+
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Предлагаю сначала послушать RAVEN-а, как он это понимает.
...
Рейтинг: 0 / 0
что можно выудить из latch free в v$session_wait?
    #35470712
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sql+ RA\/EN
"Нехорошие" ожидания из-за того, что эту табличку слишном интенсивно читают несколько сессий, отсюда "read by other session" - сессия хочет блок, но ждет, пока его читает другая сессия.


Подозреваю что ты неправильно понимаешь смысл данного события. Связи между "эту табличку слишном интенсивно читают несколько сессий" и данным ожиданием нет никакой.
Да ну? а по-моему, такая связь прослеживается очень часто. Две сессии, читающие данные таблички, желают видеть в кэше один и тот же блок. одна читает, другая ждет - очень распространенная ситуевина.
...
Рейтинг: 0 / 0
что можно выудить из latch free в v$session_wait?
    #35470733
sql+
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Timm sql+ RA\/EN
"Нехорошие" ожидания из-за того, что эту табличку слишном интенсивно читают несколько сессий, отсюда "read by other session" - сессия хочет блок, но ждет, пока его читает другая сессия.


Подозреваю что ты неправильно понимаешь смысл данного события. Связи между "эту табличку слишном интенсивно читают несколько сессий" и данным ожиданием нет никакой.
Да ну? а по-моему, такая связь прослеживается очень часто. Две сессии, читающие данные таблички, желают видеть в кэше один и тот же блок. одна читает, другая ждет - очень распространенная ситуевина.


Так как ты это описал - может. В том как сформулировал RAVEN мне показалось не совсем.
Я надеюсь что он всё таки появится и уточнит что он имел ввиду.
...
Рейтинг: 0 / 0
что можно выудить из latch free в v$session_wait?
    #35470833
Фотография RA\/EN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sql+ RA\/EN
"Нехорошие" ожидания из-за того, что эту табличку слишном интенсивно читают несколько сессий, отсюда "read by other session" - сессия хочет блок, но ждет, пока его читает другая сессия.


Подозреваю что ты неправильно понимаешь смысл данного события. Связи между "эту табличку слишном интенсивно читают несколько сессий" и данным ожиданием нет никакой.
2sql+:
Первая же ссылка в гугле:

Read By Other Session
Definition: When information is requested from the database, Oracle will first read the data from disk into the database buffer cache. If two or more sessions request the same information, the first session will read the data into the buffer cache while other sessions wait. In previous versions this wait was classified under the "buffer busy waits" event. However, in Oracle 10.1 and higher this wait time is now broken out into the "read by other session" wait event. Excessive waits for this event are typically due to several processes repeatedly reading the same blocks, e.g. many sessions scanning the same index or performing full table scans on the same table. Tuning this issue is a matter of finding and eliminating this contention.
Перевести на русский?

2latch free:
latch freeпытаюсь разобраться, почему висит программа на одном запросе около минуты
latch freeДа, всё так :-). Программа (это фоновый процесс) и ORACLE не находятся в состоянии непрерывного обмена данными, но остаются connected. Т.е. в цикле есть период активности, потом программа засыпает на 10 секунд, просыпается и снова что-то делает...
Так, значит, не "программа", а "фоновый процесс". Объясните, что значит "висит"? Для того, чтобы не знаниматься гаданием на кофейной гуще, приведите 2 факта:
1. Загрузка ЦПУ "висящим" процессом
2. Трейс сессии за 10 минут (лучше непарсеный в архиве) - как снять трассировку - в разделе FAQ данного сайта.
...
Рейтинг: 0 / 0
что можно выудить из latch free в v$session_wait?
    #35470846
sql+
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На русский не нужно переводить. Я просто хотел понять как ты понимаешь суть ожидания, чего именно ждут сессии. В данном твоя случае ссылка на документ этого не раскрывает.
...
Рейтинг: 0 / 0
что можно выудить из latch free в v$session_wait?
    #35470869
sql+
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ты просто объясни своими словами это и закончим на этом.
авторtwo or more sessions request the same information, the first session will read the data into the buffer cache while other sessions wait.
...
Рейтинг: 0 / 0
25 сообщений из 51, страница 1 из 3
Форумы / Oracle [игнор отключен] [закрыт для гостей] / что можно выудить из latch free в v$session_wait?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]