Скорость компиляции PL/SQL пакетов
PooH_2
Дата: 25.03.2011 13:27:47
Есть два примерно одинаковых по размеру пакета, один из них компилируется в два раз дольше другого:
+ |
Во время компиляции к пакетам никто не обращается.
SQL> SELECT t.NAME, COUNT(1), SUM(length(t.text)) FROM user_source t WHERE t.NAME IN ('PACK_TEST', 'PACK_UNI_TEST') GROUP BY t.NAME;
NAME COUNT(1) SUM(LENGTH(T.TEXT))
------------------------------ ---------- -------------------
PACK_TEST 24214 924294
PACK_UNI_TEST 20530 835539
SQL> set timi on;
SQL> alter package PACK_TEST compile;
Package altered
Executed in 21,919 seconds
SQL> alter package PACK_UNI_TEST compile;
Package altered
Executed in 10,078 seconds |
Подскажите, пожалуйста, от чего зависит скорость компиляции пакета (например, от каких конструкций) или где про это почитать можно.
Elic
Дата: 25.03.2011 13:46:36
PooH_2 |
---|
от чего зависит скорость компиляции пакета (например, от каких конструкций) или где про это почитать можно. |
И какой же тебе от этой информации будет прок?
orawish
Дата: 25.03.2011 13:52:58
PooH_2,
практический интерес представляет в (смысле сабж.) только вопрос заблокирован ли програмюнит, который вы собираетесь компилить
PooH_2
Дата: 25.03.2011 13:54:35
"чтобы знать", интересно.
ну и при "прочих равных" использовать то, что быстрее компилируется: я не знаю от чего это зависит - может просто от кол-ва строк, и достаточно будет просто переформатировать пакет :)
PooH_2
Дата: 25.03.2011 14:00:23
orawish, конкретно к этим пакетам постоянно идет много "коротких" обращений, ну и хотелось бы сократить время перекомпиляции. Но уже конкретика. Хотелось бы понять/почитать в теории. Есть к примеру разница написать два-три раза небольшой запрос или выносить его в отдельную функцию, ну и тому подобное.
Chhxhxhxhxhx
Дата: 25.03.2011 14:16:24
Во время работы перекомпилируете пакеты? Гыгыгы
Тогда надо не функцыю выносить а dba вместе с менеджерами
PooH_2
Дата: 25.03.2011 14:21:06
Chhxhxhxhxhx, работа разная бывает ;) И если уж говорить, то клиенты которые обращаются к этим пакетам корректно обрабатывают перекомпиляцию. Но опять же вопрос не в этом. Вопрос из серии "хочу все знать" :)
SQLap
Дата: 25.03.2011 14:44:33
PooH_2 |
---|
конкретно к этим пакетам постоянно идет много "коротких" обращений |
вот время компилирования и коррелирует со временем этих обращений
PooH_2
Дата: 25.03.2011 14:51:24
SQLap, я в первом посте специально написал, что "во время эксперимента" обращений к пакетам нет. Это копии пакетов.
Elic
Дата: 25.03.2011 14:57:28
PooH_2 |
---|
"чтобы знать", интересно. |
STFF/RTFM DIANA +
select * from dba_objects where owner = 'SYS' and object_name like 'IDL_%';