powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Parse to Execute Patio >100
7 сообщений из 7, страница 1 из 1
Parse to Execute Patio >100
    #32131518
EthernalWonderer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Увы, приходится задавать вопрос повторно :(.
В прошлый раз (пару - тройку месяцев назад) мне посоветовали не использовать динамические запросы в приложении. Идея хорошая и была реализована - почти все запросы стали параметризованными. После этого Library Cach Get Hit Ratio и Library Cach Pin Hit Ratio "уехали" с 88-89 за 99%, но уровнь Parse Calls всё равно остался высокий. Изучение sys.v_$sql, упорядоченного по PARSE_CALLS DESC, показало, что "хитовые" места занимают с существенным отрывом всего пять запросов (65106 calls у всех пяти против 1900 у последующего) :
Код: plaintext
1.
2.
3.
4.
update sys.job$ set this_date=: 1  where job=: 2 
select job from sys.job$  where next_date < sysdate  and (field1 = : 1  or field1 =  0 ) order by next_date, job
BEGIN sys.dbms_ijob.remove(:job); END; 
select u1.user#, u2.user#, u3.user#, failures, flag, interval#,    what, nlsenv, env  from sys.job$ j, sys.user$ u1, sys.user$ u2, sys.user$ u3  where job=: 1  and (next_date < sysdate or : 2  !=  0 )  and lowner = u1.name and powner = u2.name and cowner = u3.name  for update nowait
update sys.job$ set failures= 0 , this_date=null, flag=: 1 , last_date=: 2 ,  next_date=: 3 , total=total+(sysdate-nvl(this_date,sysdate)) where job=: 4 

В sys.job$ две строки. Один job выполняется раз в квартал (ADD_MONTHS(SYSDATE,3)), другой ежедневно (TRUNC(SYSDATE+1)).

Откуда берутся эти запросы? Что можно сделать для уменьшения PARSE_CALLS?
...
Рейтинг: 0 / 0
Parse to Execute Patio >100
    #32131744
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуй выставить job_queue_interval = 3600 (один час) или еще большим, если погрешность запуска заданий для тебя не критична
...
Рейтинг: 0 / 0
Parse to Execute Patio >100
    #32132017
EthernalWonderer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Отлично, попробую ...
Кстати, а что за параметр - job_queue_processes
у меня = 10. Может, это многовато?
...
Рейтинг: 0 / 0
Parse to Execute Patio >100
    #32132256
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
понятно, значит в документацию заглянуть вера не позволяет?
...
Рейтинг: 0 / 0
Parse to Execute Patio >100
    #32132542
EthernalWonderer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чой-то Вы, господа, шибко раздражаетесь быстро...
В документации, к сожалению, не приведён алгоритм выбора правильного значения job_queue_processes. Но по интуиции я поставил 2: возможно, если поставить 1, при одновременном выполнении двух job'ов один может не выполниться. А может, на каждый job надо более одного процесса? А, может, все job'ы будут работать в одном процессе, и второй им не нужен?

Поставил job_queue_processes=2, job_queue_interval=3600. После перезапуска и трёх часов работы PARSE_CALL_RATIO упал до 30. Что будет дальше - увидим.
...
Рейтинг: 0 / 0
Parse to Execute Patio >100
    #32134740
EthernalWonderer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Через пару дней Parse to Execute Patio упал до 25 - так что всё нормально, спасибо killed.
...
Рейтинг: 0 / 0
Parse to Execute Patio >100
    #32140814
EthernalWonderer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дальнейшие наблюдения показали, что этот параметр устанавливается в 30 % после каждого рестарта Oracle, а затем медленно (за две-три недели) опускается ниже 10%
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Parse to Execute Patio >100
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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