Oracle Developer👨🏻💻
Статистика🔝 канал о разработке в СУБД Oracle: SQL, PL/SQL, оптимизация, архитектура и другое... Backend-pro.ru - обучение по различным программам, связанных с backend-разработкой для ФЛ и ЮЛ. Основатель: @denis_dbd Кивилёв Денис Менеджер: @love_flowerrr Влада
- Последний пост
- 15 авг.
- Последнее чтение
- 12:43
- Постов за неделю
- 14
- Всего постов
- 213
- Тип
- открытый
- Язык
- русский
- Категория
- Образование
- В каталоге с
- 12 авг.
- 1/24сутки в ленте
- 504
- 1/48двое суток
- 577
- 1/72трое суток
- 622
Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.
Посты
Друзья, всем привет! С вами Денис. Периодически ловлю себя на мысли, что хочется поделиться более широкими темами: рассказать про архитектуру бэкенда, фишки брокеров, Постгрес, Java, про то, как перейти в этот стек и на что обращать внимание. Но всё это вообще не подходит под формат Oracle-канала. Логично было бы сделать отдельный канал по разработке бэкенда с упором на Java/Kotlin, архитектуру, брокеры, PostgreSQL и так далее. Материалы были бы больше ориентированы на тех, кто хочет перейти в этот стек или прокачаться в нём. Я периодически спрашиваю ребят на вебинарах, было бы им это интересно, и получаю положительный отклик. Вот и решил спросить у своей почтенной и более широкой аудитории. Был бы вам интересен такой канал? С учётом опыта человека, который переходил из Oracle в Java-стек. Можете проголосовать с помощью реакций на посте: Да, было бы прикольно - 👍 В комментариях можете также накидать темы, которые были бы интересны в отдельном канале. Вдруг у кого-то что-то болит. Всем хороших выходных и спасибо за ваше мнение! Канал Oracle Developer | Чатик 💬 Мини-курс Оптимизация: Быстрый старт 🚀 📱 YouTube 📱 ВКонтакте 📱 LinkedIn 📱Threads RUTUBE
видео или голосовое, без подписи
видео или голосовое, без подписи
видео или голосовое, без подписи
Пробелы в знаниях закрываются даже на вебинаре 🔥😎 Коллеги, всем привет! Вчера прошел наш вебинар по соединениям в Oracle и это было круто (как всегда 😉😄) 🙌🏻 Спасибо всем, кто пришел и отдельное спасибо за обратную связь, это мотивирует двигаться дальше 😊 Возможно, вчера кто-то пропустил информацию об обучении. Напоминаем, что у нас есть два продукта: мини-курс по Оптимизации, который вы можете пройти буквально за выходные. Это классная возможность получить фундаментальные знания в оптимизации буквально за пару дней. И основной 3-х месячный курс по Оптимизации, который позволит максимально погрузиться в тему Оптимизации и выйти после обучения специалистом, который будет задачи по Оптимизации щелкать как орешки 😉 Мини-курс можно приобрести по ссылке ниже ⏬ 👉 приобрести мини-курс по ссылке 👈 Если вы планируете идти на 3-хмесячный курс по Оптимизации Oracle SQL или возникли вопросы, пишите моей помощнице Владе, со всем разберемся. Всем хорошего дня и классных выходных! #вебинар #миникурс #отзывы Канал Oracle Developer | Чатик 💬 Мини-курс Оптимизация: Быстрый старт 🚀 📱 YouTube 📱 ВКонтакте 📱 LinkedIn 📱Threads RUTUBE
видео или голосовое, без подписи
видео или голосовое, без подписи
видео или голосовое, без подписи
Коллеги, напоминаем, что вебинар по соединениям уже через час 🔥 На вебинаре будет много интересного, присоединяйтесь и отправляйте коллегам 😉 Также разберем бонусные темы на выбор, приходите 🔥 Всех ждём! 😉 👉👉 ССЫЛКА НА ЭФИР 👈👈 #вебинар #соединения #oracle Канал Oracle Developer | Чатик 💬 Мини-курс Оптимизация: Быстрый старт 🚀 📱 YouTube 📱 ВКонтакте 📱 LinkedIn 📱Threads RUTUBE
видео или голосовое, без подписи
От 20 минут до нескольких секунд 🤯 Коллеги, всем привет! Хотим поделиться историей нашего выпускника. Это не про «успешный успех», который так всех бесит 😄 Здесь про то, как применение знаний на практике реально влияет на работу 👍🏻 Олег пришёл на обучение, чтобы прокачать навыки работы с Oracle и оптимизацией SQL. Позже он начал применять полученные знания непосредственно в работе. Один из показательных кейсов - отчёт, который выполнялся около 20 минут ⚠️🤪 Пользователю приходилось запускать его и ждать, пока он завершится. Олег увидел обсуждение проблемы и решил разобраться: «А в чем собственно дело?» Недолго думая, при помощи ASH Олег выловил предателя, который тормозил весь отчет, получив execution plan, выявил bottle neck этого запроса и провёл оптимизацию, поменяв метод соединения множеств 👏🏻 ✅ В результате отчёт стал выполняться за считанные секунды. После этого кейса руководство обратило внимание на результаты работы Олега и стало передавать ему больше задач, связанных с оптимизацией. При этом сам Олег отмечает, что знания с обучения применяются у него постоянно: Все знания, которые дали, они все у меня применяются в работе и помогают мне на самом деле каждый день Именно ради таких результатов и нужна практика: не просто знать, что такое план выполнения или оптимизация SQL, а уметь применить эти знания, когда реальный запрос начинает работать 20 минут вместо нескольких секунд. Как раз такой подход у нас на обучении. В сентябре стартует 8-ой поток по Оптимизации Oracle SQL, вы знаете что делать 😉 Заполняйте анкету и моя помощница Влада все подробно расскажет о курсе. ⚠️ Кстати, напоминаю, что уже завтра мы встречаемся на вебинаре в 19:00 мск. Освобождайте вечер и зовите коллег, будет интересно! 💯 Всем хорошего дня! 🤝🏻 #кейс #обучение #вебинар #анкета #oracle #оптимизация_sql Канал Oracle Developer | Чатик 💬 Мини-курс Оптимизация: Быстрый старт 🚀 📱 YouTube 📱 ВКонтакте 📱 LinkedIn 📱Threads RUTUBE
Вебинар по соединениям уже в этот четверг 🔥 Коллеги, всем привет! 👋🏻 Напоминаем, что в этот четверг, 13 августа в 19:00 МСК, проведем бесплатный вебинар по методам соединения таблиц в Oracle. Разберем без магии, через планы выполнения, типичные ошибки и ситуации, которые регулярно всплывают в реальной работе. Ссылку на эфир опубликуем здесь 13 августа. Отправляйте коллегам и освобождайте вечер, будет интересно 😉💯 #вебинар #напоминание #эфир #oracle Канал Oracle Developer | Чатик 💬 Мини-курс Оптимизация: Быстрый старт 🚀 📱 YouTube 📱 ВКонтакте 📱 LinkedIn 📱Threads RUTUBE
видео или голосовое, без подписи
Задачка №3. Дублирование соединений 🎯 Коллеги, всем привет! 👋 На связи Денис. Сегодня будет интересная задачка. Смотрите. Есть запрос - довольно простой: две таблички соединяются через JOIN. Казалось бы, в плане запроса должно быть одно соединение по department_id. select /*+ use_nl(t d) */ t.first_name, d.department_name from hr.employees t join hr.departments d on d.department_id = t.department_id; Но. В реальном плане - их два. Хотя в запросе ничего такого нет. Откуда взялось второе? Вопрос к вам: почему так произошло? Можете порассуждать в комментариях - интересно, кто в какую сторону покопает 👇 Разберу ответ на вебинаре 13 августа 19:00. Всем хорошего дня и до встречи на вебинаре 🤝 #oracle #sql #join #оптимизация #планзапроса #задачка #вебинар #Denis_Kivilev Канал Oracle Developer | Чатик 💬 Мини-курс Оптимизация: Быстрый старт 🚀 📱 YouTube 📱 ВКонтакте 📱 LinkedIn 📱Threads RUTUBE
🚀 Вебинар по соединениям (joins) уже 13 августа 🔥 Коллеги, всем привет! 👋 JOIN - это не просто синтаксис из учебника по SQL. От того, как физически соединяются таблицы, часто зависит, будет запрос выполняться 200 мс или 20 минут, посчитается ли ночной отчет к утру и насколько уверенно вы будете смотреть в план выполнения. 13 августа проведем бесплатный вебинар по соединениям таблиц в Oracle. Разберем тему без магии и общих фраз - через реальные запросы, планы выполнения и типичные ошибки, которые регулярно всплывают на проектах. Что разберем: 🔹 Основные виды соединений в Oracle 🔹 Подробно погрузимся в Nested Loops и Hash Join Посмотрим, как они работают под капотом: ✅ когда Nested Loops и Hash Join действительно хороши; ✅ как оптимизатор выбирает алгоритм; ✅ какие условия, индексы и статистика влияют на решение. 🔹 Sort Merge Join / Merge Join Cartesian - если останется время, разберём эти алгоритмы. Скорее всего, сделаем упор на Cartesian - тема реально полезная. 🎁 В конце коротко расскажу о двух курсах по оптимизации Oracle SQL - экспресс-курсе и полном курсе. Без агрессивных продаж: просто покажу, кому какой формат подходит и какие задачи там отрабатываем руками. И еще будет интерактив для тех, кто любит копать глубже. Вы сами выберете бонусную тему: 1️⃣ Соединения в PostgreSQL - какие бывают, как выглядят в планах. или 2️⃣ Трассировка оптимизатора Oracle - посмотрим, как он трансформирует SQL-запрос на реальном примере Join Elimination из задачки на этой недели. Жду вас 13 августа в 19:00 МСК, обязательно отправьте этот пост своим коллегам или друзьям. Им 100% пригодится! Если работаете с Oracle SQL - не пропускайте. Поставьте напоминание в календарь и приходите на вебинар, будет плотно и по делу 👇 #oracle #sql #базы_данных #оптимизация_sql #разработка #вебинар Канал Oracle Developer | Чатик 💬 Мини-курс Оптимизация: Быстрый старт 🚀 📱 YouTube 📱 ВКонтакте 📱 LinkedIn 📱Threads RUTUBE
За год зарплата выросла почти на 60%. И дело было не в смене работы 😉 Коллеги, всем привет! 👋 Хочу поделиться историей нашего ученика Ильи с первого потока курса по оптимизации SQL. Он работает Oracle-разработчиком в одном из крупных банков и сам честно говорил: до обучения оптимизация была для него «тёмным лесом». Что изменилось после обучения: Первый серьёзный кейс пришёл почти сразу: тяжёлая выгрузка кредитных отчётов. В одиночном запуске запрос тормозил, при параллельных запусках становилось ещё хуже. Он подошёл к задаче уже не как «давайте добавим индекс и помолимся», а системно: 🔹 разобрал план выполнения; 🔹 нашёл дорогие операции; 🔹 пересмотрел логику запроса; 🔹 убрал лишнюю нагрузку; 🔹 сократил время выполнения в десятки раз. Глубокая оптимизация SQL - это не «узкая тема для DBA». На реальных проектах она быстро превращается в видимую ценность. Когда вы умеете разбирать производительность, вас начинают звать туда, где больно: ✅ медленные отчёты; ✅ перегруженные batch-процессы; ✅ странные блокировки; ✅ запросы, которые «вчера работали нормально»; ✅ собесы, где проверяют не синтаксис, а ход мысли. ❕ У Ильи результат оказался очень конкретным: за год зарплату повысили два раза, общий рост дохода составил почти 60%. При этом он не менял компанию. Дальше - больше. Коллеги начали приходить к нему за помощью, он стал внутренним экспертом по SQL-производительности, а затем перешёл на тимлидскую роль. В сентябре стартует уже 8 поток курса по оптимизации SQL. Если хотите не просто «послушать про планы», а научиться разбирать реальные запросы руками - заполните анкету на участие 👇 👉 ЗАПОЛНИТЬ АНКЕТУ 👈 Буду рад видеть тех, кто хочет расти через сильную техническую базу, а не через красивые формулировки в резюме. Всем быстрых запросов и спокойного прода 🚀 #sql #oracle #оптимизация_sql #базы_данных #карьера_в_IT #разработка #обучение Канал Oracle Developer | Чатик 💬 Мини-курс Оптимизация: Быстрый старт 🚀 📱 YouTube 📱 ВКонтакте 📱 LinkedIn 📱Threads RUTUBE
🕵️ Разбор: мистическое исчезновение соединения и таблицы из плана запроса Коллеги, всем привет! 👋 На связи Денис. В понедельник я показал вот этот запрос: select t.*, d.department_id from employees t join departments d on t.department_id = d.department_id И план, в котором от таблицы DEPARTMENTS и самого JOIN не осталось ни следа. И стало это следствием трансформации нашего запроса оптимизатором. Он применил Join Elimination (устранение соединения). Короче говоря, оптимизатор посмотрел на запрос и понял: а зачем вообще идти в DEPARTMENTS? Вот его логика по шагам 🔹Условие 1 - Foreign Key. Между EMPLOYEES.department_id и DEPARTMENTS.department_id есть FK-ограничение. Оптимизатор знает: для каждой строки из EMPLOYEES в DEPARTMENTS гарантированно найдется соответствующая запись. 🔹Условие 2 - мы не берем ничего нового. Колонка d.department_id, которую мы запрашиваем из второй таблицы - это тот же самый department_id, по которому идет джоин. Значение уже есть в первой таблице, дублировать смысла нет. Вывод оптимизатора. JOIN не изменит ни количество строк, ни значения в результате. Он лишний. Убрать. И вот тут самое интересное - оптимизатор не просто выкинул таблицу. Он ещё и добавил новый предикат, которого в исходном запросе не было: filter("T"."DEPARTMENT_ID" IS NOT NULL) Логика простая: INNER JOIN по определению отфильтровывает строки, где нет соответствия. Раз таблицы больше нет - оптимизатор сам добавил фильтр, который даёт тот же результат. Вот и вся магия. Никакой мистики - просто оптимизатор сработал умнее, чем мы ожидали 🤷🏻♂️ —— Не забываем, что 13 августа в 19:00 МСК у нас пройдет вебинар по методам соединения таблиц. Уже стало доброй традицией - самые стойкие и жадные до знаний получают еще допом интересную темку. В этот раз будут такие: 1️⃣ Соединения в PostgreSQL - виды и как отображаются в планах. 2️⃣ Трассировка оптимизатора - как он принимает решения, на примере того самого Join Elimination, который мы сегодня разобрали. Естественно, я расскажу ту тему, за которую проголосует большинство 🎁 Обязательно приходите и коллег своих приводите 😉 С вами был Денис. Всем предсказуемых планов запросов 🤝 #oracle #sql #оптимизация #performance #join #JoinElimination #plan #вебинар #oracledeveloper #Denis_Kivilev Канал Oracle Developer | Чатик 💬 Мини-курс Оптимизация: Быстрый старт 🚀 📱 YouTube 📱 ВКонтакте 📱 LinkedIn 📱Threads RUTUBE
С чего начинается собеседование? 🎙️ Коллеги, всем привет! 👋 Часто собеседование начинается не с алгоритмов, SQL или архитектуры, а с очень простого вопроса: «Расскажите о себе и своем опыте». И вот здесь даже сильный разработчик, QA или аналитик может внезапно зависнуть. В голове есть проекты, стек, релизы, инциденты, задачи - но вслух получается либо слишком коротко, либо слишком хаотично 🤪 👉 Проблема не в том, что человеку нечего сказать. Проблема в том, что он заранее не собрал нормальную структуру ответа. Почему этот вопрос важен На старте интервью интервьюер обычно проверяет не только факты из резюме. Он смотрит, насколько Вы уверены и спокойны, ну и, конечно, структурно ли подаете информацию. ❕ Это не «разогревочный вопрос». Это первый сигнал о том, как с вами будет общаться команда в реальной работе. ❌ Типичная ошибка Кандидат начинает пересказывать всю биографию: «Учился там-то, потом работал там-то, потом был проект, потом другой проект, потом мы что-то делали с Java, потом были тесты, потом ушел...» Формально все правда. Но интервьюеру сложно вытащить из этого пользу. ✅ Гораздо лучше подготовить короткий ответ на 1-2 минуты по простой схеме, которую наш карьерный консультант Люба разбирает, работая с нашими студентами. Да, прокачка Soft-скиллов играет важную роль, поэтому за помощью к Любе наши студенты обращаются часто 😄 Мы прикрепили кусочек из видео, где Люба дает общие рекомендации при прохождении собеседования. Если Вы планируете прокачать Hard-скиллы и Soft, велком на наше обучение в сентябре. Это будет уже 8-ой поток 🤯 Зафиксировать за собой место еще можно, написав Владе, она все расскажет. Пусть первое впечатление работает на вас, а не против вас. Удачных собеседований и спокойных разговоров с интервьюерами 🙂 #собеседование #карьера_в_IT #soft_skills #поиск_работы #резюме #IT_карьера Канал Oracle Developer | Чатик 💬 Мини-курс Оптимизация: Быстрый старт 🚀 📱 YouTube 📱 ВКонтакте 📱 LinkedIn 📱Threads RUTUBE
🕵️ Мистическое исчезновение соединения и таблицы из плана Коллеги, всем привет! 👋 На связи Денис. Сегодня задачка №2 на соединения. Есть, казалось бы, совершенно обычный запрос. select t.*, d.department_id from employees t join departments d on t.department_id = d.department_id Всё на месте: 🔹 EMPLOYEES 🔹 DEPARTMENTS 🔹 JOIN по department_id Запускаем, смотрим план (на скриншоте) - и тут начинается магия. В плане только EMPLOYEES. Таблицы DEPARTMENTS нет. Самого JOIN тоже нет. Мы явно указали соединение, явно обратились к колонке второй таблицы. Вопрос к вам: что же произошло? как такое вообще возможно? Пишите свои версии в комментариях 👇 В среду разберем, что это за магия такая и почему такие вещи иногда заставляют прям зависнуть над планом на пару минут 😄 С вами был Денис. Всем стабильного прода и планов без мистики 🤝 #oracle #sql #загадка #оптимизация #performance #plan #join #oracledeveloper #базы_данных #Denis_Kivilev Канал Oracle Developer | Чатик 💬 Мини-курс Оптимизация: Быстрый старт 🚀 📱 YouTube 📱 ВКонтакте 📱 LinkedIn 📱Threads RUTUBE
видео или голосовое, без подписи