dbms_utility.compile_schema в функции

Гостья_N
Дата: 16.03.2011 16:59:10
Уважаемые знатоки Oracle!

Подскажите. Выполняю команду call dbms_utility.compile_schema() - время выполнения 30 сек.
Оборачиваю эту команду в функцию - время выполнения функции 15 минут.

Почему? И что можно сделать дабы исправить такую ситуацию?

Заранее спасибо!
comphead
Дата: 16.03.2011 17:08:45
Гостья_N
Уважаемые знатоки Oracle!

Подскажите. Выполняю команду call dbms_utility.compile_schema() - время выполнения 30 сек.
Оборачиваю эту команду в функцию - время выполнения функции 15 минут.

Почему? И что можно сделать дабы исправить такую ситуацию?

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


покажите.
comphead
Дата: 16.03.2011 17:09:55
Гостья_N,

и версию уточните оракла
Гостья_N
Дата: 16.03.2011 17:10:50
create or replace
FUNCTION "TEST_COMPILE_OBJECTS" RETURN NUMBER

IS

countInvalidObject NUMBER;
userName VARCHAR(256);

BEGIN

SELECT USER
INTO userName
FROM dual;

dbms_utility.compile_schema(userName);

SELECT count(*)
INTO countInvalidObject
FROM user_objects
WHERE status = 'INVALID';

IF countInvalidObject != 0 THEN
RETURN 0;
ELSE
RETURN 1;
END IF;

EXCEPTION
WHEN OTHERS THEN
Util.LogInfo(substr(sqlerrm, 1, 100) || ':TEST_COMPILE_OBJECTS');
RETURN 0;
END;
Гостья_N
Дата: 16.03.2011 17:12:32
Oracle 10.2.0
tru55
Дата: 16.03.2011 17:17:26
Гостья_N
Oracle 10.2.0

четвертая цифирька важна
comphead
Дата: 16.03.2011 17:17:51
Гостья_N,

1. 10.2.0.что?
2. целесообразность функции под вопросом.
3. тут нельзя однозначно сказать, тормозит ли dbms_utility или чтото еще.
_Nikotin
Дата: 16.03.2011 17:18:17
Сама себя компилирует?
comphead
Дата: 16.03.2011 17:22:11
_Nikotin
Сама себя компилирует?


кстати может быть, проверить можно установкой второгой параметра dbms_utility.compile_schema(userName) в отличное от дефолтового значение
Гостья_N
Дата: 16.03.2011 17:29:13
Простите, 10.2.0.3.

Целесообразность у неё как раз. Необходимо каждый раз при сборке системы убедиться, что все объекты БД остались в приемлемом состоянии. Если остались "плохие" объекты, сборка будет прерываться.
А вот задумка, согласна хромает, но пока это всё до чего додумалась. :)
Возможно существуют более интересные варианты?

А что плохого в том, что она сама себя перекомпилирует? Есть в жизни огорчения и похуже.