|
|
|
что можно выудить из latch free в v$session_wait?
|
|||
|---|---|---|---|
|
#18+
пытаюсь разобраться, почему висит программа на одном запросе около минуты, хотя если его выполняю в sqlplus - выполняется миллисекунды и план нормальный - без фулл скэнов. Смотрю v$session_wait. вот типичный пример: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2008, 19:09 |
|
||
|
что можно выудить из latch free в v$session_wait?
|
|||
|---|---|---|---|
|
#18+
Отсюда много не увидишь: латчи - они такие, что без них никуда. Другое дело, как часто приходится их перезапрашивать и переперезапрашивать и пере... Хорошо бы трассировку сделать, или посмотреть v$session_event по сессии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2008, 19:18 |
|
||
|
что можно выудить из latch free в v$session_wait?
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2008, 19:34 |
|
||
|
что можно выудить из latch free в v$session_wait?
|
|||
|---|---|---|---|
|
#18+
Судя по топовому ожиданию и его отрыву от ближайших преследователей - где-то Ваша программа слишком долго думает (над возвращенными результатами, либо о чем-то своем). В таком случае база тут ни при чем, весь затык в приложении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2008, 20:26 |
|
||
|
что можно выудить из latch free в v$session_wait?
|
|||
|---|---|---|---|
|
#18+
По сравнению с количеством roundtrips с клиентом (13 миллионов) все остальное - ерунда. "Нехорошие" ожидания из-за того, что эту табличку слишном интенсивно читают несколько сессий, отсюда "read by other session" - сессия хочет блок, но ждет, пока его читает другая сессия. Хотя, конечно, в среднем 0.2 секунды многовато на один RbOS, но при большом объеме LIO вполне может быть. А возвращаясь к начальному вопросу (плчему висит программа) - это у программы и спрашивайте, судя по всему она очень уж много резурсов тратит на обработку каждой строки получаемого запроса. Вполне возможно, что она умеет брать только строчка-за-строчкой, а не пакетно, что вполне объясняет 0.2 секунды на сетевое взаимодействие + время обработки одной строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2008, 20:31 |
|
||
|
что можно выудить из latch free в v$session_wait?
|
|||
|---|---|---|---|
|
#18+
latch freeпытаюсь разобраться, почему висит программа на одном запросе около минуты, хотя если его выполняю в sqlplus - выполняется миллисекунды и план нормальный - без фулл скэнов. Смотрю v$session_wait. вот типичный пример: Код: plaintext 1. 2. Наименование можно выцепить. И посмотреть на металинке инфу насчёт него. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2008, 09:55 |
|
||
|
что можно выудить из latch free в v$session_wait?
|
|||
|---|---|---|---|
|
#18+
Латчи - лишь симптом. Причина похоже не в базе а в ожидании реакции клиента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2008, 10:06 |
|
||
|
что можно выудить из latch free в v$session_wait?
|
|||
|---|---|---|---|
|
#18+
StarBladeЛатчи - лишь симптом. Причина похоже не в базе а в ожидании реакции клиента. Если ты не в курсе, ожидания типа SQL*Net message from client как правило в расчёт не берутся. Рекация клиента тут непричём. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2008, 10:08 |
|
||
|
что можно выудить из latch free в v$session_wait?
|
|||
|---|---|---|---|
|
#18+
sql+ Если ты не в курсе, ожидания типа SQL*Net message from client как правило в расчёт не берутся. Рекация клиента тут непричём. В расчет чего? В плюсе мгновенно - а в приложении (судя по всему) медленно. Ну и на рабочей базе (если это действительно рабочая) все не так однозначно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2008, 10:20 |
|
||
|
что можно выудить из latch free в v$session_wait?
|
|||
|---|---|---|---|
|
#18+
sql+Если ты не в курсе, ожидания типа SQL*Net message from client как правило в расчёт не берутся.Я бы не обобщал. SQL*Net Message from client - Idle Time or your Problem? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2008, 10:23 |
|
||
|
что можно выудить из latch free в v$session_wait?
|
|||
|---|---|---|---|
|
#18+
sql+ StarBladeЛатчи - лишь симптом. Причина похоже не в базе а в ожидании реакции клиента. Если ты не в курсе, ожидания типа SQL*Net message from client как правило в расчёт не берутся. Рекация клиента тут непричём. Вы очень категоричны Вы знаете, что "как правило в расчет не берутся", но можете объяснить, что это за "правило", позволяющее игнорировать ожидание, возникающее в 10 раз чаще любого другого? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2008, 10:27 |
|
||
|
что можно выудить из latch free в v$session_wait?
|
|||
|---|---|---|---|
|
#18+
Я бы был категоричен если бы это была исключительно моя точка зрения. Однако в любом отчёте 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. В самом конце Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Поэтому как правило, данное ожидание не должно браться в расчёт. По той информации, которую выдал автор темы, нет никаких оснований утверждать иное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2008, 10:39 |
|
||
|
что можно выудить из latch free в v$session_wait?
|
|||
|---|---|---|---|
|
#18+
RA\/EN sql+ StarBladeЛатчи - лишь симптом. Причина похоже не в базе а в ожидании реакции клиента. Если ты не в курсе, ожидания типа SQL*Net message from client как правило в расчёт не берутся. Рекация клиента тут непричём. Вы очень категоричны Вы знаете, что "как правило в расчет не берутся", но можете объяснить, что это за "правило", позволяющее игнорировать ожидание, возникающее в 10 раз чаще любого другого? А объяснить проще простого - клиент ничего не делает в приложении- пъёт чай, курит, пошёл пописать, вызвали к начальсту, смотрит почту, переписывается в аське - а приложение загружено - но ничего не делает, а событие SQL*Net message from client тем временем увеличивается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2008, 10:42 |
|
||
|
что можно выудить из latch free в v$session_wait?
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2008, 11:05 |
|
||
|
что можно выудить из latch free в v$session_wait?
|
|||
|---|---|---|---|
|
#18+
sql+А объяснить проще простого - клиент ничего не делает в приложении- пъёт чай, курит, пошёл пописать, вызвали к начальсту, смотрит почту, переписывается в аське - а приложение загружено - но ничего не делает, а событие SQL*Net message from client тем временем увеличивается. ... либо лопатит кучу данных _построчно_ с огромным количеством roundtrip'ов (что характерно для топикстартера). Оракл ведь считает что они idle потому что для него они действительно idle, но не для клиента - они входят в респонс тайм приложения точно так же как и другие ивенты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2008, 11:07 |
|
||
|
что можно выудить из latch free в v$session_wait?
|
|||
|---|---|---|---|
|
#18+
sql+ А объяснить проще простого - клиент ничего не делает в приложении- пъёт чай, курит, пошёл пописать, вызвали к начальсту, смотрит почту, переписывается в аське - а приложение загружено - но ничего не делает, а событие SQL*Net message from client тем временем увеличивается. Да, всё так :-). Программа (это фоновый процесс) и ORACLE не находятся в состоянии непрерывного обмена данными, но остаются connected. Т.е. в цикле есть период активности, потом программа засыпает на 10 секунд, просыпается и снова что-то делает... единственно, что не очень понятно - что количество SQL*Net message from client и SQL*Net message to client одинаково (хотя время существенно различается). SQL*Net message to client чего ждет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2008, 11:09 |
|
||
|
что можно выудить из latch free в v$session_wait?
|
|||
|---|---|---|---|
|
#18+
ступил, сорри... :-/ Всё понятно: при 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 таких длинных нет вообще ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2008, 11:19 |
|
||
|
что можно выудить из latch free в v$session_wait?
|
|||
|---|---|---|---|
|
#18+
RA\/EN "Нехорошие" ожидания из-за того, что эту табличку слишном интенсивно читают несколько сессий, отсюда "read by other session" - сессия хочет блок, но ждет, пока его читает другая сессия. Подозреваю что ты неправильно понимаешь смысл данного события. Связи между "эту табличку слишном интенсивно читают несколько сессий" и данным ожиданием нет никакой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2008, 11:24 |
|
||
|
что можно выудить из latch free в v$session_wait?
|
|||
|---|---|---|---|
|
#18+
sql+ RA\/EN "Нехорошие" ожидания из-за того, что эту табличку слишном интенсивно читают несколько сессий, отсюда "read by other session" - сессия хочет блок, но ждет, пока его читает другая сессия. Подозреваю что ты неправильно понимаешь смысл данного события. Связи между "эту табличку слишном интенсивно читают несколько сессий" и данным ожиданием нет никакой. не могли бы вы тогда обьяснить смысл этого события? Меня оно как раз тоже заинтересовало, но путных обьяснений пока не нашел... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2008, 11:50 |
|
||
|
что можно выудить из latch free в v$session_wait?
|
|||
|---|---|---|---|
|
#18+
Предлагаю сначала послушать RAVEN-а, как он это понимает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2008, 11:51 |
|
||
|
что можно выудить из latch free в v$session_wait?
|
|||
|---|---|---|---|
|
#18+
sql+ RA\/EN "Нехорошие" ожидания из-за того, что эту табличку слишном интенсивно читают несколько сессий, отсюда "read by other session" - сессия хочет блок, но ждет, пока его читает другая сессия. Подозреваю что ты неправильно понимаешь смысл данного события. Связи между "эту табличку слишном интенсивно читают несколько сессий" и данным ожиданием нет никакой. Да ну? а по-моему, такая связь прослеживается очень часто. Две сессии, читающие данные таблички, желают видеть в кэше один и тот же блок. одна читает, другая ждет - очень распространенная ситуевина. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2008, 12:00 |
|
||
|
что можно выудить из latch free в v$session_wait?
|
|||
|---|---|---|---|
|
#18+
Timm sql+ RA\/EN "Нехорошие" ожидания из-за того, что эту табличку слишном интенсивно читают несколько сессий, отсюда "read by other session" - сессия хочет блок, но ждет, пока его читает другая сессия. Подозреваю что ты неправильно понимаешь смысл данного события. Связи между "эту табличку слишном интенсивно читают несколько сессий" и данным ожиданием нет никакой. Да ну? а по-моему, такая связь прослеживается очень часто. Две сессии, читающие данные таблички, желают видеть в кэше один и тот же блок. одна читает, другая ждет - очень распространенная ситуевина. Так как ты это описал - может. В том как сформулировал RAVEN мне показалось не совсем. Я надеюсь что он всё таки появится и уточнит что он имел ввиду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2008, 12:09 |
|
||
|
что можно выудить из latch free в v$session_wait?
|
|||
|---|---|---|---|
|
#18+
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 данного сайта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2008, 12:43 |
|
||
|
что можно выудить из latch free в v$session_wait?
|
|||
|---|---|---|---|
|
#18+
На русский не нужно переводить. Я просто хотел понять как ты понимаешь суть ожидания, чего именно ждут сессии. В данном твоя случае ссылка на документ этого не раскрывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2008, 12:48 |
|
||
|
что можно выудить из latch free в v$session_wait?
|
|||
|---|---|---|---|
|
#18+
Ты просто объясни своими словами это и закончим на этом. авторtwo or more sessions request the same information, the first session will read the data into the buffer cache while other sessions wait. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2008, 12:53 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=35470869&tid=1886867]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
166ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
86ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 554ms |

| 0 / 0 |
