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

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

Основатель: @denis_dbd Кивилёв Денис
Помощница: @love_flowerrr
Download Telegram
Media is too big
VIEW IN TELEGRAM
Секционирование на пальцах

Друзья, всем привет! 👋
Давненько мы не вспоминали про секционирование, а ведь это одна из тех интересных и продуманных частей Oracle, которой, честно говоря, порой не хватает в PostgreSQL (долой велосипеды) 😉
Опять же на собеседованиях спрашивают на старшие позиции.

В честь праздника решил сделать вам небольшой подарок 🎁 — записал короткое видео (всего 10 минут!) про секционирование: что это такое, зачем нужно и как применяется на практике. Думаю, вам будет интересно 😉

Смотрите, наслаждайтесь и делитесь впечатлениями в комментариях 💬

Хороших выходных тем, кто отдыхает, и лёгкого рабочего дня тем, кто в строю! 💪

#Oracle #секционирование #partitioning #Denis_Kivilev

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

📱 Facebook 📱 YouTube 📱 ВКонтакте 📱 LinkedIn 📱 Threads RUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍8🆒4🤩3🔥1
Media is too big
VIEW IN TELEGRAM
Хороший ли план?

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

В этом видео на реальном примере мы посмотрим execution plan запроса и разберём, почему опция partition range all — это красный флаг 🚩

Мы обсудим, что такое pstart и pstop, как определить тип секционирования (range, interval и т.д.), и почему важно уметь читать план выполнения запроса.
Кстати, такие задачи — часто попадаются на собеседованиях, особенно если вы претендуете на позиции уровня Senior 😉

Всем приятного просмотра 🎥

Если вы хотите уверенно ориентироваться в планах выполнения, понимать, как Oracle “режет” данные по секциям и оптимизировать запросы под большие таблицы — не пропустите наш мини-интенсив!
Старт 8 ноября — формат интенсив, максимум практики, две недели.
Чтобы записаться, напишите моей помощнице Владе 👩‍💻 Осталось пара мест.


Кстати, хотите разбор запроса со Спортмастера? Если наберем хотя бы 20 🦄 - запишу видосик 😉

#Oracle #секционирование #partitioning #оптимизация #Denis_Kivilev

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

📱 Facebook 📱 YouTube 📱 ВКонтакте 📱 LinkedIn 📱 Threads RUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
🦄41👍71🤩1
This media is not supported in your browser
VIEW IN TELEGRAM
С 80 до 200 тысяч. История человека, который доказал, что Oracle жив — и приносит деньги 🔥💰

Когда я впервые познакомился с Сергеем, он честно сказал:

«Я думал, что моё время прошло. Что PL/SQL никому не нужен, и максимум, на что я могу рассчитывать — это 80 тысяч в месяц».


Прошёл год — и он получает в два раза больше, работает в крупной компании, оптимизирует запросы, которые раньше «не летали», и с улыбкой говорит:

«Главное — понимать, как думает база».

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

🔸 Как один мини-курс стал поворотной точкой
🔸 Почему даже опытные специалисты залипают на лекциях Дениса
🔸 И как небольшие правки в запросах могут менять не только планы выполнения, но и судьбы

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

Всем чудесного дня ☀️

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

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

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"

📱 Facebook 📱 YouTube 📱 ВКонтакте 📱 LinkedIn 📱 Threads RUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥52👍1
Бразилия - ответы на вопросы 🎥

Друзья, всем привет!
Сегодня суббота — время щитпостинга 😁

Если вы сюда за SQL и Oracle — смело пролистывайте. В понедельник будет техпост - разберем план запроса со Спортмастера 🔥

А сегодня — вторая часть моего видео про жизнь в Бразилии 🇧🇷

В первом видосе я ответил на вопрос "почему Бразилия". Во второй решил ответить на вопросы, которые вы мне прислали.

Поговорим про
🩺 медицину — как устроено лечение за границей
🧒 обучение детей — что удивило больше всего
🛡 безопасность — правда ли тут опасно
👥 людей — какие они, бразильцы
и ещё кучу других моментов, о которых обычно спрашивают после переезда.

Видео получилось подлиннее первой части, но зато разобрал всё подробно и честно.
В этот раз монтировала, моя жена — она у меня монтажёр-любитель, иногда помогает с видосами 🎬

Welcome на YouTube и Rutube — смотрите, комментируйте, задавайте вопросы, я постараюсь ответить уже текстом 👇
🎥
YouTube
🎥 Rutube (как перестанет глючить залью)


Всем хороших выходных 👯‍♀️
С вами был Денис 👋

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

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

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"
🔥9👍51
Media is too big
VIEW IN TELEGRAM
Чтение плана запроса на собеседовании в Спортмастер 🏋️‍♂️

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

Сегодня разберём реальное задание с собеседования в компанию «Спортмастер», где нужно было прочитать и объяснить план выполнения SQL-запроса.
Такие кейсы встречаются на интервью в крупных компаниях, поэтому стоит быть к ним готовым 😉

Немного контекста
Я проходил это собеседование прошлой осенью, собирая материал для курса по оптимизации.
Интересный момент — интервью проводила девушка, с которой мы вместе работали в «Магните» в 2016–2018 годах 😅
К счастью, она меня не узнала, и разговор получился очень техническим — без «поблажек по старой памяти».

Теперь к сути
Мне показали фрагмент explain plan и просили объяснить - какие операции в запросы выполняются, что они означают, какие структуры данных использовались.

Понимание плана выполнения — это навык, который проверяют не только в «Спортмастере», но и в банках, телекомах и крупных e-commerce.

Если при виде execution plan вы чувствуете неуверенность — самое время подтянуть знания.
Такие задания часто определяют, пройдёте ли вы техническое интервью или «застрянете» на объяснении простого Full Scan.

🎥 На youtube в HD-качестве

А если хотите научиться читать планы запросов любого уровня сложности - вы знаете что делать 😉

#Oracle #SQL #оптимизация #executionplan #интервью #спортмастер #Denis_Kivilev

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

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"

📱 Facebook 📱 YouTube 📱 ВКонтакте 📱 LinkedIn 📱 Threads RUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30🔥92🤝2🤩1
Почему многие специалисты не растут в зарплате?

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

Знаете, я всё чаще замечаю одну интересную вещь. Люди становятся всё опытнее, всё грамотнее, но при этом их жизнь как будто стоит на паузе.
Ты смотришь на человека: хороший специалист, с головой, руки на месте, в профессии уже лет десять…
А доход тот же, что и пять лет назад, работа та же… И внутри ощущение: «ну, вроде всё стабильно, но чего-то не хватает».

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

📉 200–300 тысяч — цифра, которая 15 лет назад звучала как «успех жизни». Тогда на эти деньги можно было спокойно закрыть ипотеку за 3–5 лет, купить машину за год и летать с семьёй в отпуск хоть каждый месяц. Это была зарплата уровня «жизнь удалась».

А сегодня что? Эти же 300 тысяч — это пять дней отпуска за границей, ипотека на двадцать лет и нескончаемое ощущение, что ты вроде работаешь, а выдохнуть не можешь…

Но многие продолжают мечтать о тех самых «300 тысячах», словно мы всё ещё живём в 2008 году. Многие продолжают думать, что главное – просто быть хорошим специалистом, что «лишний раз дергаться не стоит», и что «когда-нибудь всё само сложится».

Но мир давно поменялся.
И теперь выигрывают те, кто не ждёт, пока его заметят,
а сам выходит вперёд.
Те, кто не боится переучиваться, идти на новые собеседования, искать возможности там, где другие даже не смотрят.

Пока одни годами сидят на одном месте «ради стабильности», другие работают с зарубежными компаниями, получают офферы на 400–500К, путешествуют с семьёй и живут без страха, что завтра «всё рухнет».

И разница между ними не в знаниях, а в том, что одни продолжают цепляться за прошлое, а другие приняли новое время и двигаются вперёд 🔥

Так что же делать?

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

2️⃣ Пересмотреть свои ориентиры. Если вы всё ещё живёте старыми цифрами и старыми ожиданиями, вы играете в игру, которой уже нет. Рынок стал другим. Деньги теперь идут за теми, кто мыслит шире и двигается быстрее.

3️⃣ Не закапывайтесь в стабильности. Стабильность — это красивая упаковка для стагнации. Вы можете оставаться на месте и «ждать повышения», но вокруг вас будут те, кто не боится меняться.

Проблема не в том, что вы чего-то не знаете,
а в том, что вы перестали двигаться. И как только вы снова начнёте, результаты не заставят себя ждать 🚀

С вами был Денис Кивилёв.
Растите. Меняйтесь. Не застревайте в прошлом.
Потому что впереди — куда больше, чем просто «стабильность» 🔥

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

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

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"

📱 Facebook 📱 YouTube 📱 ВКонтакте 📱 LinkedIn 📱 Threads RUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥5👍2🤩1
История про возврат курса.

Хочу рассказать вам историю из закулисья нашей школы.
Этим летом у нас случился интересный случай.

Один студент прошёл три урока, посетил все вебинары, посмотрел мини-курс. В целом, был активен, задавал вопросы, участвовал в обсуждениях. И, судя по всему, всё шло отлично.

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

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

🤷‍♂️ Ну что ж… плохому танцору всегда что-то мешает.

Иногда людям проще обвинить других, чем признать,
что не выдержали ритм, не дотянули, не рассчитали силы.
И это нормально — просто так устроена человеческая психика.

Но знаете, что самое интересное? За 4 года существования школы это был единственный возврат.

Для меня это показатель того, что:
🔥 мы честно работаем;
🔥 держим слово;
🔥 и отвечаем за то, что делаем.

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

С вами был Денис Кивилёв.
Всем добра и позитива ☀️

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

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

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"

📱 Facebook 📱 YouTube 📱 ВКонтакте 📱 LinkedIn 📱 Threads RUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥74🤯2🆒2
Media is too big
VIEW IN TELEGRAM
Друзья, всем привет! 👋
С вами Денис.

Сегодня я покажу
1️⃣ Почему полезно делать количество секций в хэш-секционировании равным степени двойки. 💡
2️⃣ Разберём, как определить, в какую именно секцию попадает значение ключа секционирования.

Видео относится к серии «интересно, но практически бесполезно» 😄 — поэтому можно расслабиться, налить кофе ☕️ и просто насладиться небольшими техническими изысканиями.

Код к примеру
drop table sale_hash;

create table sale_hash(
sale_id number(30) not null,
sale_date date not null,
region_id char(2 char),
customer_id number(30) not null
)
partition by hash(customer_id)
partitions 4;

-- Вставка 16К записей
insert into sale_hash
select level, sysdate+level, 'NY', level
from dual connect by level <= 16000;
commit;

-- Сбор статистики
begin
dbms_stats.gather_table_stats(ownname => user,
tabname => 'sale_hash');
end;
/


select t.partition_position, t.num_rows, t.*
from user_tab_partitions t where t.table_name = 'SALE_HASH'
order by t.partition_position;

select ora_hash(t.sale_id, 3) + 1 part_num, count(*)
from sale_hash t
group by ora_hash(t.sale_id, 3);


Cсылка на документацию, где можно подробнее почитать про функцию ORA_HASH.

Всем приятного просмотра и отличного дня! 🌞

#oracle #базыданных #программирование #Denis_Kivilev

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

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"

📱 Facebook 📱 YouTube 📱 ВКонтакте 📱 LinkedIn 📱 Threads RUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
👍177🔥2🤩1
ОБ ЭТОМ ТОЧНО СТОИТ РАССКАЗАТЬ ⬇️

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

Хочу поделиться с вами короткой, но показательной историей. На днях мне написал парень, проходивший обучение в нашей школе, о том, что получил налоговый вычет 💸

И вот что важно: наши программы официально дают возможность получить налоговый вычет.
То есть часть стоимости обучения вы можете вернуть обратно 😉

Как это работает:
— Вы оплачиваете обучение.
— Мы выдаём официальную справку для налоговой.
— Вы подаёте заявление и получаете возврат до 13% от суммы оплаты.

Всё абсолютно законно, быстро и без “танцев с бубном”. И вот пример из практики – человек реально получил деньги обратно уже через пару недель после подачи.

💡Так что если вы думали обучаться на каком-либо из направлений в нашей школе, но сомневались из-за бюджета — просто учтите: часть инвестиций в себя можно вернуть.

Учитесь, развивайтесь, и пусть даже налоговая будет на вашей стороне!

Учёба — это не расход, это инвестиция, которая возвращается 💰

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

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

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"

📱 Facebook 📱 YouTube 📱 ВКонтакте 📱 LinkedIn 📱 Threads RUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥117🎉4👍3🆒1
This media is not supported in your browser
VIEW IN TELEGRAM
Минус Бразилии - разница во времени

Коллеги, всем привет!
Немного субботнего щитпостинга из жизни digital-nomad в Бразилии 🇧🇷

Один из главных минусов жизни здесь — разница с Москвой.
6 часов — и это реально критично. Если работаешь по московскому часовому поясу, приходится вставать чудовищно рано. У тебя, например, DSM в 10:00 (по МСК) — значит, подрыв в 4 утра.
Знаю ребят, которые так тут живут 😭 График, конечно, не для сов. Ложишься в 23, встаёшь ни свет ни заря — хронический недосып обеспечен.

Сегодня у нас с коллегами лекция по секционированию началась в 10:00 (по Москве), поэтому я поднялся в 3:30 утра.
Хочешь зарабатывать — приходится пахать. Никто деньги в клювике не принесёт 💸

Но есть и плюс: рассветы здесь бомбические. У меня их уже целая коллекция — каждый день новый, каждый день красивее предыдущего 🌄
Да и если заказчик, например, с US, то график выравнивается, чем я сейчас успешно и пользуюсь 😊

В общем, друзья, хорошего вам настроения и продуктивного дня!
С вами был Денис 👋

#бразилия #digitalnomad #щитпостинг #Denis_Kivilev

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

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"

📱 Facebook 📱 YouTube 📱 ВКонтакте 📱 LinkedIn 📱 Threads RUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍6🔥4🦄1
Dbms_rowid интересный пакет, который может пригодится

Друзья, всем привет! 👋
С вами Денис.
В нашем канале разного уровня специалисты, этот пост зайдет Middle- и Senior-ребятам, но и Junior могут почерпнуть полезное.

Итак, каждый разработчик Oracle хотя бы раз сталкивался с ROWID — уникальным идентификатором строки в базе. Cодержит информацию о типе ROWID, идентификаторе объекта, относительном номере файла (relative file number), номере блока и номере строки в блоке.

Но как разобрать его на части или создать искусственно? Здесь на помощь приходит пакет DBMS_ROWID. Это не просто утилита, а мощный инструмент для глубокого анализа и манипуляций с данными на уровне блоков. В реальной жизни он спасает при отладке, миграциях или оптимизации хранения. Без него сложно понять, где именно лежит ваша запись в файлах данных.

Пакет DBMS_ROWID появился в Oracle для работы с ROWID из PL/SQL и SQL. Он позволяет извлекать информацию о блоках данных, файлах, объектах и даже создавать тестовые ROWID.

Ключевые функции пакета

DBMS_ROWID.ROWID_CREATE — создает ROWID для тестирования. Полезно, когда нужно симулировать запись без реальной БД.
DECLARE
v_rowid ROWID;
BEGIN
v_rowid := DBMS_ROWID.ROWID_CREATE(
rowid_type => sys.dbms_rowid.rowid_type_extended,
object_number => 12345,
relative_fno => 1,
block_number => 100,
row_number => 5
);
DBMS_OUTPUT.PUT_LINE(v_rowid);
END;


DBMS_ROWID.ROWID_INFO — разбирает существующий ROWID на компоненты: тип, номер объекта, файл, блок и строку.
DECLARE
v_rowid ROWID := 'AAAAAAAABAAAALaAAA';
v_type NUMBER;
v_object NUMBER;
v_file NUMBER;
v_block NUMBER;
v_row NUMBER;
BEGIN
DBMS_ROWID.ROWID_INFO(
rowid_in => v_rowid,
rowid_type => v_type,
object_number => v_object,
relative_fno => v_file,
block_number => v_block,
row_number => v_row
);
DBMS_OUTPUT.PUT_LINE('Объект: ' || v_object || ', Блок: ' || v_block);
END;


Другие полезные модули
ROWID_BLOCK_NUMBER возвращает номер блока,
ROWID_OBJECT — номер объекта,
ROWID_RELATIVE_FNO — относительный номер файла,
ROWID_ROW_NUMBER — номер строки в блоке,
ROWID_TO_ABSOLUTE_FNO — абсолютный номер файла,
ROWID_TO_EXTENDED и ROWID_TO_RESTRICTED для конвертации типов,
ROWID_TYPE для проверки типа,
ROWID_VERIFY для валидации.

Для чего использовать DBMS_ROWID
🔸 Диагностика инцидентов — быстро найти физическое местоположение проблемной строки по ROWID из alert.log/trace.
🔸 Анализ ошибок — определить повреждённый блок, файл и объект.
🔸 Контроль миграций/восстановлений — сверка фактического физического размещения строк между средами.
🔸 Анализ распределения данных — понять плотность блоков, выявить горячие сегменты или неэффективную кластеризацию.
🔸 Работа с партиционированием — определить точный партишен/subpartition, где находится строка.
🔸 Точечный доступ к данным — выборка строк по известным физическим координатам без сложных JOIN.
🔸 Служебное логирование — фиксировать ROWID проблемных записей для последующей диагностики.
🔸 Создание воспроизводимых тестов — моделирование ситуаций с повреждёнными или смещёнными строками.

Пост был навеян лекцией в субботу. Показывал ребятам свой код с Магнита, написанный в 17м году. И наткнулся на dbms_rowid.rowid_object(v_rowid). На скрине выше ⬆️


Используете ли вы DBMS_ROWID в проектах? Поделитесь кейсами, когда он выручил, в комментариях 💬

Всем продуктивного дня и удачных запросов! 🌟

#oracle #dbms_rowid #rowid #plsql #oracledev #базыданных #sql

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

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"

📱 Facebook 📱 YouTube 📱 ВКонтакте 📱 LinkedIn 📱 Threads RUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
👍111
Почему вам трудно найти работу с зарплатой выше 100К

За последние месяцы ко мне приходит всё больше ребят, которые говорят одно и то же:

🗣 «У меня нормальный опыт, сильный стек, всё знаю, развиваюсь, но на резюме никто не отвечает».
🗣 «Два, три, шесть месяцев, ни одного внятного собеса».


И каждый раз я вижу одну картину: хорошие специалисты, реально понимающие, что делают… но рынок их просто не замечает.

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

📉 В чём настоящая причина?

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

Пока вы сидите и ждёте, кто-то с меньшим опытом, но с правильной стратегией уже получает офферы на 100–150К.

Почему так происходит?

🔹 Вы не понимаете, как работает воронка найма.
HR смотрит 200+ резюме в день. Не зацепили за первые 10 секунд — вас пролистали.

🔹 Ваше резюме не продаёт.
Там перечислены технологии, но нет ценности и результатов.

🔹 Вы ищете вакансии там, где “ищут все”, и тонете среди сотен одинаковых кандидатов.

🔹 Самое главное — вы ждёте, что процесс «сам как-нибудь сложится».

В итоге получаем парадокс: вы сильный специалист, но рынок вас не видит. Не потому что вы слабый, а потому что вы невидимый.

И вот вопрос: почему один человек получает офферы на 120К+, а другой полгода сидит без единого ответа, хотя делает те же задачи? Да просто первый понимает правила игры

В наших программах карьерные блоки были всегда, но мы адаптировали их под текущие реалии рынка.

Сегодня требования к кандидатам сильно изменились, и мы обновили:

🔥 как должно выглядеть резюме, чтобы проходить автоматические фильтры;
🔥 как оформить опыт так, чтобы HR увидел ценность, а не просто «стек»;
🔥 где реально искать вакансии, чтобы не тонуть среди сотен одинаковых откликов;
🔥 и как себя презентовать так, чтобы вам предлагали даже больше, чем вы просите.

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

💻 Анкета предзаписи на ближайший поток здесь

С вами был Денис Кивилёв.
Не ждите, пока вас найдут — сделайте так, чтобы вас невозможно было не заметить 🚀

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

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

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"

📱 Facebook 📱 YouTube 📱 ВКонтакте 📱 LinkedIn 📱 Threads RUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43🔥2🆒1
Один в поле не воин.

Знаете, часто люди думают, что все эти вебинары, курсы, проекты и контент я делаю один. Но это не так. Потому что один человек просто не способен тянуть всё это на себе…

Да, я могу выстроить архитектуру, рассказать про оптимизацию Oracle, провести стрим и ответить на сотни технических вопросов…
Но чтобы всё это работало, выглядело и доходило до вас — нужна команда.

И сегодня хочу рассказать о тех, кто делает всю эту “машину” живой 👇

Дима – Project manager. Человек, который управляет всей системой курсов, вебинаров и процессов. Если вы видите, что у нас всё идёт чётко и слаженно, это его заслуга 😉 Он тот самый человек, который воплощает в жизнь мои идеи!

Настя – SMM-специалист. Весь контент, который вы видите, проходит через неё. Без неё мой канал был бы просто набором технических заметок 😅

Влада – бизнес-ассистент. Мой тыл и правая рука. Организация, документы, графики, встречи — всё это на ней. Благодаря Владе у меня не горят дедлайны и не рушатся планы. Также она помогает выстроить четкую систему, иначе был бы просто хаос…

Преподаватели. Про них вы уже слышали много раз — Костя, Паша и другие ребята. Это бойцы невидимого фронта, которые держат методологию и качество обучения на высоте. Люди, которые объясняют сложные вещи простым языком, помогают на стримах, отвечают в чатах и ведут практику.

Но есть и те, кого вы почти не видите:

🔹 Юристы. Готовят документы, договора, всё оформляют так, чтобы вам было спокойно и безопасно.

🔹 Техспециалисты. Поддерживают платформу, исправляют баги, делают обновления, следят за доступами.

🔹 Дизайнер. Отвечает за визуал, баннеры, презентации, обложки, стиль.

🔹 Рекламная команда – чтобы о нас узнали те, кому это реально нужно.

🔹 Бухгалтер и админы – чтобы всё сходилось, учитывалось, сохранялось и работало без сбоев.

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

🗣 «Вы кто? Это точно не фейк?»
🗣 «Меня пытаются развести?»


А это просто наша команда, которая максимально старается вам помочь)

Снаружи может казаться, что все просто. Но на деле это огромный айсберг, у которого под водой скрыты десятки процессов, ролей и задач, о которых вы даже не догадываетесь. За каждым уроком, каждым вебинаром, каждым постом стоят не только мои знания, но и труд целой команды, которая живёт этим проектом 😉

С вами был Денис Кивилёв.
И вся моя команда, без которой этот проект не стал бы тем, чем он является сегодня 🚀

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

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

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"

📱 Facebook 📱 YouTube 📱 ВКонтакте 📱 LinkedIn 📱 Threads RUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1110🔥4🎉4🆒3
Composite Index: какую колонку поставить первой?

Коллеги, всем привет!

Этот вопрос волнует и Junior-, и Middle-, и даже Senior-разработчиков: как правильно выбрать порядок колонок в составном индексе?
Казалось бы, простой вопрос: есть таблица, есть запрос с условиями по нескольким колонкам — создаём составной индекс. Но в каком порядке расположить колонки? Ответ не так очевиден, как кажется, и зависит от нескольких факторов.

Что такое селективность?
Селективность колонки — это отношение уникальных значений к общему количеству строк. Чем выше селективность, тем меньше строк возвращается при фильтрации по этой колонке.

Примеры:
🔹 Высокая селективность: ID сотрудника, email, номер паспорта (почти все значения уникальны)
🔹 Низкая селективность: пол (M/F), статус (Y/N), тип документа (5-10 значений)

Традиционная рекомендация — ставить первой колонку с наибольшей селективностью. Логика проста: Oracle быстрее отфильтрует большую часть строк.

Пример:
-- Таблица сотрудников
CREATE INDEX idx_emp_composite
ON employees(employee_id, department_id, status);


Здесь employee_id имеет высокую селективность (уникальные значения), department_id — среднюю (10-20 отделов), status — низкую (активен/неактивен).

Если ваш запрос использует все три колонки или начинается с employee_id, такой индекс будет работать отлично:
SELECT * FROM employees
WHERE employee_id = 12345
AND department_id = 10
AND status = 'A';


Но есть нюанс!
Что если ваши запросы чаще фильтруют по department_id и status, а employee_id используется редко? Тогда индекс с employee_id первым становится бесполезным для большинства запросов.

Анализируйте ваши запросы

Первой должна быть колонка, которая чаще всего используется в WHERE-условиях. Даже если её селективность ниже.

Пример:
-- Частый запрос
SELECT * FROM employees
WHERE department_id = 10
AND status = 'A';

-- Лучший индекс для этого случая
CREATE INDEX idx_dept_status
ON employees(department_id, status);


Index Skip Scan и низкая селективность

Oracle умеет использовать составные индексы, даже если первая колонка не участвует в запросе — это называется Index Skip Scan. Но это работает эффективно только если первая колонка имеет низкую кардинальность (мало уникальных значений).

Пример:
CREATE INDEX idx_status_empid 
ON employees(status, employee_id);

-- Запрос без первой колонки
SELECT * FROM employees
WHERE employee_id = 12345;


Oracle может ""перепрыгнуть"" через status (всего 2 значения: Y/N) и использовать индекс. Но если первая колонка имеет тысячи уникальных значений, Skip Scan будет неэффективен.

Практический пример

Допустим, у вас таблица заказов. Типичные запросы:
-- Запрос 1: поиск по клиенту и статусу
SELECT * FROM orders
WHERE customer_id = 1001 AND status = 'PENDING';

-- Запрос 2: поиск по дате и статусу
SELECT * FROM orders
WHERE order_date BETWEEN DATE '2024-01-01' AND DATE '2024-12-31'
AND status = 'SHIPPED';


Решение:
-- Для запроса 1
CREATE INDEX idx_cust_status
ON orders(customer_id, status);

-- Для запроса 2
CREATE INDEX idx_date_status
ON orders(order_date, status);


Обратите внимание: status имеет низкую селективность, но он присутствует в обоих запросах, поэтому идёт вторым.

Итого
Выбор порядка колонок в составном индексе — это баланс между:
🔹 Частотой использования колонки в запросах (главный фактор)
🔹 Селективностью колонки (высокая селективность первой — хорошо)
🔹 Возможностью Index Skip Scan (низкая кардинальность первой колонки помогает)

Не существует универсального правила. Анализируйте ваши реальные запросы, смотрите execution plans, тестируйте разные варианты. Конечно же, на курсе по Оптимизации мы это подробно разбираем.

А как вы решаете, какую колонку поставить первой в составном индексе? Напишите в чатике 💬

#oracle #compositeindex #оптимизация

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

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL" 🔥

📱 Facebook 📱 YouTube 📱 ВКонтакте 📱 LinkedIn 📱 Threads RUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8🤝64👍2
2 декабря — бесплатный вебинар по Oracle SQL:

«3 способа за 5 минут найти медленные запросы и исправить их за час» 🔥

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

Поэтому 2 декабря в 19:00 по МСК мы снова соберёмся, но теперь программа будет ещё мощнее 💥 На скрине можете видеть кусочек сценария для презентации)

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

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


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

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

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

Практики будет еще больше, чем в прошлый раз 🔥

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

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

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

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

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

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

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

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

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

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

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"

📱 Facebook 📱 YouTube 📱 ВКонтакте 📱 LinkedIn 📱 Threads RUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
👍116🎉1
NVL, COALESCE и NVL2: различия и практические кейсы

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

Сегодня разберём три функции для работы с NULL, которые часто путают начинающие разработчики: NVL, NVL2 и COALESCE.

На первый взгляд все они решают одну задачу — заменяют NULL на что-то осмысленное. Но каждая имеет свои особенности, которые влияют на производительность и результат выполнения запроса.

NVL (Null Value Logic)

Самая простая и древняя функция Oracle для замены NULL.

Синтаксис:
NVL(выражение, значение_если_NULL)


🔹 Принимает ровно 2 аргумента
🔹 Если первый аргумент NULL — возвращает второй
🔹 Вычисляет оба аргумента (кроме констант - Oracle их оптимизирует)

Пример:
SELECT employee_name, NVL(commission_pct, 0) AS commission
FROM employees;


COALESCE (Стандарт SQL)

Более гибкая функция, которая может принимать любое количество аргументов.

Синтаксис:
COALESCE(выражение1, выражение2, ..., выражениеN)


🔹 Принимает 2 и более аргументов
🔹 Возвращает первое найденное не-NULL значение из списка
🔹 Вычисляет аргументы последовательно и останавливается на первом не-NULL (более эффективно!)

Пример:
SELECT employee_name,
COALESCE(mobile_phone, work_phone, home_phone, 'No phone') AS contact
FROM employees;


NVL2 (расширенная версия NVL)

Уникальная функция Oracle для разных значений в NULL и не-NULL случаях.

Синтаксис:
NVL2(выражение, значение_если_НЕ_NULL, значение_если_NULL)


🔹 Принимает ровно 3 аргумента
🔹 Если первый аргумент НЕ NULL — возвращает второй
🔹 Если первый аргумент NULL — возвращает третий

Пример:
SELECT employee_name,
NVL2(commission_pct,
salary + (salary * commission_pct),
salary) AS total_compensation
FROM employees;


Практический кейс: производительность

Важный момент! NVL всегда вычисляет оба аргумента (кроме констант), а COALESCE — только до первого не-NULL.

-- NVL вызовет expensive_function() ВСЕГДА
SELECT NVL(column_value, expensive_function()) FROM table_name;

-- COALESCE вызовет только если column_value IS NULL
SELECT COALESCE(column_value, expensive_function()) FROM table_name;


Если у вас миллионы строк и дорогая функция — разница будет колоссальной! 🚀

Практический кейс: множественные проверки

Найти первый доступный контакт клиента:

-- С NVL — громоздко
SELECT NVL(NVL(NVL(email, mobile), work_phone), 'No contact')
FROM customers;

-- С COALESCE — элегантно
SELECT COALESCE(email, mobile, work_phone, 'No contact')
FROM customers;


Практический кейс: условная логика с NVL2

Расчёт бонуса по разным формулам:

-- Без NVL2 — через CASE
SELECT employee_name,
CASE WHEN commission_pct IS NOT NULL
THEN salary * 0.1
ELSE salary * 0.05
END AS bonus
FROM employees;

-- С NVL2 — компактнее
SELECT employee_name,
NVL2(commission_pct, salary * 0.1, salary * 0.05) AS bonus
FROM employees;


Ловушка с типами данных

-- Ошибка! Несовместимые типы
SELECT NVL(salary, 'Unknown') FROM employees;

-- Правильно — приводим к одному типу
SELECT NVL(TO_CHAR(salary), 'Unknown') FROM employees;

-- Oracle обрабатывает пустую строку как NULL!
SELECT NVL('', 'Default') FROM dual; -- Вернет 'Default'


Обратите внимание: NVL всегда возвращает тип первого аргумента, а COALESCE — может выбрать более общий тип (например, NUMBER + VARCHAR2 даст VARCHAR2).

Когда что использовать?

NVL — для простой замены NULL на значение по умолчанию (Oracle)

COALESCE — когда нужно проверить несколько значений или важна производительность (современный подход!). Стандарт SQL — работает везде!

NVL2 — когда нужна условная логика на основе NULL/не-NULL (Oracle)

Вывод

Все три функции решают проблему NULL, но по-разному:
• NVL — простая, но ограниченная
• COALESCE — гибкая и эффективная
• NVL2 — для условных сценариев

Какую функцию вы используете чаще? Делитесь опытом в чате! 💬

Всем продуктивной разработки и минимум NULL-проблем! 🚀

#oracle #nvl #coalesce #nvl2 #sql #null #базыданных #разработка #plsql

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

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL" 🔥

📱 Facebook 📱 YouTube 📱 ВКонтакте 📱 LinkedIn 📱 Threads RUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
👍199
This media is not supported in your browser
VIEW IN TELEGRAM
💥 Если вы пропустите этот вебинар — потом не удивляйтесь, что вас обходят по зарплате

2 декабря в 19:00 МСК, как вы помните, я проведу бесплатный вебинар, где мы разберем целых 3 способа, как за 5 минут найти медленные запросы в Oracle и исправить их за час 🔥

И это не просто еще один «вебчик». Это разбор того, что отделяет специалистов, которых ценят, от тех, кого можно заменить!

Это будет просто пушка, над вебинаром трудится целая команда уже несколько недель 💥

Что будет? 👇🏻

Я покажу, как действовать, когда на проде всё встало, бизнес орёт, а DBA ищет виноватого.

— 3 рабочих способа найти медленный запрос буквально за МИНУТЫ
— разбор реальных кейсов: когда тормозит клиентская регистрация, nightly job или кредитный процессинг
— МОК-собес в прямом эфире: как отвечать на фразу «у вас база тормозит, каковы ваши действия?».
— чек-лист и дорожная карта роста для тех, кто хочет не просто решать задачи, а расти до 250–300К+ и выше.

И, что самое главное, в этот раз вас ждет еще больше практики 🔥

🚀 Почему вы обязаны быть?

Потому что рынок сейчас жесткий. Там не платят за то, что вы «знаете SQL».
Платят за то, что вы спасаете ситуацию, когда все остальные теряются.

На собесах HR не ищет «идеальных». Он ищет тех, кто думает и делает. И если вы на вопрос «что будете делать, если тормозит база?» начинаете "мяться" — вы уже проиграли.

💡 Что вы получите с этого веба?

Алгоритм действий при падении производительности;
Понимание, как диагностировать и доказывать, а не гадать;
Конкретные инструменты и шаги, которые завтра можно применить в работе;
И самое главное — уверенность, что вы контролируете систему, а не наоборот;

📅 Дата: 2 декабря
🕖 Время: 19:00 МСК
💰 Формат: бесплатно

Поэтому ставим себе напоминания

С вами был Денис Кивилев! Всем продуктивного дня 😉

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

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

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"

📱 Facebook 📱 YouTube 📱 ВКонтакте 📱 LinkedIn 📱 Threads RUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥74
This media is not supported in your browser
VIEW IN TELEGRAM
🎬 Закулисье подготовки: репетиция длиной в 3 часа

Сегодня у нас была полная репетиция вебинара. Да, прям как в настоящем эфире – сидели три часа без остановки, с примерами, демо, кейсами, алгоритмами и мок-собесом 🔥 Мы с командой прогоняем всё заранее: сценарии, кейсы, логику, переходы, тайминг, демонстрации. Это не «сел, включил Zoom и рассказал». Это полноценная отработка каждого шага – так, чтобы 2 декабря всё прошло максимально чётко, без пауз и без хаоса.

Почему мы устраиваем такие прогоны?

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

На видео вы можете видеть небольшой кусочек с репетиции 👆

Чтобы вы заранее понимали масштаб, напоминаю, что будет на вебинаре:

🔹 3 рабочих способа найти медленный запрос в Oracle за минуты — на реальных боевых задачах: ночной джоб, долгая регистрация клиента, «поехавшие» кредиты.

🔹 Mock-собеседование в прямом эфире. Добровольцы отвечают – вместе разбираем ошибки и правильную последовательность действий на главный вопрос: «База тормозит. Ваши действия?»

🔹 Разбор того, какие вопросы по оптимизации задают в ТОП-компаниях. Чтобы вы знали, чего ждать и как отвечать уверенно)

🔹 Алгоритм действий при проблемах с производительностью – на кейсе с тормозами при проверке платежа. Покажу, что делать, если «всё стало медленным».

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

И это только основа) Практики будет ещё больше, чем в прошлый раз 🔥 А информации – столько, что её легко можно собрать в отдельную программу… но вы получите всё бесплатно.

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

Уже 2 декабря в 19.00 по МСК – ставьте напоминания.

Ссылочку на эфир выложу за несколько минут до начала.
Готовьтесь: будет максимально плотный, практический и полезный веб 🔥

С вами был Денис Кивилёв.
До встречи на эфире! 🚀

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

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

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"

📱 Facebook 📱 YouTube 📱 ВКонтакте 📱 LinkedIn 📱 Threads RUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥82
Генерация значений для Primary key

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

В нашем канале разного уровня специалисты, этот пост будет полезен Junior-разработчикам.

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

Способ 1. Последовательности (SEQUENCE)

Классический и самый распространённый подход. Создаёте последовательность и получаете следующее значение через NEXTVAL:

CREATE SEQUENCE emp_seq START WITH 1 INCREMENT BY 1;

INSERT INTO employees (emp_id, name)
VALUES (emp_seq.NEXTVAL, 'Иван Иванов');


Плюсы:
🔹Простота и надёжность
🔹Независимость от транзакций — значение резервируется сразу
🔹Можно настроить кэширование для повышения производительности (CACHE 20)
🔹Работает во всех версиях Oracle

Минусы:
🔹Возможны пропуски в нумерации при откатах транзакций или сбоях
🔹Требует явного указания в INSERT или триггера
🔹При использовании CACHE возможны большие разрывы после перезапуска БД

Способ 2. Identity-столбцы (с Oracle 12c)

Oracle 12c принёс долгожданную возможность автоинкремента прямо в определении столбца:

CREATE TABLE employees (
emp_id NUMBER GENERATED ALWAYS AS IDENTITY,
name VARCHAR2(100)
);

INSERT INTO employees (name) VALUES ('Пётр Петров');


Плюсы:
🔹Максимальная простота — не нужно помнить про последовательности
🔹Под капотом всё равно используется SEQUENCE, но Oracle управляет им автоматически
🔹Чище код INSERT-запросов
🔹Можно указать GENERATED BY DEFAULT для возможности явной вставки значений

Минусы:
🔹Доступно только с Oracle 12c и выше
🔹Меньше контроля над последовательностью (хотя можно изменить параметры через ALTER TABLE)

Способ 3. UUID/GUID

Для распределённых систем или когда нужна абсолютная уникальность без координации между узлами:

CREATE TABLE orders (
order_id RAW(16) DEFAULT SYS_GUID() PRIMARY KEY,
order_date DATE
);


Плюсы:
🔹Гарантированная уникальность даже в распределённых системах
🔹Не требует синхронизации между узлами
🔹Нет проблем с конкурентным доступом

Минусы:
🔹Занимает больше места (16 байт против 4-8 для NUMBER)
🔹Хуже производительность индексов из-за случайности значений
🔹Неудобно для человека — не читаемы

Способ 4. Триггеры + последовательности

Старый добрый способ для версий до 12c:

CREATE TRIGGER emp_bi
BEFORE INSERT ON employees
FOR EACH ROW
BEGIN
IF :NEW.emp_id IS NULL THEN
:NEW.emp_id := emp_seq.NEXTVAL;
END IF;
END;


Плюсы:
🔹Работает в любой версии Oracle
🔹Автоматическое заполнение при INSERT
🔹Можно добавить дополнительную логику

Минусы:
🔹Дополнительный объект для управления
🔹Небольшой оверхед на выполнение триггера
🔹Усложняет отладку

Выводы

Для новых проектов на Oracle 12c+ используйте Identity-столбцы — это современно, просто и эффективно. Для распределённых систем рассмотрите SYS_GUID(). Классические последовательности остаются надёжным выбором для любых версий Oracle.

А какой способ используете вы? Сталкивались ли с проблемами при генерации PK в высоконагруженных системах? Делитесь опытом в чатике 💬

С вами был Денис. Всем продуктивного дня и успехов в разработке! ☀️

#oracle #primarykey #sequence #identity #базыданных #проектирование #sql

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

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL" 🔥

📱 Facebook 📱 YouTube 📱 ВКонтакте 📱 LinkedIn 📱 Threads RUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍6🔥3🆒2
⚙️ Что будет на вебинаре 2 декабря и почему пропустить его – ошибка?

2 декабря в 19:00 МСК, как вы помните, я проведу бесплатный вебинар:
«3 способа за 5 минут найти медленные запросы в Oracle и справиться с ними за час».

Многие из вас сталкивались с одной и той же болью:

👉 база тормозит,
👉 все кивают на DBA,
👉 а вы сидите и не понимаете, с чего вообще начать.
Так вот — на этом вебинаре мы это разложим по шагам.

Что конкретно будет?

🔹Реальные ситуации из продакшена — где, как и почему запрос начинает тупить.
🔹 Инструменты, которые позволяют найти узкое место буквально за 5 минут.
🔹 Разбор живых примеров: ночной джоб, регистрация клиента, кредиты — покажу, где именно ошибка, и как я это вычисляю.
🔹 МОК-собес в прямом эфире — вы услышите, как отвечать, когда на интервью спрашивают: “У вас база тормозит. Ваши действия?”
Покажу структуру ответа, после которой дают оффер, а не «мы вам перезвоним».
🔹 В конце — дорожная карта, как прокачать оптимизацию дальше, чтобы расти до вилок 250–300К+ 💰

Почему вам нужно быть?

✔️90% разработчиков теряются, когда код начинает тормозить.
✔️70% собеседований срываются на базовом вопросе «что будете делать?».
✔️100% разработчиков думают, что знают, пока не видят реальный кейс вживую.

💰 На вебинаре вы поймёте, где зарыты реальные деньги, почему знание оптимизации = повышение, и как перестать «чинить наугад».

Oracle dev, Java dev, аналитики, DBA — все, кто хочет думать как оптимизатор, это точно для вас! Ну, если, конечно, вы готовы реально прокачиваться в навыках)

2 декабря 19.00 по МСК.
Ставим напоминания 😉

Это тот случай, когда 2 часа = +100К к вашим скиллам (и зарплате).

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

С вами был Денис Кивилев. Всем карьерного роста 🚀

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

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

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"

📱 Facebook 📱 YouTube 📱 ВКонтакте 📱 LinkedIn 📱 Threads RUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM