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

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

Отец-основатель: @denis_dbd Кивилёв Денис
Download Telegram
October 31, 2024
December 16, 2024
January 29
February 6
Audio
February 7
April 9
Друзья, всем привет! 👋

Это случилось! ⚡️

Регистрация в тестовую группу нового мини-курса по оптимизации открыта🔥🔥🔥

Как и предупреждал, всего 5️⃣ мест ❗️

Кто успеет — получит крутые знания по спеццене 🔥
Кто не успеет — наблюдает со стороны и заходит 19 апреля уже по другим условиям 🤷‍♂️

И если ты вдруг пропустил последние посты - мы запускаем практический экспресс-курс
"Оптимизация Oracle
SQL: быстрый старт 🚀"

📌 Почему это важно

За последние годы я заметил одну особенность: большинство разработчиков боятся execution plan'ов 😱
Или игнорируют их вовсе, или пытаются гадать по плану, как по кофейной гуще.

Поэтому я решил сделать компактный, но мощный курс, где ты:

🔶 Научишься находить проблемные запросы
🔶 Будешь ориентироваться в execution plan, как у себя дома
🔶 Поймешь, где реальные узкие места в твоем запросе
🔶 Наконец-то подружишься с SQL Monitoring

Друзья, это не “ознакомительный вебинар”, а крутой инструмент, который можно применять в своей работе уже с первой лекции 💡

Что внутри курса

🔶 SQL Monitoring: как включить, где смотреть
🔶 Execution Plan: как получить, разобрать, понять
🔶 Порядок выполнения операций
🔶 FULL TABLE SCAN, MERGE JOIN CARTESIAN, BUFFER SORT и многое другое
🔶 Поиск и устранение узких мест
🔶 Кейсы, тесты, задания 💪

🎯 Почему ты захочешь попасть в тестовую группу

Потому что тебя уже ждут:

Топовые знания и инструменты 🛠
Спеццена — всего 4990 ₽ 🔥
Бонусы — по 50-100 ₽ за найденные баги (даже за лишнюю запятую).
Отдельные призы первым трем студентам, закончившим обучение - 1000, 500 и 200 ₽ 💵
И главное — ты помогаешь сделать курс лучше ❤️

📌 Повторю ещё раз:

регистрация открыта
мест: 5
цена: 4990 ₽
19 апреля будет открытый запуск, но дороже и без бонусов

Теперь ты не просто студент — ты соавтор 🤝

Если ты всё ещё читаешь этот текст, то ты явно из тех, кто не плывёт по течению, а двигается вперёд 💥

📲 Пиши в поддержку 👈🏻 , оформляй участие и вливайся в волну 🏄🏼, которая первой получит доступ к новой линейке мини-курсов и снимет все сливки 🍰

Это будет закрытая группа, где мы вместе тестируем, обсуждаем и фиксим курс 🛠
Прямой вход в кухню, где мы готовим наши продукты ☕️

Только 5️⃣ мест. Кто успел - тот и съел.

#запуск #деньстарт #оптимизация #oracle #sqlmonitor #executionplan #курсоткрылся #тестоваягруппа #backendpro #кивилев #sql #минипродукт #разработка #карьера

Канал Oracle Developer | Чатик 💬
Please open Telegram to view this post
VIEW IN TELEGRAM
April 11
Друзья, всем привет! 👋🏻

В эту субботу мы не просто отметили День космонавтики — мы сами запустились на орбиту 💥🚀
И нет, не на МКС, а с тест-группой нашего мини-курса по оптимизации Oracle SQL 👩‍💻

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

Курс очень понравился, все было понятно и систематизировано. Я усвоил важные моменты, которые недопонимал все это время. Уже посмотрел некоторые запросы, которые тормозили у нас на проде, и понял, в каком направлении дальше буду копать! Большое спасибо за этот курс!


Все просто, никакой писанины, воды и умных слов.
Только практические советы:

🔶 как при чтении execution plan быстро понять, где просадка
🔶 как за пару минут найти тормозной запрос 🐢
🔶 когда Table Access Full — это плохо, а когда нет ⚖️
🔶 какие соединения перегружают систему, а какие идут как по маслу 🏃‍➡️

📅 Друзья, уже в эту субботу, 19 апреля, мы откроем курс для всех желающих 🔥

Те из вас, кто дойдет до финишной прямой, дополнительно получат:

первую и вторую лекции с полного курса "Оптимизация Oracle SQL"
видео реального собеса на 440К в MagnitTech 🔥
конспект по мини-курсу 📝
разбор огромных execution plan'ов 🔍
скидку на основной курс 🎁
и, конечно, сертификат участника! 🏅

Следите за новостями, будет интересно 👇🏻

#oracle #backendpro #кивилев #Denis_Kivillev #оптимизация #sql

Канал Oracle Developer | Чатик 💬
Please open Telegram to view this post
VIEW IN TELEGRAM
April 14
Что быстрее: IN или EXISTS?

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

Сегодня понедельник, самое время немного взбодриться после длинных выходных ☕️
И для разогрева предлагаем вопрос, который любят задавать на технических собесах: что же лучше — IN или EXISTS? 🤔

Итак, перед вами два запроса. Вроде бы делают одно и то же… но есть нюанс👇

-- Not Exists
SELECT /*+ FULL(d) */
d.department_name
FROM hr.departments d
WHERE NOT EXISTS (
SELECT 1
FROM hr.employees e
WHERE e.department_id = d.department_id);

-- Not IN
SELECT /*+ FULL(d) */
d.department_name
FROM hr.departments d
WHERE d.department_id NOT IN (
SELECT e.department_id
FROM hr.employees e);


🔍 На первый взгляд — разницы нет.
Но если присмотреться… 😏

💬 Напишите в комментариях к посту, в чём подвох.

И если вдруг вы не до конца понимаете, в чём отличие между IN и EXISTS, добро пожаловать на наш мини-эфир в четверг 🎙

Разберём по пунктам:

🔶 Сходства и отличия IN и EXISTS 🔄
🔶 Как работают SEMI JOIN и ANTI JOIN под капотом ⚙️
🔶 Какие вопросы по этой теме любят на собеседованиях 🧠
🔶 Примеры из практики 📌

📩 Ссылку на Zoom пришлём утром в четверг — следите за новостями в канале, чтобы не пропустить!

#задача #sql #оптимизация #анонс #вебинар #собеседование #oracle #Pavel_Dolganov

Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
May 12
Что быстрее: IN или EXISTS? 🤔

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

В понедельник мы показали вам два запроса и спросили, чем они отличаются.

Многие сходу ответили, что NOT IN не вернет данных, если подзапрос содержит Null-значения.
И это правильный ответ

Никакой магии тут на самом деле нет.
Условие id IN (1,2,null) можно развернуть как:
id = 1 OR id = 2 OR id = null
А id NOT IN (1,2,null) — как:
id != 1 AND id != 2 AND id != null

⛔️ Условие id != null никогда не выполнится, поэтому такой запрос ничего не возвращает.

📌 К слову, такой вопрос часто задают на технических собеседованиях.

Если хочется копнуть в сторону IN и EXISTS чуть глубже — ждем вас сегодня в 19:00 МСК на обещанный вебинар 🎓

Что разберем на вебинаре?

🔶 Сходства и отличия IN и EXISTS 🔄
🔶 Как работают SEMI JOIN и ANTI JOIN под капотом ⚙️
🔶 Какие вопросы по этой теме любят на собеседованиях 🧠
🔶 Примеры из практики 📌

Будет возможность задать вопросы и разобрать свои кейсы.

Кому будет полезно?
🔸 Начинающим разработчикам – чтобы не наступать на типичные грабли.
🔸 Мидлам – чтобы писать более эффективный код.
🔸 Всем, кто хочет хорошо проходить собеседования.

🎤 Ведущий — Павел Долганов

🔥 Подключайтесь, будет много полезного. До встречи на вебинаре! 🌐

➡️ Ссылка на ZOOM ⬅️

⚠️ Возможность подключиться ограничена: максимум 100 участников. Успевайте!

⚠️ Записи не будет!

#задача #sql #оптимизация #анонс #вебинар #собеседование #oracle #Pavel_Dolganov

Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
May 15
🧠 SQL-загадка с подвохом

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

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

📌 Дано:

create table demo_table (
ID char(4 CHAR),
value VARCHAR2(64 CHAR)
);


Известно, что есть следующие индексы и ключи:

create index DEMO_TBL_VALUE_IX on demo_table (VALUE);

alter table DEMO_TABLE
add constraint DEMO_TBL_PK primary key (ID)
using index;


Вопрос (c подвохом)
почему такая вставка проходит:

insert into demo_table values('0001', 1000);


А эта падает с ошибкой ORA-01722: неверное число:

insert into demo_table values('0002', 'Test');


Ответ
при наличии следующего индекса

create index DEMO_TBL_NUM_IX on demo_table(trunc(VALUE));

Такая конструкция называется индексом по функции (function based index).
В реальных проектах она используется довольно часто, например, когда на строковое поле мы создаем индекс UPPER(<column>).
Особенность такого индекса в том, что в листьях он хранит результат выполнения этой функции для каждого rowid.
Поэтому никакой магии тут нет: если мы не можем записать в индекс результат функции, то и вставку выполнить мы не можем.


В нашем случае, функция trunc пытается примениться к значению value. В первой строке - 1000 (все ок), во второй - 'Test' (ошибка).


Ставьте лайк, если было познавательно.
🔔 Если хотите узнать больше про индексы, следите за каналом — завтра будет важное объявление.

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

#oracle #sql #оптимизация #задачка #Pavel_Dolganov

Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
June 2
June 10
June 14
Media is too big
VIEW IN TELEGRAM
June 19