Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.09;
Скачать: CL | DM;

Вниз

Parse to Execute Ratio = 101   Найти похожие ветки 

 
EternalWonderer   (2002-11-29 13:09) [0]

TOAD считает, что это нехороший показатель ( High parse to execute ratio). Вопрос: куда его двигать (уменьшать ?) и какими средствами? А может, ничего не надо делать - и так пойдёт?

Этот же вопрос относительно DBWR Average Scan Depth = 2 401. Он меня спрашивает: Number of DB FILES too high? Как ему ответить, что у меня кроме создаваемых по умолчанию всего два Tablespace, и оба по одному файлу (правда, один из них довольно большой)?

Заранее спасибо!


 
Sergey13 ©   (2002-11-29 13:25) [1]

High parse to execute ratio надо уменьшать. Это показывает что твой сервер больше времени тратит на разбор запросов чем на их собственно выполнение. Способ уменьшения - переменные в запросах и максимальный отказ от динамического создания SQL.
DBWR Average Scan Depth иногда у меня сразу после запуска инстанса ругается. Потом устаканивается.


 
EternalWonderer   (2002-12-15 11:02) [2]

Предположим, имеется копьютерная картотека:
количество карточек - 50 000
количество полей в карточке - 50
основная таблица - 1, справочников - 5.

Для формирования строки данных используется View, в котором объединяются данные нескольких таблиц, обращение к нему с клиента:
select <...> from view where id=<число>.
Данная схема работы не требует содержания дополнительного открытого курсора для каждого клиента, но вызывает High parse ratio.

Можно изменить логику работы, создавая при старте для каждого клиента курсор и обращаясь к нему, передавая значение в курсорную переменную (я не ошибаюсь в терминах?):
select <...> from view where id=:id

Вопрос: имеет ли это смысл, ведь снизив таким образом parse ratio, я буду при этом загружать SQL_AREA открытыми курсорами? А может, это не такая уж нагрузка на сервер, если открытые курсоры содержат лишь одну строку?


 
Sergey13 ©   (2002-12-15 11:43) [3]

2EternalWonderer (15.12.02 11:02)
При
select <...> from view where id=<число>
ты будешь каждый раз менять это "<число>" в тексте запроса и для сервака это будут РАЗНЫЕ запросы -> нужен разбор(парсинг). Кстати если написать select и Select результат будет тот же.
При
select <...> from view where id=:id
этого не происходит так как тексты посылаемых запросов полностью идентичны -> парсинга не нужно. Сразу биндуются переменные и начинается выборка.

>Данная схема работы не требует содержания дополнительного открытого курсора для каждого клиента
Не понял, почему? Хоть так хоть эдак - все равно курсор образуется.


 
EternalWonderer   (2002-12-16 12:55) [4]

Sergey13 © (15.12.02 11:43)
>Хоть так хоть эдак - все равно курсор образуется.
Образуется - то он образуется, да только в первом случае он сразу же после fetch уничтожается, а во втором -"висит", пока его не закроешь принудительно с клиента, при этом жрёт память SGA. Это очень наглядно видно из TOAD (Kill/trace->Open cursors)



Страницы: 1 вся ветка

Текущий архив: 2003.01.09;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.011 c
1-24867
V-A-V
2002-12-26 15:28
2003.01.09
В сотый раз и все безответно...


1-24888
Kair
2002-12-25 13:25
2003.01.09
Выключение компьютера


7-25102
-=Sergeante=-
2002-09-11 13:28
2003.01.09
Виртуальный диск


14-25063
tytus
2002-12-20 19:31
2003.01.09
HEEELP!!!


3-24765
kav
2002-12-15 10:43
2003.01.09
Как победить тормоз в ADO?????