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

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

Отец-основатель: @denis_dbd Кивилёв Денис
Download Telegram
Эй, Денис, а сам то ты учишься?

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

Время субботнего щитпостинга. Речь пойдет про мою учебу. Кому не интересно, не читайте, в понедельник будет технический пост ⚙️

Я часто повторяю: «Учиться нужно всегда, это ключ ко всему». Но, наверное, вы спросите: «Эй советчик, блин, а сам-то ты следуешь своим рекомендациям?» 😉 Отвечаю: да, коллеги, я тоже учусь 📚

Времени, конечно, немного - работа, семья (трое детей), наш канал, курсы по Ораклу... Но без постоянного развития в нашей профессии никуда. Нужно держать руку на пульсе технологий, обновлять свои программы и реагировать на обратную связь студентов. Всегда есть точка роста! 🚀

За этот год я прошёл почти три курса (ну, если быть точным - два с половиной 😅):

🔹 "Микросервисная архитектура" - месяц практики и теории. Много паттернов и подходов, всё, что нужно современному разработчику. Курс понравился и я его успешно закончил.

🔹 "Практический курс по Java: микросервисы и Kafka" - с акцентом на перенос монолита в Kubernetes. Не успел закончить из-за переезда в Бразилию 🇧🇷, но две трети освоил. Курс не понравился. Не всегда разработчики, могут быть хорошими преподавателями.

🔹 "Продвинутый Spring" - это уже третий курс по Spring. Казалось бы, зачем три курса? Каждый преподаватель преподаёт по-своему, и даже если работаешь со Spring давно, всегда находятся новые детали. Плюс есть моменты, которые забываются, если не использовать в реальной работе. Курс недавно начался, но он точно не для начинающих. Мне пока ок.

Зачем повторять? Всё просто: на собеседованиях спрашивают не только то, что применяешь каждый день, а вообще всё подряд. Поэтому важно быть готовым 💪

На конец года оставил еще один курс по System Design. Надеюсь успею

На скринах и видео артефакты учебы.

А что с собеседованиями?

Сам я периодически прохожу собеседования на Oracle DBD - это помогает:
понимать, актуальную ситуацию на рынке;
не забывать материал;
собирать практический контент для наших студентов и канала. Ведь, в наши курсы, я добавляю видосы с собеседований, чтобы ребята понимали, что теория не оторвана от жизни 🎥

Скоро, видимо, придется поменять работодателя, поэтому буду готовиться к Java-собеседованиям. Тоже будет тонна материала.

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

Я не только раздаю советы "учитесь и проходите собесы", но и сам следую им


Всем хороших выходных! 👯‍♀️

#java #spring #обучение #Denis_Kivilev

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

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"
🔥173👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Зачем нужен Index Skip Scan?

Друзья, всем привет! 👋

С вами Костя Андронов, и сегодня у нас технический пост.

Опять кусочек с нашей практики, на этот раз про индексы.
Вопрос, который прозвучал от студента, довольно частый и важный: а зачем вообще нужен Index Skip Scan? Можно ли вместо него использовать Index Full Scan, и есть ли от этого реальная польза? 🤔

Мы публикуем только часть - с самим вопросом. Советую вам не просто прослушать, а немного поразмышлять над этим: "А почему так? Действительно, а зачем нужен Index Skip Scan? И как этот проход устроен?" 🧐

К слову, это одни из тех вопросов, которые часто встречаются на собеседованиях в блоке про оптимизацию запросов. Если на него не получится ответить уверенно и четко, то пройти секцию по оптимизации будет сложно. А это, как понимаете, прямое препятствие на пути к сеньорской позиции и хорошим деньгам 🚀
Пожалуйста поделитесь вашим мнением в чатике 💬

По нашей традиции — полный разбор с моим ответом мы опубликуем в четверг 🎓
Так что не переключайтесь, будет интересно! 😉

Всем продуктивной рабочей недели!

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

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

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"
🔥13👍32
Почему многие люди разработчики не могут выйти на зарплату 300к+ в месяц

Всем привет, друзья! На связи Денис Кивилев 👋
Сегодня хочу осветить одну очень важную тему, которая многих заденет за живое.

Знаете, в чем различие между теми, кто зарабатывает 100 тысяч в месяц, и теми, кто получает 300к+?
Нет, это не количество опыта (постоянно встречаются кейсы 10-15 лет в ИТ, зарплата 100-150К).
Все дело в том, что эти категории людей мыслят по-разному.

Большинство думает так:
🔸 «Ну я уже Senior, значит, это потолок»
🔸 «350-400к в месяц — это недостижимая мечта»
🔸 «Миллионы в зарплате бывают только у избранных»

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

👉🏻 Те, кто растёт до высоких показателей в доходе, думают иначе:

Senior - не потолок, а новая отправная точка
редкая экспертиза стоит дорого 💰
знание оптимизации и умение решать сложные задачи превращает вас в специалиста, которого ценят везде.

Мы видим это на практике: ребята легко проходят собеседования на позиции с зарплатой от 300к в месяц после того как зарабатывали сотку.

Почему? Потому что перестают мыслить категориями «потолка» и получают знания, за которые работодатель реально готов платить.

❗️И путь туда - это не «повезло» и не «для избранных». Это конкретные шаги.
И первый из них - прокачать знания и мышление.

📌 Если хотите выйти за пределы своих текущих доходов - нужно работать над мышлением (относится не только к работе).

Всем добра 🕊

#oracle #оптимизация #Denis_Kivilev #карьера

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

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"
6🤷‍♂4👍3
This media is not supported in your browser
VIEW IN TELEGRAM
«Думал, что в 47 уже поздно что-то менять. Оказалось — самое время»

Александр работает ведущим инженером-разработчиком в банке.

Собеседования показали: знаний не хватает. Офферы на хорошую зарплату получил, но внутри сидело чувство — «Я не соответствую».

Самообучение растягивалось на годы, а времени уходило всё больше. Тогда он решился пройти курс .

👉 Именно обучение помогло:

закрыть пробелы,
систематизировать хаотичные знания,
вернуть уверенность в себе и своих навыках.

Сегодня Александр говорит:
«Курс стоил каждого рубля. Это был мой лучший апгрейд за последние годы».


👉 Читайте полную историю здесь — и убедитесь, что возраст не имеет значения, если вы готовы расти 🚀

#oracle #оптимизация #Denis_Kivilev #карьера

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

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"
🔥7👍65🤩2
This media is not supported in your browser
VIEW IN TELEGRAM
Зачем нужен Index Skip Scan? Продолжение

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

В понедельник мы опубликовали вопрос про Index Skip Scan от одного из наших студентов с 6 потока по оптимизации

Что такое Index Skip Scan?🤔

Это один из методов доступа к данным через индекс. Обычно он используется, когда в таблице есть составной индекс, но в предикатах запроса отсутствуют лидирующие колонки.

Рассмотрим на примере. Пусть у нас есть таблица employees и индекс:
create index emp_name_ix on employees(last_name, first_name)


Как выглядят листовые блоки этого индекса?

В них хранятся все пары last_name, first_name в отсортированном виде, и для каждой — rowid строки. Пример:
...
'Ivanov', 'Alexander' - 'AAAR2TAAUAAAADtAAD'
'Ivanov', 'Michail' - 'AAAR2TAAUAAAADtAAz'
...
'Petrov', 'Alexander' - 'AAAR2TAAUAAAADtAAF'
'Petrov', 'Petr' - 'AAAR2TAAUAAAADtABB'
...


А теперь вопрос: как получить только те строки, где first_name = 'Alexander'?

Есть два пути:
🔹 Прочитать весь индекс и отобрать нужное.
🔹 Перебирать возможные значения last_name, подставлять их в комбинации и искать пары (last_name, first_name) — то есть ключ индекса.

И вот второй вариант как раз и называется Index Skip Scan. Подробнее — в этом посте.

В чем же проблемы такого подхода?
Всё зависит от количества строк и уникальных значений в last_name.
🔸 Если уникальных значений немного — Skip Scan может быть выгодным.
🔸 Если их много — придётся выполнять массу сканирований индекса, и тут уже проще прочитать весь индекс или даже таблицу.

А в чем подвох?⚡️
Чтобы составной индекс работал эффективнее, лидирующие колонки должны быть высококардинальными. Другими словами уникальных значений last_name обычно очень много — и тогда появление Index Skip Scan в плане превращается в «узкое горлышко» в плане запроса

Для тех кто хочет разобраться в нюансах оптимизации и не знает с чего начать - Анкета предзаписи на 7 поток по оптимизации

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

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

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

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"
🔥10👍74
Правда, которую многие боятся признать

Всем привет, друзья 👋
Сегодня хотелось бы порассуждать про реальность, на которую многие не обращают внимание по-разным причинам (не хочется признаваться, все хорошо, я на позитиве, не замечаешь - того и нет и т.п.)

300 000 рублей в месяц — уже не большие деньги. Да, когда-то на эти суммы можно было чувствовать себя «королём жизни»: отдых за границей, техника, свободные траты без оглядки. Но это было 10 лет назад.

Сегодня 300к — это просто сумма, которой едва хватает на ипотеку, еду и редкие развлечения.

📊 Факт
5* all inclusive в Египет на 12 дней:
- в 2012 году тур стоил от 20-25 тысяч ₽.
- в 2025 году тот же отдых обойдётся в 180 тысяч ₽ и выше 😱

Разница в 8-10 раз! А ваша зарплата за это время выросла так же? Супер, если да 🔥
Если нет — значит, по факту вы беднее, чем 10 лет назад


🚨 И вот ещё хуже: если вы продолжаете думать, что 300 000 — это «потолок», вы уже отстали.

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

Каждый год цены растут, и если ваш доход остаётся прежним — вы все больше отстаете.

Это как стоять на эскалаторе, который едет вниз: чтобы подняться, нужно двигаться☝🏻

А как двигаться? Только через рост навыков: новые хард-скиллы, софт-скиллы, умение приносить ценность рынку выше конкурентов.

Вопрос не в том, сможете ли вы прожить на 300к. Вопрос в том, сколько ещё лет вы согласны беднеть, пока другие растут?

Анкета на следующий поток уже открыта. Заполняйте сейчас, если не хотите оказаться тем, кого инфляция и конкуренты оставят позади. Это не шутка 🤷🏻‍♂️

#oracle #оптимизация #карьера

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

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"
😁76👍4🤷‍♂2
Por que Brasil 🇧🇷?

Друзья, всем привет!

На связи Денис, время субботнего щитпостинга 😁
Речь пойдёт про Бразилию.
Неинтересно? Не читай. Скипай. В понедельник будет технический пост 🤖

Как вы уже наверное в курсе, я с семьёй перебрался на другой континент аж в Бразилию 🇧🇷
Ни разу не ближний свет.
Ребята задают вопросы в личку: как там? как с детьми? опасно ли? и так далее.

Я начал записывать видос и... офигел от его длины получилось часа на полтора. Ну, нет, такое вы смотреть не будете. В общем, решил пойти другим путём. В этом видосе я рассказал, зачем мы сюда поехали и почему именно Бразилия. Все остальное расскажу потом, но только на интересующие вас вопросы. Поэтому смело задавайте в
чатик или личку и я отвечу именно на них. Попробуем сэкономить ваше время ⌛️

Немного цифр
1️⃣ Население: Россия ~146 млн, Бразилия ~217 млн
2️⃣ Территория: Россия 17,1 млн км², Бразилия 8,5 млн км² (5 страна в мире)
3️⃣ Государственный язык: Бразилия — португальский
4️⃣ Религия: Россия ~70% православные, Бразилия ~60% католики
5️⃣ Часовые пояса: Россия 11, Бразилия 4

Сила паспорта
🇧🇷 Паспорт Бразилии: безвиз или виза по прилёту ~163 стран, ~43-е место в мире. Безвиз с Евросоюзом, Британией, Японией и т.д.
🇷🇺 Паспорт России: безвиз или виза по прилёту ~125 стран, ~88-е место в мире.

Сравнение здесь

Все вопросы и ответы в этих видосах

➡️➡️ Youtube ⬅️⬅️
➡️➡️ Rutube ⬅️⬅️

Продолжительность видео: 17 минут. Приятного просмотра 🤝

Если у вас будут вопросы, обязательно задавайте в
комментариях ⬇️ Буду рад ответить в следующем видео 👌🏻

Всем хороших выходных 👯‍♀️

#oracle #путешествия #digitalnomad #Denis_Kivilev #видео

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

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"
Please open Telegram to view this post
VIEW IN TELEGRAM
10🔥7👍5🤷‍♂1
This media is not supported in your browser
VIEW IN TELEGRAM
Происшествие с индексом

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

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

Есть табличка employee1, у неё есть индекс по колонке department_id.

Пишем простой запрос:
select ...
from employee1 e
where department_id = 11;


Селективность этого предиката - 1,6% от общего количества строк в таблице.

Помните правило: индекс обычно используется, когда выбирается менее 15% строк.
В нашем случае 1,6% - прямо идеальные условия для применения индекса! ⚙️

Но если заглянуть в план выполнения, то видим неожиданное - Table Access Full 😱
Получается, индекс есть, но СУБД всё равно делает полный просмотр таблицы. Почему так происходит? 🤔

Кстати, отличный вопрос для собеседования 😉

Ответ кроется в нюансах оптимизатора Oracle, который иногда решает, что полное сканирование будет быстрее, чем обращение к индексу.

Почему так - разберём в четверг 🎓
Пишите ваши гипотезы в чатик 💬

Всем продуктивной рабочей недели! 💪

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

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

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"
🔥103🤩2👍1
Media is too big
VIEW IN TELEGRAM
Квантовый скачок, который мог быть быстрее

Друзья, всем привет! 👋
Денис на связи.

Хочу рассказать вам одну историю из своего студенчества. Когда я учился в университете, всё давалось нелегко, а особенно программирование. Почти полтора года я мучился с заданиями: то не понимал, как подступиться, то просто сдавал чужие работы, а иногда даже заказывал проекты, когда совсем не знал, с чего начать 🙈

И вот на 2м курсе поменялся препод и началось ООП, в голове что-то щёлкнуло. Всё, что я раньше учил, пробовал, ошибался — вдруг сложилось в систему. Накопленные знания превратились в осознанное понимание. Наступил тот самый квантовый скачок, когда начинаешь видеть, как всё взаимосвязано: логика, циклы, рекурсия, функции, программный код. С этого момента учёба перестала быть хаосом и стала осмысленным процессом 🚀

Кстати, если у вас была такая же история поделитесь в чатике. Будет интересно почитать 😉

💡 И вот с тех пор я твёрдо знаю: пройти этот путь можно гораздо быстрее, если рядом есть грамотный наставник. Настоящий ментор не просто объясняет материал, а помогает увидеть связи, понять, почему всё работает именно так. С ним обучение превращается из бесконечной теории в осознанную практику.

📚 Хороший наставник не решает всё за ученика, а направляет — показывает, где искать ответы и как думать системно. Он помогает пройти через моменты, когда кажется, что ничего не получается. Именно тогда и рождается настоящее понимание.

Так что если вы чувствуете, что «застряли» — не спешите сдаваться. Это не тупик, а момент роста. Главное — не останавливаться и искать смысл в процессе.

Всем хорошего дня! 👍🏻

#обучение #наставник #программирование
#oracle #performance #sql #оптимизация #Denis_Kivilev

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

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"
👍15🔥94
Media is too big
VIEW IN TELEGRAM
⚙️ Готовим новый вебинар. Немного закулисья.

Друзья, всем привет 👋
На связи Денис.

Мы с командой уже активно готовим для вас новый бесплатный вебинар по оптимизации Oracle SQL, который пройдёт 28 октября. Процесс идёт полным ходом — и я хочу немного приоткрыть закулисье 🫣

Хочу начать с того, что я не из тех, кто делает все эти бесплатные вебы для галочки. Нет такого, что я просто включаю ноутбук и начинаю «что-то там на камеру говорить». Для начала я выстраиваю смыслы, логику, полностью продумываю структуру, чтобы человек в конце концов не «просто послушал» и ушел, а чтобы что-то в голове у него отложилось 🧠 и осталось приятное послевкусие 🍷

Сейчас я выстраиваю скелет вебинара: какие вехи пройдём, где будет польза, а где практика.

👉 Одна из целей рассказать, зачем вообще нужна оптимизация — и Oracle-разработчику, и Java-разработчику, и аналитику.

Будем также разбирать реальные ситуации из жизни:

🔹какие виды оптимизации бывают
🔹что делать, если у вас возникла проблема на PROD
🔹как правильно отвечать на вопросы по Оптимизации на собесах

Ну и разберем, конечно же, тот самый вопрос на собесах: «У вас база тормозит. Что будете делать?» Расскажу вам, как правильно на него отвечать 😉

Очень часто вижу такую картину: человек опытный, навыки на высоте, но на собесах теряется 🤷‍♂️
Потому что нет структуры мышления. Вот над этим и будем с вами работать)

Плюс — проведём МОК-собеседование в прямом эфире.
Добровольцы попробуют поотвечать, а мы вместе разберём ошибки и сильные стороны. Вот это, мне кажется, станет для вас реальной прокачкой 🔥

Конечно, будет и техническая часть — "с чего начать оптимизацию".

А еще будем разбирать кейс из процессинга - регистрацию клиента и типичных «боевых» ситуаций.
То, с чем сталкивается каждый, кто работает с Oracle.

💻 Вебинар будет полностью бесплатный, поэтому прийти может любой желающий. Он продлится 2–3 часа и подойдёт не только Oracle-разработчикам, но и Java-разработчикам, аналитикам и DBA.

Пока я всё это рисую: схемы, стрелки, логику – уже вижу, как это сложится в целостную историю. И обещаю: скучно нам точно не будет 😉

Сейчас самое время вписаться в эту тему. Не потом, не «когда появится время». А потому что, как я уже много раз говорил, тот, кто «делает сейчас», всегда оказывается впереди тех, кто откладывает на потом ☝️

28 октября в 19.00 по МСК жду всех, кто жаждет новых знаний и высоких результатов. А вебинар у нас будет просто мясо – без результатов остаться невозможно 🚀

Если есть вопросы задавайте в комментариях с радостью на все отвечу.

С вами был Денис Кивилев. Всем добра ❤️

#oracle #оптимизация #карьера

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

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"
🔥295👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Происшествие с индексом. Ответ

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

В понедельник мы опубликовали пост с интересной ситуацией, которую я показывал на одной из практик курса «Оптимизация Oracle SQL».

Несмотря на идеальные условия для применения индекса (селективность предиката — всего 1,6%), Oracle выбирает Table Access Full вместо Index Range Scan 😱

Разбираемся, почему это произошло.

📌 Как Oracle выбирает метод доступа к данным?

На этапе hard-parse оптимизатор строит планы с разными методами доступа и оценивает их «стоимость» для конкретного запроса.

Получается, он решил, что обойти всю таблицу «дешевле», чем использовать индекс. Но почему? 🤔

Чтобы понять это, надо заглянуть в статистику объектов — таблицы и индекса.

🔍 Clustering Factor

Это один из ключевых параметров индекса. Он показывает, насколько упорядочены данные в таблице относительно порядка в индексе (в индексе они всегда отсортированы).

Как его интерпретировать?

📦 Листовые блоки индекса содержат ключи и rowid соответствующих строк.
Если при чтении индекса каждый новый rowid будет указывать на другой блок таблицы — значит, данные не упорядочены.

📈 Clustering Factor в таком случае будет большим — а это сигнал для оптимизатора, что доступ по индексу приведёт к хаотичному чтению блоков.

🧠 Почему это может быть неэффективно?

Oracle работает с блоками данных, а не с отдельными строками.

И если даже небольшой процент строк попадает под условие запроса, но все они разбросаны по разным блокам, то:
🔹 Нужно будет читать почти все блоки таблицы,
🔹 Плюс часть блоков самого индекса,
🔹 И в сумме Index Range Scan может оказаться «дороже», чем простое Table Access Full.

🎥 В видео к этому посту мы подробно разбираем пример такого поведения на одной из встреч 6 потока курса по оптимизации и обсуждаем, что с этим делать.

Хочешь научиться разбираться в таких нюансах сам?
👉 Записывайся на 7 поток по оптимизации: Анкета. 📋
Обсудить нюансы использования индексов и оптимизации в Oracle - велком в Чатик 💬

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

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

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

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"
🔥153👍1
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
Про страх быть «не тем». Ну или про то, почему 40-летние боятся, а 25-летние рвут рынок

Привет, на связи Денис Кивилёв 👋

Сегодня поговорим про вещь, которая ломает даже самых опытных специалистов. Про страх быть «не тем», ну или про синдром самозванца. Очень многие с этим сталкиваются на сегодняшний день.

Ты можешь иметь 10, 15, да хоть 20 лет опыта, работать честно и усердно. Но при этом ты зарабатываешь 80-120к. В то же время 25-летний парень, с двумя годами практики уже получает 250–300 тысяч (например, кейс Паши)

Да как вообще такое может быть, когда эта молодежь и половины не знает из того, что знаю я?

У вас же сейчас возник подобный вопрос в голове?) 👆🏻

❗️Зато тот самый парень с двухлетним опытом, зарабатывающий 300к, знает, что ему нечего терять в то время как ты сидишь и боишься.

Мы, поколение 80–90-х, воспитаны иначе. Нас учили быть правильными, удобными, послушными, не накручивать опыт, быть максимально честным с работодателем, так ведь?)

Вспомните, что говорили вам старшие: «Не высовывайся и не позорься»,«Да будь ты как все нормальные люди, а то будешь белой вороной».

Нас просто так воспитали. А, возможно, и вы сейчас говорите то же самое своим детям, просто задумайтесь)

Только вот мир изменился, и такие установки уже перестают работать. А с нынешней молодежью, стремящейся вперед, к новым результатам, они только тащат вас вниз.

Сегодня выигрывает тот, кто идёт вперёд, несмотря на страх, и просто делает. А те, кто так и продолжают сидеть в уголочке и не высовываться, потому что так учили, остаются ни с чем 🤷‍♂️

Синдром самозванца — это не про неуверенность. Это про зависимость от чужого одобрения. Ты боишься, что тебя осудят, вечно думаешь: «А что люди-то скажут?»
И вместо того чтобы податься на новую позицию, предложить новую идею или поднять чек, ты продолжаешь сидеть на месте с мыслями по типу «Ой, да мне-то куда?»

Я видел десятки сильных ребят 35+, 40+ с реально крутым опытом. Но все они тормозили на одном и том же: на страхе показаться не тем. Они не шли на собеседования, не брали новые задачи, не выходили на рынок. Потому что где-то внутри звучала мысль: «Да кому я там нужен?»

Ты нужен — но только если решишь, что ты сам себе не помеха. Потому что сегодня побеждает не тот, кто умнее, а тот, кому нечего терять ☝️

Почему? Да потому такие люди не боятся ошибаться и начинать заново. А это как раз наша нынешняя молодежь.

Пока ты выверяешь каждый шаг, думаешь, «достаточно ли ты хорош», рынок уходит дальше.
Молодые лезут вперёд, потому что у них нет страха «а что скажут». Они просто делают, наплевав на мнение остальных. И в этом их плюс. Поэтому они на шаг впереди.

Стоит один раз перестать ждать одобрения и начать просто делать, как сразу ты почувствуешь, что «дышать стало легче»

Я видел, как парни 40+ заходили в IT с нуля. И да, у них были такие же установки в голове, с которыми они справились. Впоследствии через полгода-год вышли на глобально новый уровень – нашли новую работу, выросли в доходе 💰

📌 Если ты читаешь это и чувствуешь, что застрял —
значит, пора выйти из этого круга. С каждым днем ты становишься все дальше и дальше от сегодняшнего рынка, потому что кто-то в это время просто делает, не задумываясь ни о чем.

🚀 Если ты готов не просто «существовать» на опыте, а реально расти и возвращать уверенность — заполняй анкету предзаписи на следующий поток по оптимизации Oracle SQL.

Делитесь в чатике, что думаете по этому поводу. Часто ловите себя на таких «блок-мыслях»?

С вами был Денис Кивилев. Всем высоких результатов и легких запросов 😉

#oracle #оптимизация #карьера

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

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"
👍97🔥6
28 октября — бесплатный вебинар по Oracle SQL: «3 способа за 5 минут найти медленные запросы и исправить их за час» 🔥

Привет, друзья! На связи Денис Кивилев 👋

Как вы помните, мы с командой сейчас работаем над вебинаром, который состоится 28 октября в 19.00 по МСК. Ранее уже успел приоткрыть вам закулисье здесь. Кому интересно, можете почитать)

Сейчас закончили «скелет» веба и зашиваем самое мясо: логику, примеры, макеты мок-собеса и демо-кейсы. Короче говоря, работа кипит 😉
На скрине кусочек сценария из презентаций.

И, как я уже говорил, это не «поболтать в Zoom». Вы уйдёте с веба с рабочей схемой поиска узких мест.

Зачем вам быть на вебинаре?

Потому что «на проде тормозит» — это не редкость, а рутина. Пока кто-то гуглит и ставит костыли, вы научитесь быстро находить проблемный SQL. А это прямой путь к офферам и повышению 💰

Что будет на вебинаре?

🔹3 практических способа найти медленный запрос в Oracle — быстро и воспроизводимо (покажу на реальных кейсах: ночной джоб, долгая регистрация клиента, «внезапно поехавшие» кредиты).
🔹Мок-собеседование в прямом эфире. Добровольцы отвечают — разбираем типовые ошибки и правильную логику ответа на ключевой вопрос: «База тормозит. Ваши действия?»
🔹Мини-дорожная карта после поиска. Что ещё нужно уметь, чтобы не просто находить, но и доводить до результата (аккуратный «мостик» к системной оптимизации).

Что вы получите в итоге:

🔸Чёткий алгоритм «с чего начать», когда всё стало медленным.
🔸Умение быстро локализовать слабое звено и аргументировать решение.
🔸Подготовку к «неудобным» вопросам на собеседованиях.
🔸Понимание, куда двигаться дальше, чтобы расти до вилок 250–300К+.

Точно зайдет Oracle-разработчикам, Java-разработчикам, аналитикам и DBA, которые сталкиваются с Oracle и хотят повышать ценность и доход 🚀

Если не придете, то упустите разбор тормозов и так и не научитесь работать с медленными запросами. А также снова провалитесь на очередном собесе, где у вас спросят не теорию, а последовательность действий. Рынок платит тем, кто решает быстро и обоснованно — это про вас после вебинара 😉

Делитесь своими вопросами в чатике или в личке. С удовольствием на все отвечу!

Ставьте напоминания 28 октября, 19:00 МСК. Ссылочка появится здесь за несколько минут до начала.

Каждый из вас совершит квантовый скачок в своих навыках после просмотра вебинара. Кстати, в конце — полезный бонус тем, кто досидит до финала 😉

Ну а с вами был Денис Кивилев. Всем хорошего дня и легких запросов 🙏🏻

#oracle #оптимизация #карьера

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

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"
🔥17👍43
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"
👍123🔥2
🔥 Почему большинство разработчиков так и остаются “среднячками” — и как один парень из Питера вырвался из этой ловушки

Обычный парень. 26 лет. Работает на заводе. Зарплата фиксирована, роста нет. SQL-запросы, однотипные задачи, рутина.
Пока однажды всё не зависло — запрос, который должен был посчитать налоги, выполнялся 40 минут.

А потом он понял, что просто не знает, почему его код работает медленно.

🔥 После мини-курса по оптимизации Oracle SQL всё изменилось: тот же запрос стал выполняться за 4 минуты вместо 40, коллеги начали приходить к нему за советом, а руководитель — считать с ним.

💬 «После курса я стал понимать, как думает база. И впервые почувствовал кайф от своей работы».

Без «удачи», без “повезло”. Только системный подход и реальное понимание, что происходит внутри.

📖 Полную историю Олега — как обычный разработчик превратился в специалиста, можете прочитать здесь.

⚠️ Осторожно: после прочтения может появиться сильное желание открыть свой код и разобраться, что вы делаете не так.

Ну а с вами был Денис Кивилев. Всем удачи и хорошего дня 🚀

#oracle #оптимизация #карьера

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

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"
🔥5👍3😁2🤩2🤷‍♂1