Рассказываем о пакетах, поддержанных в Digital Q.DataBase для совместимости с PL/SQL-ок...
Рассказываем о пакетах, поддержанных в Digital Q.DataBase для совместимости с PL/SQL-окружением Oracle. Сегодня — о пакете UTL_RECOMP. Для чего он нужен ► Пакет UTL_RECOMP предназначен для перекомпиляции недействительных (invalid) объектов PL/SQL, представлений, Java-классов, индексов и операторов. Он особенно полезен после крупного обновления версии, когда все объекты становятся недействительными. ► Хотя недействительные объекты перекомпилируются автоматически при первом обращении, предварительный запуск UTL_RECOMP позволяет избежать задержек при выполнении операций в дальнейшем. Основные возможности · RECOMP_SERIAL — последовательная перекомпиляция недействительных объектов в указанной схеме или во всей базе данных; · RECOMP_PARALLEL — параллельная перекомпиляция с использованием нескольких потоков. Количество потоков задаётся первым аргументом, если не указано — используется значение параметра job_queue_processes; · Параллельная перекомпиляция задействует несколько процессоров и сокращает время обработки, однако создаёт значительную нагрузку на дисковую подсистему. Пример использования ```sql -- Последовательная перекомпиляция всех объектов в базе EXEC UTL_RECOMP.RECOMP_SERIAL(); -- Перекомпиляция объектов в схеме SCOTT EXEC UTL_RECOMP.RECOMP_SERIAL('SCOTT'); -- Параллельная перекомпиляция с 4 потоками EXEC UTL_RECOMP.RECOMP_PARALLEL(4); -- Перекомпиляция схемы JOE с числом потоков по умолчанию EXEC UTL_RECOMP.RECOMP_PARALLEL(NULL, 'JOE'); ``` Области применения · Перекомпиляция объектов после миграции или крупного обновления; · Восстановление работоспособности приложений после изменения схемы; · Оптимизация производительности за счёт устранения недействительных объектов.