Oracle Developer👨🏻‍💻
3.24K subscribers
664 photos
90 videos
2 files
554 links
🔝 канал о разработке в СУБД Oracle:
SQL, PL/SQL, оптимизация, архитектура и многое другое...

Backend-pro.ru - обучение по различным программам, связанных с backend-разработкой для ФЛ и ЮЛ.

Отец-основатель: @denis_dbd Кивилёв Денис
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Как Валерия после 3-летнего перерыва вернулась в IT и стала увереннее, чем раньше

🔹33 года. Десять лет опыта. Но три года в декрете — и всё будто стерлось.
🔹PL/SQL, триггеры, API, запросы — всё знакомо и в то же время чужое.
🔹Ощущение, что за это время мир убежал вперёд, а ты застрял в прошлом.

Но потом Валерия решилась пойти на курс, чтобы не просто “вспомнить синтаксис”, а вернуть уверенность. И спустя пару месяцев — снова пишет код, понимает, почему так, оптимизирует, спорит на равных с коллегами и снова чувствует себя специалистом, а не человеком “после декрета”.

🔥 История Валерии — про то, как не бояться начинать заново, даже если кажется, что время ушло. Про то, как системное обучение возвращает не только знания, но и уверенность.

👉🏻 Прочитайте полную историю здесь

#oracle #оптимизация #index #sql #Konstantin_Andronov

Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"
👍85🆒1
This media is not supported in your browser
VIEW IN TELEGRAM
Parallel DML на таблице с триггером

Друзья, всем привет! 👋
С вами Костя Андронов.

Продолжаем серию обсуждений интересных кейсов с практик последнего потока курса «Оптимизация Oracle SQL»

В DWH-среде для ускорения тяжёлых запросов часто применяется параллельный SQL

Например, если нам нужно вставить данные из таблицы client_data в client_data_tst, то и чтение, и вставка могут выполняться в нескольких параллельных сессиях.

Но есть нюанс ⚠️
Если на целевой таблице (client_data_tst) есть триггер, Oracle автоматически отключает PDML (параллельные DML-операции) для этой таблицы.

👉 И что же тогда делать, если хочется вставлять быстро, но триггер мешает параллелизму?

Варианты, конечно, есть — один из них разберём уже в четверг на практике 🎓
А пока — кидайте свои идеи и гипотезы в чатик 💬

Всем продуктивной недели и быстрых загрузок! 💪🚀

#oracle #оптимизация #sql #performance #Konstantin_Andronov

Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"
👍83🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
PDML на таблице с триггером. Ответ

Друзья, всем привет! 👋
С вами Костя Андронов.

В понедельник мы задали вопрос: как ускорить вставку данных в таблицу с триггером?

Почему Oracle отключает PDML на таблице с триггером?

Триггер может делать что угодно:
🔹 обновлять другие таблицы,
🔹 вызывать процедуры,
🔹 бросать исключения и т.д.

А при параллельном выполнении это создаёт риски:
🔸 сложно обеспечить транзакционную целостность,
🔸 легко попасть в коллизии,
🔸 поведение становится непредсказуемым.

Поэтому Oracle просто отключает параллелизм на уровне SQL — чтобы не рисковать.

Но это не означает, что мы не можем выполнять вставку параллельно вовсе. Просто управлять этим процессом теперь должен не оптимизатор, а мы сами — со стороны приложения.

🧩 Как вручную распараллелить вставку?

Один из удобных способов — использовать пакет DBMS_PARALLEL_EXECUTE.

Он позволяет легко распараллелить выполнение задачи через фоновые джобы. Что нужно сделать:

1️⃣ Создать задачу:
dbms_parallel_execute.create_task(...)


2️⃣ Разбить данные на чанки соответствующим методом:
🔹по ROWID,
🔹по колонке с типом NUMBER,
🔹или произвольным запросом с двумя колонками start_id и end_id (оба типа NUMBER).

3️⃣ Запустить выполнение:
Oracle сам создаст нужное число джобов, и будет передавать в каждый start_id и end_id через bind-переменные. Количество одновременно работающих джобов настраивается параметром при запуске.

📌 Таким образом, мы контролируем параллелизм вручную, и даже наличие триггера не мешает нам ускорить вставку.

🎥 Как это выглядит вживую — видео к посту.
💬 Обсудить решение или предложить свой способ можно в нашем Чатике
📋 А чтобы глубже погрузиться в оптимизацию — открыта предзапись на 7 поток

С вами был Костя Андронов. Всем отличного дня и приятного просмотра! 🚀

#oracle #оптимизация #sql #Konstantin_Andronov

Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"
👍143🔥2