Oracle DB. Изменение и фиксация плана выполнения запроса при помощи dbms_spm.

Как правило оптимизатор запросов Oracle работает хорошо, но бывают ситуации когда эта с*ка начинает чудить, использовать неоптимальный план, и некогда быстрые запросы начинают тормозить. Найдя проблемный запрос, ты правишь его хинтами, но понимаешь, что развернуть его перекомпилировав пакет на боевой среде не можешь. В этой ситуации на помощь может прийти SQL Plan Management в лице…

Oracle DB. Использование dbms_alert для реализации очереди и параллельной обработки данных.

В состав Oracle включен интересный пакет dbms_alert, позволяющий реализовывать асинхронные событийные уведомления. В этой статье я покажу простейшую реализацию обработки сообщений из классической очереди. Имеется таблица очереди, в которой содержится идентификатор сообщения и дата его добавления: create table t_queue ( id_queue number primary key, d_add timestamp default systimestamp not null ); Также имеется последовательность, из…

Oracle DB. Выполнение команды на уровне ОС из СУБД посредством Java.

Иногда бывают такие ситуации, когда у нас есть доступ к СУБД, но нет доступа к операционной системе. А он нужен вот прям позарез, перенести какие-нибудь файлы или посмотреть структуру каталогов, например. В такой ситуации на помощь может прийти хранимая процедура на Java. Для начала необходимо скомпилировать основной класс на Java: create or replace and compile…

Oracle DB. Advanced Queuing. Простой пример c Subscriber.

В это статье я бы хотел рассказать о том, как можно быстро и просто создавать очереди в Oracle, а так же о том как автоматически выгребать сообщения из очереди при помощи процедуры-подписчика(Subscriber). Перед созданием очереди необходимо создать таблицу, в которой будут храниться её сообщения. Также, для передачи данных процессу, который обрабатывает сообщение из очереди, необходимо…

Oracle DB. Простая генерация отчета AWR из БД.

Начиная с версии 10g Oracle позволяет использовать AWR(Automatic Workload Repository) для анализа системы с целью решения проблем с производительностью. В этой статье я покажу быстрый способ генерации отчета AWR. Для начала необходимо развернуть функцию генерации отчета. create or replace function AWR_HTML(in_begin_point in number, in_end_point in number) return clob is ret_html clob; db_id number; begin select…

Page 4 of 8« First...23456...Last »