Есть сервер Windows Server 2012 с 96 Гб оперативки (выделено 82 под оракл)
Есть база Oracle SE One, 12.1.0.1
Есть скрипт
DECLARE
TYPE TREC IS RECORD(v_sql VARCHAR2(4000));
TYPE TCUR IS REF CURSOR RETURN TREC;
r1 TCUR;
BEGIN
FOR r1 IN ( SELECT 'DROP ' || object_type ||'MYUSER.'||object_name || DECODE ( object_type, 'TABLE', ' CASCADE CONSTRAINTS PURGE' ) AS v_sql
FROM all_objects
WHERE owner='MYUSER' AND object_type IN ('TABLE', 'PACKAGE', 'PROCEDURE', 'FUNCTION', 'SYNONYM', 'SEQUENCE')
ORDER BY object_type,
object_name ) LOOP
EXECUTE IMMEDIATE r1.v_sql;
END LOOP;
END;
Ежедневно выполняется этот скрипт для нескольких Oracle User, и импорт из dmp (через imp.exe).
После перезагрузки сервера скрипт быстро выполняется. Но каждый день время выполнения скрипта увеличивается.
Для схемы с 5 !!!ПУСТЫМИ табличками через два месяца работы скрипт выполняется 3 минуты, хотя после перезагрузки сервера для этой схемы скрипт выполняется 3 секунды.
Подскажите в чем может быть причина?
И как это лечится.
Через недельку попробую выполнить, посмотрю как повлияет на время выполнения скрипта
alter system flush shared_pool;
alter system flush buffer_cache;