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

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

Отец-основатель: @denis_dbd Кивилёв Денис
Download Telegram
SQL марафон из 5 задач с призом 🏆

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

Решил попробовать новый формат. Это будут задачи для начинающих. Однако, мидлам и сеньерам тоже будет полезно размять мозг 🧠
Примерно такого уровня вопросы, мне попадались на собеседованиях на Java-разработчика.

Особенность - ответы будут сразу публиковаться с задачкой, но в скрытом режиме. Всего будет 5 постов-задач, с интервалом в 1.5 часа.

🔹Рекомендую, перед открытием спойлера, посидеть и подумать 😉
🔹Синтаксис, естественно, для Oracle.
🔹Я привожу не все возможные решения 👌
🔹Оставляем "за бортом" вопросы оптимизации.
🔹Определения для таблиц можно взять с репозитория
🔹Телега не позволяет использовать спойлер и SQL-форматирование одновременно😔

⚠️ Для интереса. Автору, опубликовавшему max количество оригинальных решений суммарно на все задачки в чатике, будет вручен денежный приз миллион - 5000 рублей или эквивалент USDT 💸💸 Добавляйте в ответ #решение_n.

Первая задача в 11:00 МСК

#задача #sql #марафон
Oracle Developer | Чат 💬
SQL марафон. Задача 1.

Постановка
Необходимо найти вторую по величине зарплату сотрудников (salary).
Сотрудники - таблица employees.

Решения
1️⃣
select max(salary)
from employees
where salary not in (select max(salary) from employees);

2️⃣
select max(salary) as secondhighestsalary
from employees
where salary < (select max(salary) from employees);

3️⃣
select salary
from (select salary
,row_number() over(order by salary desc) as rnk
from employees)
where rnk = 2;


Опубликуйте свое решение в чатике с тегом #решение1 💬

#задача #sql #марафон
Канал Oracle Developer | Чатик 💬
SQL марафон. Задача 2.

Постановка
Найдите максимальную зарплату для каждого департамента.
Выведете - имя департамента (department_name) и максимальную зарплату для него (salary).
Если у департамента нет сотрудников - максимальная зарплата должна быть "0".
Отсортируйте по имени департамента.

Департаменты - таблица departments.
Сотрудники - таблица employees.

Решения
1️⃣
select d.department_name
,nvl(max(salary), 0)
from departments d
left join employees e on e.department_id = d.department_id
group by department_name
order by department_name;


2️⃣
select d.department_name,
nvl((select max(salary)
from employees e
where e.department_id = d.department_id), 0) as max_salary
from departments d
order by d.department_name;


Опубликуйте свое решение в чатике с тегом #решение2 💬

#задача #sql #марафон
Канал Oracle Developer | Чатик 💬
SQL марафон. Задача 3.

Постановка
Нужно найти сотрудников, которые работают дольше всех в своей должности (job_id).
Выведите все поля из таблицы employees.

Сотрудники - таблица employees.

Решения
1️⃣
select e.*
from employees e
where hire_date =
(select min(hire_date) from employees where job_id = e.job_id);


2️⃣
select e.*
from employees e
join (select job_id
,min(hire_date) min_hire_date
from employees
group by job_id) m
on e.job_id = m.job_id
and e.hire_date = m.min_hire_date;


Опубликуйте свое решение в чатике с тегом #решение3 💬

#задача #sql #марафон
Канал Oracle Developer | Чатик 💬
SQL марафон. Задача 4.

Постановка
Нужно найти отделы с общей зарплатой сотрудников более 50000.
Вывести - ID отдела (department_id).

Сотрудники - таблица employees.

Решения
1️⃣
select department_id
from employees
group by department_id
having sum(salary) > 50000;


2️⃣
select d.department_id
from departments d
where (select sum(salary)
from employees e
where e.department_id = d.department_id) > 50000;


3️⃣
with dept_salaries as
(select department_id
,sum(salary) as total_salary
from employees
group by department_id)
select department_id
from dept_salaries
where total_salary > 50000;


Опубликуйте свое решение в чатике с тегом #решение4 💬

#задача #sql #марафон
Канал Oracle Developer | Чатик 💬
SQL марафон. Задача 5.

Постановка
Нужно найти всех сотрудников, у которых зарплата выше средней зарплаты в таблице employees.
Вывести - все столбцы из таблицы employees.

Сотрудники - таблица employees.

Решения
1️⃣
select e.*
from employees e
where e.salary > (select sum(salary) / count(*) from employees);

2️⃣
with avg_sal as
(select avg(salary) as avg_salary from employees)
select e.*
from avg_sal a
join employees e on e.salary > a.avg_salary;


Опубликуйте свое решение в чатике с тегом #решение5 💬

#задача #sql #марафон
Канал Oracle Developer | Чатик 💬
🌐 Навигация по темам канала Oracle Developer

📘 Основы
#sql #plsql #теория #архитектура
#функции #секционирование #временныетаблицы
#транзакции #исключения #курсоры
#аналитическиефункции #иерархическиезапросы
#системныепредставления #компиляция #представления #коллекции #циклы

🛠 Практика и задачи
#задача #решениезадачи #asktom

🚀 Оптимизация и производительность
#оптимизация #nestedloops #индекс

🧩 Инструменты и технологии
#тестирование #postgresql #oracle #docker #oracle23c #ide #ai

💼 Карьера и Развитие
#карьера #собеседование #hr #тинькофф #magnit #вкусноиточка #leroymerlin#сбер #яндекс #Эффективность #КарьерныйРост #Denis_Kivillev #Работа

🎓 Дополнительные материалы
#видео #подкаст #аудиоподкаст #конкурс #марафон #юмор


В почти 700 (!) постах не мудрено заплутать. Поэтому решил сделать подобие навигации 😉
Не забывайте пользоваться обычным поиском, я не добавил сюда низкочастотные хештеги
.

Канал Oracle Developer | Чатик💬
Решение задачи с Java-собеседования

1️⃣ Запрос для получения всех сотрудников вместе с их зарплатными начислениями

Здесь мы используем левое соединение (LEFT JOIN), чтобы отобразить всех сотрудников, даже если у них пока нет выплат.

select p.id person_id
,p.name
,pay.amount
from persons p
left join payments pay
on p.id = pay.person_id;


Что делает запрос:
🔹left join гарантирует, что каждый сотрудник из таблицы Persons будет отображен.
🔹поле amount будет NULL, если у сотрудника нет выплат.


2️⃣ Запрос для получения сотрудников, у которых общий размер выплат превышает 25

Здесь мы используем группировку (GROUP BY) и фильтрацию по агрегированной сумме (HAVING).

select p.id person_id
,p.name
,sum(pay.amount) total_amount
from persons p
left join payments pay
on p.id = pay.person_id
group by p.id, p.name
having sum(pay.amount) > 25;


Что делает запрос:
🔹SUM(pay.amount) рассчитывает общий размер начислений для каждого сотрудника;
🔹HAVING фильтрует только тех сотрудников, у которых сумма начислений превышает 25;
🔹группировка производится по id и name, чтобы для каждого сотрудника была одна строка;
🔹также используется left join, чтобы учесть новых сотрудников, у которых еще нет выплат (их сумма будет NULL, что при суммировании интерпретируется как 0).


Вероятно, джависта можно испугать такой задачкой, но нам Оракл-разработчикам - смешно😁
Зато алгоритмическая секция, может попортить кровушки 🩸

Обсудить в чате 💬

#sql #собеседование #решениезадачи
Канал Oracle Developer| Чат 💬
📊 Как узнать количество строк в каждой таблице с помощью одного SQL-запроса?

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

Хотите быстро узнать количество строк во всех таблицах базы данных, но без ресурсоемкого SELECT COUNT(*) для каждой? Ловите лайфхак! ⚡️

🔎 Как это сделать?

Oracle хранит статистику о таблицах в системных представлениях USER_TABLES и ALL_TABLES. В поле NUM_ROWS содержится количество строк, зафиксированное при последнем сборе статистики.

📌 Запрос для получения данных

SELECT table_name, num_rows
FROM user_tables;


Этот SQL выдаст список таблиц и количество строк в них на момент последнего обновления статистики.

💡 Важно! Данные могут быть устаревшими. Чтобы освежить статистику, используйте:

call DBMS_STATS.GATHER_SCHEMA_STATS(ownname => 'СХЕМА');


Это особенно полезно в больших БД, где полный пересчет строк мог бы занять очень много времени.

🚀 Итог

Использование системных представлений + регулярное обновление статистики = быстрый и эффективный анализ структуры базы без лишних нагрузок.

А вы как решаете эту задачу? Делитесь в комментариях! 💬

#SQL #Oracle #оптимизация
Канал Oracle Developer | Чатик 💬
Друзья, всем привет! 👋

Сегодня немного разбавим разговоры про карьеру задачкой из реального тестового задания на позицию разработчика 🚀

Итак, имеем две таблицы test и test_log:
create table test(
n number
);

create table test_log(
n number
);


Изначально в таблице test содержится 23 записи со значениями n от 1 до 23.
В таблице test_log имеется запись со значением n, равным 8.

💼 Задача:

Написать цикл от 1 до 23 (номер шага цикла обозначим как i), который:

1️⃣ Обновляет данные в таблице test для каждой записи n = i, устанавливая n = n - 1.
2️⃣ Вставляет в таблицу test_log запись с n = i.

💡 Условия:

✔️ Каждые 5 шагов необходимо выполнять фиксацию изменений в таблицах.
✔️ Если на каком-либо шаге произошла ошибка, изменения не должны быть зафиксированы.🚀

Лучшее решение обязательно опубликуем в понедельник 📝

Кто справился быстро — перешлите задачку коллеге, интересно узнать, как быстро справится он 😉

Обсудить в нашем чатике 💬

#задача #sql #практика #Pavel_Dolganov
Канал Oracle Developer | Чатик 💬
Audio
🔥 Кейс Павла: как студент без связей уже в 23 года зарабатывает 200К+? 🔥

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

У нас новый вдохновляющий кейс! 📢 Рекомендую прослушать на скорости 1,5—2х.🎙

Павлу всего 23 года, он студент и уже сейчас работает в позиции Middle Database Developer с зарплатой 200K+. Это уровень, к которому многие идут годами, но Павел добился такого результата всего за 2,5 года опыта.

🎯 Как он этого добился?

🔸 Начал карьеру еще на 3-м курсе
🔸 Учился через практику, разбор кода и реальные задачи
🔸 Понял, что рост зависит от знаний, а не от стажа
🔸 Самостоятельно готовился к собеседованиям, шлифовал навыки оптимизации SQL
🔸 Вышел на рынок и буквально за пару месяцев увеличил доход в 2 раза
❗️ Но самое интересное – он все еще учится и продолжает расти. Сейчас проходит курс по оптимизации Oracle SQL, чтобы выйти на новый уровень.

💬 Ваш ход! Что вы думаете?

Реально ли студенту пробиться без опыта и связей?
Какие знания дали вам самый быстрый рост в карьере?
Сколько у вас ушло на выход на уровень 200К+?

Павел – живой пример того, что главное не возраст, а готовность учиться и действовать!

Пишите в комментариях Чатик 💬, разберем ваши вопросы и истории!

#Карьера #Oracle #SQL #MiddleDeveloper #Оптимизация #Зарплата #IT #Программирование

Канал Oracle Developer | Чатик 💬
Друзья, всем привет! 👋🏻

На связи Денис. Пока Паша проводил вебинары и марафон по PL/SQL, готовил для вас посты, я был занят созданием нового продукта:
Экспресс-курс «Оптимизация Oracle SQL: Быстрый старт» 🚀

Продолжительность прохождения: 6–8 часов.
Несмотря на сжатый формат, наш подход остался прежним: мы даём то, что можно применять сразу на работе.

Что в курсе
Быстрый старт в оптимизации Oracle SQL
Планы запросов из реальных проектов
Поиск узких мест и тормозов
Перенос изменений на «горячие» системы, работающие 24/7/365
И всё это — в сжатом, понятном и применимом формате 👍

22 марта с пятью нашими студентами мы совершенно бесплатно провели альфа-тестирование.
Курс показал себя отлично! 💪 Да, были кое-какие замечания — и я их учёл.

И теперь мы готовы к запуску второй волны! 🔥

11 апреля я открою набор в группу бета-тестирования.
❗️Важно: в бета-тест беру только 5️⃣ человек.

Доступ будет по спецусловиям — 4990 ₽ за участие.

Для фана я решил добавить немного игровой механики 😊
🔸За каждый найденный баг я верну 100 ₽ 💰 В коде, в звуке, в тексте — без разницы.
🔸Первому, кто закончит курс — 1000 ₽, второму — 500 ₽, третьему - 200 ₽ 🔥

Если ты помогаешь нам сделать продукт лучше — ты зарабатываешь.

Где вы вообще такое видели? 😄

📆 Обучение: с 12 по 16 апреля.
Формат: видео-уроки, учишься как удобно.

Всего за 4 дня ты
проходишь обучение
находишь ошибки
присылаешь обратную связь
выходишь с новыми инструментами на работу 👍

Ждём именно тебя, если ты хочешь
🔶 быстро прокачаться в оптимизации SQL 🔧
🔶 начать применять знания на практике 🚀
🔶 не ждать, пока «соберутся звёзды», а начать действовать 💪

Ещё раз: только 5 человек❗️
Без доп. мест. Без списков ожидания 🙅‍♂️
Кто первый написал и оплатил — тот и попал на обучение 🕙

Уже 11 апреля мы выкатим полную программу 📚
А 19 апреля будет открытый запуск — но уже с другими условиями 😎

Готов? Тогда следи за анонсами 👇🏻

#oracle #sql #оптимизация #курс #практика #backendpro #кивилев #новыйкурс #миникурс #тестирование #запуск
Канал Oracle Developer | Чатик💬
Друзья, всем привет! 👋

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

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

Как и предупреждал, всего 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
Друзья, всем привет! 👋🏻

В эту субботу мы не просто отметили День космонавтики — мы сами запустились на орбиту 💥🚀
И нет, не на МКС, а с тест-группой нашего мини-курса по оптимизации 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
Что быстрее: 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
Что быстрее: 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
🧠 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
6-й поток курса «Оптимизация Oracle SQL» стартует в июле! 🚀

Друзья, всем привет! 👋
На связи Денис, и сегодня я хочу рассказать, как один курс может ускорить не только запросы, но и вашу карьеру 🚀

Многие из вас спрашивают:
💭 «Денис, а реально ли курс поможет? Просто я уже третий месяц гуглю, как оптимизировать запрос, и всё равно ничего не понимаю».

Ответ - да, реально! Доказательства вот, вот и вот, а также множество других отзывов.

Для чего люди приходят на курс по оптимизации

🔸 Они давно хотят пробить зарплатный потолок, но их текущих знаний оптимизации SQL откровенно недостаточно 🤷
🔸 Когда они получают офферы от HR-ов, то паникуют в ожидании технической части собеседования 😱
🔸 Они хотят проектировать эффективные решения вместо того, чтобы работать в режиме "туши пожары" 🧯

Курс по оптимизации помогает перейти от уровня "я умею в CTE и CONNECT BY PRIOR" к уровню "план выполнения запроса - мой лучший друг" 💪

📊 Что происходит на рынке прямо сейчас?

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

Мы каждый день созваниваемся с кандидатами на 6-й поток и чаще всего встречаем два типа разработчиков:

1️⃣ Те, кто соглашается на оффер в 200К, потому что вакансии за 300+ им не светят - они не могут пройти собес по оптимизации.

2️⃣ Те, кто знает, как читать AWR-репорты, но не умеет себя преподнести на техническом интервью - нет системы в голове.

В обоих случаях тебе к нам на курс 👉

🛠 Что вы там получите?

Практика, практика и ещё раз практика
Без теоретических лекций про ACID, которые можно найти в Википедии. Только живые кейсы, где нужно думать головой и работать руками.

Подготовка к собеседованиям
Вы будете готовы ответить на любой вопрос про план выполнения, хинты, execution stats и даже объяснить бизнесу, почему оптимизация важна 💬

Закрытый чат выпускников
Где делятся фишками, полезными скриптами и иногда вакансиями. Ну и шутят про deadlock-и на ночь глядя 😂

📌 Как устроен 6-й поток?

🗓 Старт: начало июля
👥 Формат: мини-группа до 10 человек
🎓 Обучение: 12 недель, живые разборы, домашки, мок-собеседования
💬 Чат: доступ ко всем встречам, обмен опытом, советы и поддержка

🌟 Кому точно стоит идти

🔶 Разработчикам, которые устали “оптимизировать” на глаз
🔶 Аналитикам, у которых отчёты работают дольше, чем остывает утренний кофе ☕️
🔶 DBA, которые хотят спать, а не искать bottleneck в 3 часа ночи

🔥 Внимание!
Вероятно, это последний поток в этом году. Следующий набор - в 2026 году.
Не откладывайте на потом - места ограничены!

👉 Ссылка на анкету предзаписи тут 👈

P.S. После курса вы не просто начнёте писать эффективный код - вы сможете закрывать проблемы бизнеса. А это самое важное. Сможете наконец-то получить тот самый оффер, о котором раньше только мечтали 💼

Думаете я шучу? Позиции Middle/Senior не проходят без вопросов или задач по оптимизации. Если вы её не знаете, как собес пройдете? Отвечу - никак 😊


Всем добра ❤️

#SQL #Oracle #Оптимизация #Собеседование #BackendPRO #Denis_Kivilev

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