Базы данных

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

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

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

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. Использование dbms_alert для реализации очереди и параллельной обработки данных. Читать полностью »

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

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

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

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

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

Oracle DB. Advanced Queuing. Простой пример c Subscriber. Читать полностью »

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

Начиная с версии 10g Oracle позволяет использовать AWR(Automatic Workload Repository) для анализа системы с целью решения проблем с производительностью.В этой статье я покажу быстрый способ генерации отчета AWR. В этой статье я выполняю все команды прямо из под пользователя SYS, но подойдет и другой пользователь с подходящими для работы привилегиями. Для начала необходимо развернуть функцию …

Oracle DB. Простая генерация отчета AWR из БД. Читать полностью »