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"
🔹33 года. Десять лет опыта. Но три года в декрете — и всё будто стерлось.
🔹PL/SQL, триггеры, API, запросы — всё знакомо и в то же время чужое.
🔹Ощущение, что за это время мир убежал вперёд, а ты застрял в прошлом.
Но потом Валерия решилась пойти на курс, чтобы не просто “вспомнить синтаксис”, а вернуть уверенность. И спустя пару месяцев — снова пишет код, понимает, почему так, оптимизирует, спорит на равных с коллегами и снова чувствует себя специалистом, а не человеком “после декрета”.
🔥 История Валерии — про то, как не бояться начинать заново, даже если кажется, что время ушло. Про то, как системное обучение возвращает не только знания, но и уверенность.
👉🏻 Прочитайте полную историю здесь
#oracle #оптимизация #index #sql #Konstantin_Andronov
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"
👍8❤5🆒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"
Друзья, всем привет! 👋
С вами Костя Андронов.
Продолжаем серию обсуждений интересных кейсов с практик последнего потока курса «Оптимизация 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"
👍8❤3🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
PDML на таблице с триггером. Ответ
Друзья, всем привет! 👋
С вами Костя Андронов.
В понедельник мы задали вопрос: как ускорить вставку данных в таблицу с триггером?
❓ Почему Oracle отключает PDML на таблице с триггером?
Триггер может делать что угодно:
🔹 обновлять другие таблицы,
🔹 вызывать процедуры,
🔹 бросать исключения и т.д.
А при параллельном выполнении это создаёт риски:
🔸 сложно обеспечить транзакционную целостность,
🔸 легко попасть в коллизии,
🔸 поведение становится непредсказуемым.
Поэтому Oracle просто отключает параллелизм на уровне SQL — чтобы не рисковать.
Но это не означает, что мы не можем выполнять вставку параллельно вовсе. Просто управлять этим процессом теперь должен не оптимизатор, а мы сами — со стороны приложения.
🧩 Как вручную распараллелить вставку?
Один из удобных способов — использовать пакет DBMS_PARALLEL_EXECUTE.
Он позволяет легко распараллелить выполнение задачи через фоновые джобы. Что нужно сделать:
1️⃣ Создать задачу:
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"
Друзья, всем привет! 👋
С вами Костя Андронов.
В понедельник мы задали вопрос: как ускорить вставку данных в таблицу с триггером?
❓ Почему 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"
👍14❤3🔥2