This media is not supported in your browser
VIEW IN TELEGRAM
Хинтовать или не хинтовать? Вот в чём вопрос!
Друзья, всем привет ☀️
Если вы когда-либо занимались оптимизацией запросов — наверняка рано или поздно вставал вопрос: использовать хинты или нет?
Интересно ваше мнение. Применяете ли вы хинты в проектах? При каких условиях? А может, у вас их вообще запрещено использовать?
👉 Поделиться мнением в чатике
Кстати, это видео — с практики пятого потока курса «Оптимизация Oracle SQL».
Тема оптимизации довольно сложная и без дополнительных встреч, было бы тяжело.
Поэтому каждую неделю, ребята собираются на 1–1.5 часа и обсуждают пройденный материал, делятся мнениями, задают вопросы.
Обычно минут 20 уделяем на "пробежаться по прослушанной лекции", далее практические моменты и Q/A.
Полную версию видео с ответом на вопрос про хинты опубликуем уже в четверг! 🎓
Всем хорошей рабочей недели! 🔥
#оптимизация #hints #Denis_Kivilev
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Друзья, всем привет ☀️
Если вы когда-либо занимались оптимизацией запросов — наверняка рано или поздно вставал вопрос: использовать хинты или нет?
Интересно ваше мнение. Применяете ли вы хинты в проектах? При каких условиях? А может, у вас их вообще запрещено использовать?
👉 Поделиться мнением в чатике
Кстати, это видео — с практики пятого потока курса «Оптимизация Oracle SQL».
Тема оптимизации довольно сложная и без дополнительных встреч, было бы тяжело.
Поэтому каждую неделю, ребята собираются на 1–1.5 часа и обсуждают пройденный материал, делятся мнениями, задают вопросы.
Обычно минут 20 уделяем на "пробежаться по прослушанной лекции", далее практические моменты и Q/A.
Полную версию видео с ответом на вопрос про хинты опубликуем уже в четверг! 🎓
Всем хорошей рабочей недели! 🔥
#оптимизация #hints #Denis_Kivilev
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Пост 1/5. Про вакансию Oracle/Java Developer
Друзья, всем привет!
Решил поделиться с вами серией постов про позицию Oracle/Java Developer на проект распила Ораклового-монолита.
Итак. Предновогодняя суета, я весь в мыле и тут выплывает этотлебедь вакансия.
Начал общение с рекрутёром. В первых же сообщениях, HR кидает ссылку на видос - презентацию ценностей/политики компании.
💬 "Денис, посмотрите пожалуйста"
Да, не вопрос. Чем там могут удивить... Ан, нет - я ошибся 😄
Некоторые перлы из видео:
• «нам не по хуй»
• «мы делаем так, чтобы не хотелось доебаться»
Полный видос — по ссылке выше.
💬 "Скажите, пжл, вам подходит политика?"
Ну что ж… — подумал я. Такое не каждый день увидишь. Стало интересно: к чему это всё может привести? 🤔
Написал, что мне ОК — и марлезонский балет начался 🕺🏻
Вопросы залу
Как вы думаете, какая у такой компании/вакансии может быть зарплатная вилка?
После увиденного - пошли бы на собес? Готовы работать в такой культуре?
Поделитесь в Чатике 💭
Если интересны подробности вакансии, этапы собесов и т.п. ставь любую реакцию 🐳
#Denis_Kivilev #oracle #java #собседования
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Друзья, всем привет!
Решил поделиться с вами серией постов про позицию Oracle/Java Developer на проект распила Ораклового-монолита.
Итак. Предновогодняя суета, я весь в мыле и тут выплывает этот
Начал общение с рекрутёром. В первых же сообщениях, HR кидает ссылку на видос - презентацию ценностей/политики компании.
💬 "Денис, посмотрите пожалуйста"
Да, не вопрос. Чем там могут удивить... Ан, нет - я ошибся 😄
Некоторые перлы из видео:
• «нам не по хуй»
• «мы делаем так, чтобы не хотелось доебаться»
Полный видос — по ссылке выше.
💬 "Скажите, пжл, вам подходит политика?"
Ну что ж… — подумал я. Такое не каждый день увидишь. Стало интересно: к чему это всё может привести? 🤔
Написал, что мне ОК — и марлезонский балет начался 🕺🏻
Вопросы залу
Как вы думаете, какая у такой компании/вакансии может быть зарплатная вилка?
После увиденного - пошли бы на собес? Готовы работать в такой культуре?
Поделитесь в Чатике 💭
Если интересны подробности вакансии, этапы собесов и т.п. ставь любую реакцию 🐳
#Denis_Kivilev #oracle #java #собседования
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
⚙️Одна из ТОП-болей Oracle-разработчика
Друзья, привет! Сохраните пост, чтобы показать тим-лиду и закрыть вечные споры на ревью 😉
БОЛЬ: Отсутствие единой системы стандартов форматирования кода в ORACLE❌
Как происходит в реальной жизни?
Приходишь в новый проект, открываешь код и получаешь мешанину из запросов.
У одного всё ЗАГЛАВНЫМИ, у другого строчными, третий чередует регистр через слово. Кто-то называет таблицы во множественном числе «Users», кто-то с префиксом tab_ - "tab_users", а где-то всплывает «user_tbl». Запросы форматируются как попало.
Каждый уверен: «Я так привык — значит, правильно». Единого документа нет, ревью превращается в мини-баттл, новичок тратит месяц, чтобы только «раскусить» локальные правила.
❌ СУТЬ ПРОБЛЕМЫ
У Oracle по-прежнему нет официального «ГОСТа» (и не будет) на оформление PL/SQL: нет аналога PEP-8 как в Python или Google-кодстайла как для Java. Всё держится на устных договорённостях и личных привычках. Каждая компания — маленькое «княжество» со своим письмом.
Итог хаоса
• читаемость падает;
• ревью затягиваются;
• баги всплывают на проде, потому что «не заметил в каше»;
• время онбординга увеличивается и т.п.
📉 К чему это приводит
Представьте, что всю жизнь ездили с левым рулём, а потом внезапно пересели на правый.
Первые дни — скорость падает, концентрация уходит в ноль, ошибок становится больше.
То же и с кодом: каждый новый проект — переучивание с нуля.
А бизнес-дедлайны никто не отменял: сроки горят, деньги утекают, команда нервничает.
🛠 Как можно это решить (и заработать очки в карму)🔥
1️⃣ Соберите мини-круг: пару тимлидов + самых заинтересованных разработчиков.
2️⃣ Сделайте короткий чек-лист с описанием:
– единый регистр для ключевых слов и идентификаторов;
– общие префиксы/постфиксы для таблиц, индексов и других объектов;
– правила именования пакетов, процедур и др.;
– правила написания комментариев и многое другое;
желательно, чтобы правила форматирования можно было задать в IDE.
3️⃣ Автоматизируйте проверку: поставьте любой SQL-formatter/linter в pre-commit.
4️⃣ Зашейте правило в CI: пока линтер красный, код не пройдёт.
5️⃣ Загрузите документ в Confluence и прикрепите ссылку в шаблон PR/MR.
6️⃣ Проведите мит-ап для разработчиков: объясните «зачем» это нужно.
⚠️ Важный момент: переформатирование существующей кодовой базы может выполняться по-разному. Команда выбирает, как лучше сделать.
💡 Фишка для проактивных
Видишь хаос? Предложи драфт-стандарт сам. Так ты:
• ускоряешь ревью;
• качаешь личный бренд «не ноет — решает»;
• чаще всего получаешь плюсик к росту до тимлида.
⚖️ Итог
Кодстайл — это не про «перфекционизм ради перфекционизма».
Это договорённость, которая превращает личные заготовки в командный актив.
Чем раньше вы договоритесь, тем меньше боли, нервов и денег потеряете.
📌 Сохрани себе и отправь тимлиду. Пусть стандарты работают, а люди пишут бизнес-логику, а не расставляют пробелы вручную.
А какие стандарты у вас были при смене работы, пишите в Чатик 💬 посмотрим, что за дичь есть на просторах.
Если пост наберет 100 🔥 расскажу как мы в Qiwi-решали эту проблему c автоматической проверкой PL/SQL-кода в CI. Проблема не простая, в виду того, что разработчики пользовались аж четырьмя разными IDE.
#Oracle #PLSQL #кодстайл #teamlead #Denis_Kivilev
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Друзья, привет! Сохраните пост, чтобы показать тим-лиду и закрыть вечные споры на ревью 😉
БОЛЬ: Отсутствие единой системы стандартов форматирования кода в ORACLE❌
Как происходит в реальной жизни?
Приходишь в новый проект, открываешь код и получаешь мешанину из запросов.
У одного всё ЗАГЛАВНЫМИ, у другого строчными, третий чередует регистр через слово. Кто-то называет таблицы во множественном числе «Users», кто-то с префиксом tab_ - "tab_users", а где-то всплывает «user_tbl». Запросы форматируются как попало.
Каждый уверен: «Я так привык — значит, правильно». Единого документа нет, ревью превращается в мини-баттл, новичок тратит месяц, чтобы только «раскусить» локальные правила.
❌ СУТЬ ПРОБЛЕМЫ
У Oracle по-прежнему нет официального «ГОСТа» (и не будет) на оформление PL/SQL: нет аналога PEP-8 как в Python или Google-кодстайла как для Java. Всё держится на устных договорённостях и личных привычках. Каждая компания — маленькое «княжество» со своим письмом.
Итог хаоса
• читаемость падает;
• ревью затягиваются;
• баги всплывают на проде, потому что «не заметил в каше»;
• время онбординга увеличивается и т.п.
📉 К чему это приводит
Представьте, что всю жизнь ездили с левым рулём, а потом внезапно пересели на правый.
Первые дни — скорость падает, концентрация уходит в ноль, ошибок становится больше.
То же и с кодом: каждый новый проект — переучивание с нуля.
А бизнес-дедлайны никто не отменял: сроки горят, деньги утекают, команда нервничает.
🛠 Как можно это решить (и заработать очки в карму)🔥
1️⃣ Соберите мини-круг: пару тимлидов + самых заинтересованных разработчиков.
2️⃣ Сделайте короткий чек-лист с описанием:
– единый регистр для ключевых слов и идентификаторов;
– общие префиксы/постфиксы для таблиц, индексов и других объектов;
– правила именования пакетов, процедур и др.;
– правила написания комментариев и многое другое;
желательно, чтобы правила форматирования можно было задать в IDE.
3️⃣ Автоматизируйте проверку: поставьте любой SQL-formatter/linter в pre-commit.
4️⃣ Зашейте правило в CI: пока линтер красный, код не пройдёт.
5️⃣ Загрузите документ в Confluence и прикрепите ссылку в шаблон PR/MR.
6️⃣ Проведите мит-ап для разработчиков: объясните «зачем» это нужно.
⚠️ Важный момент: переформатирование существующей кодовой базы может выполняться по-разному. Команда выбирает, как лучше сделать.
💡 Фишка для проактивных
Видишь хаос? Предложи драфт-стандарт сам. Так ты:
• ускоряешь ревью;
• качаешь личный бренд «не ноет — решает»;
• чаще всего получаешь плюсик к росту до тимлида.
⚖️ Итог
Кодстайл — это не про «перфекционизм ради перфекционизма».
Это договорённость, которая превращает личные заготовки в командный актив.
Чем раньше вы договоритесь, тем меньше боли, нервов и денег потеряете.
📌 Сохрани себе и отправь тимлиду. Пусть стандарты работают, а люди пишут бизнес-логику, а не расставляют пробелы вручную.
А какие стандарты у вас были при смене работы, пишите в Чатик 💬 посмотрим, что за дичь есть на просторах.
Если пост наберет 100 🔥 расскажу как мы в Qiwi-решали эту проблему c автоматической проверкой PL/SQL-кода в CI. Проблема не простая, в виду того, что разработчики пользовались аж четырьмя разными IDE.
#Oracle #PLSQL #кодстайл #teamlead #Denis_Kivilev
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
This media is not supported in your browser
VIEW IN TELEGRAM
Хинтовать или не хинтовать? Пусть решает команда
Я встречался с разными подходами и мнениями.
1️⃣ Например, в некоторых командах Qiwi было принято "не хинтовать". Поддерживай статистику в актуальном состоянии - тогда Oracle сам будет рулить с использованием CBO (cost based optimizer), и будет тебе счастье.
Вплоть до минуса на код-ревью. Система — OLTP.
К слову сказать, я не сильно полагаюсь на CBO, и если ты понимаешь логику работы запроса - то почему бы его не стабилизировать?
И в нашей команде хинтование я поощрял.
2️⃣ Например, в "IT Магнит" мы хинтовали почти все запросы. Это была специфика Big Data в DWH: параллельные запросы, временные таблицы… Очень часто CBO ошибался. Там без хинтов никак не обойтись.
3️⃣ Ещё один пример — из моей же практики. Пилили коммерческое ПО для банков. Сколько тогда поели г...на из-за CBO у заказчиков.
К слову сказать, пилить ПО на заказ и поставлять его в разные организации — это задачка на порядок сложнее, чем когда система твоя, до которой ты можешь легко дотянуться.
Например, у тебя 10 заказчиков, и у всех у них есть какие-нибудь свои прикольчики.
Допустим, админы в банке решили не собирать статистику. Да, такое бывает. Ну и какой, на фиг, CBO поможет с запросами при такой постановке?
Поев немало... проблем, мы коллегиально решили хинтовать максимум запросов.
Если стоит выбор между «срочно решаем проблему на ПРОДе у заказчика» и «заранее хинтануть запрос и не иметь геморроя» — я выбираю второе 😊
Подводя итог
Универсального ответа нет. Каждый случай индивидуален по-своему. Решайте командой.
Каким принципом руководствуетесь вы? Что думаете? Обсудить в чатике 💬
Кстати, это видео — с практики пятого потока курса «Оптимизация Oracle SQL» ❤️
#Denis_Kivillev #оптимизация #hints
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Я встречался с разными подходами и мнениями.
1️⃣ Например, в некоторых командах Qiwi было принято "не хинтовать". Поддерживай статистику в актуальном состоянии - тогда Oracle сам будет рулить с использованием CBO (cost based optimizer), и будет тебе счастье.
Вплоть до минуса на код-ревью. Система — OLTP.
К слову сказать, я не сильно полагаюсь на CBO, и если ты понимаешь логику работы запроса - то почему бы его не стабилизировать?
И в нашей команде хинтование я поощрял.
2️⃣ Например, в "IT Магнит" мы хинтовали почти все запросы. Это была специфика Big Data в DWH: параллельные запросы, временные таблицы… Очень часто CBO ошибался. Там без хинтов никак не обойтись.
3️⃣ Ещё один пример — из моей же практики. Пилили коммерческое ПО для банков. Сколько тогда поели г...на из-за CBO у заказчиков.
К слову сказать, пилить ПО на заказ и поставлять его в разные организации — это задачка на порядок сложнее, чем когда система твоя, до которой ты можешь легко дотянуться.
Например, у тебя 10 заказчиков, и у всех у них есть какие-нибудь свои прикольчики.
Допустим, админы в банке решили не собирать статистику. Да, такое бывает. Ну и какой, на фиг, CBO поможет с запросами при такой постановке?
Поев немало... проблем, мы коллегиально решили хинтовать максимум запросов.
Если стоит выбор между «срочно решаем проблему на ПРОДе у заказчика» и «заранее хинтануть запрос и не иметь геморроя» — я выбираю второе 😊
Подводя итог
Универсального ответа нет. Каждый случай индивидуален по-своему. Решайте командой.
Каким принципом руководствуетесь вы? Что думаете? Обсудить в чатике 💬
Кстати, это видео — с практики пятого потока курса «Оптимизация Oracle SQL» ❤️
#Denis_Kivillev #оптимизация #hints
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Пост 2/5. Про вакансию Oracle/Java Developer
Коллеги, всем привет ☀️
Вижу пост с загадочной конторой с матами вам зашел 😄
Продолжаю свой рассказ.
Название этой компании - GehtSoft
Корни из РФ, но по факту, уже американская, с народом со всего бывшего СССР.
Заказчики так же разные. Конкретно этот проект - заказчик из USA.
Охрененно здоровая портянка с ➡️ условиями компании ⬅️
Да, некоторые пункты, прямо скажем, вызывают удивление.
Ну да ладно, в "чужой монастырь... " и "не нравится, не откликайся".
Описание вакансии
Выше на скринах ⬆️
Суть проекта
Выполнять доработки в текущий продукт и потихоньку распиливать оракловый монолит с выносом логики в Java + PostgreSQL.
В целом, довольно интересно, с учётом удалённого характера работы и з/п в $.
З/п отправляют на какой-нибудь счёт ИП, например, в Грузии.
И плюс и минус - поддержка текущего решения. Хоть и заявлялось, что проект годика на полтора - верилось с трудом 😊 С другой стороны, как ты будешь распиливать, если не понимаешь, что происходит в продукте 🤷🏻♂️
Этапы собеседований
1️⃣ Soft-skills интервью с Scrum-мастером (что блин ?!!!) - 1 час
2️⃣ Техническое интервью - 1-1.5 часа.
3️⃣ Опять легкое общение с Scrum-мастером (а-ля финиш) - 15 мин.
4️⃣ Оффер
Вроде не выглядит не реально 🤷🏻♂️
Однако, софтовое интервью меня слегка удивило, но об этом я расскажу в следующем посте.
Вилка вакансии
Нижняя граница - 5000$
Верхняя граница -xxxx$
Как считаете какая может быть верхняя граница у такой вакансии? Пишите ваши предсказания в чатик🔮
Всем хороших выходных 😉
#Denis_Kivilev #oracle #java #собседования
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Коллеги, всем привет ☀️
Вижу пост с загадочной конторой с матами вам зашел 😄
Продолжаю свой рассказ.
Название этой компании - GehtSoft
Корни из РФ, но по факту, уже американская, с народом со всего бывшего СССР.
Заказчики так же разные. Конкретно этот проект - заказчик из USA.
Охрененно здоровая портянка с ➡️ условиями компании ⬅️
Да, некоторые пункты, прямо скажем, вызывают удивление.
Ну да ладно, в "чужой монастырь... " и "не нравится, не откликайся".
Описание вакансии
Выше на скринах ⬆️
Суть проекта
Выполнять доработки в текущий продукт и потихоньку распиливать оракловый монолит с выносом логики в Java + PostgreSQL.
В целом, довольно интересно, с учётом удалённого характера работы и з/п в $.
З/п отправляют на какой-нибудь счёт ИП, например, в Грузии.
И плюс и минус - поддержка текущего решения. Хоть и заявлялось, что проект годика на полтора - верилось с трудом 😊 С другой стороны, как ты будешь распиливать, если не понимаешь, что происходит в продукте 🤷🏻♂️
Этапы собеседований
1️⃣ Soft-skills интервью с Scrum-мастером (что блин ?!!!) - 1 час
2️⃣ Техническое интервью - 1-1.5 часа.
3️⃣ Опять легкое общение с Scrum-мастером (а-ля финиш) - 15 мин.
4️⃣ Оффер
Вроде не выглядит не реально 🤷🏻♂️
Однако, софтовое интервью меня слегка удивило, но об этом я расскажу в следующем посте.
Вилка вакансии
Нижняя граница - 5000$
Верхняя граница -
Как считаете какая может быть верхняя граница у такой вакансии? Пишите ваши предсказания в чатик
Всем хороших выходных 😉
#Denis_Kivilev #oracle #java #собседования
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Видео с практики 5 потока по оптимизации Oracle 🎬
Друзья, всем привет! 👋🏻
Прошел месяц с завершения 5 потока по оптимизации, и мы решили немного вспомнить, как это было. На следующей неделе подведем небольшие итоги обучения, а пока публикуем отрывок одной из наших регулярных встреч.
Немного контекста:
на этом видео мы обсуждаем, как применять полученные навыки на реальных задачах.
А потом ребята рассказывают, чего им удалось добиться на работе за минувшую неделю.
🔥 Спойлер:этот блок в итоге стал одним из наших любимых, каждую неделю коллеги "хвастались", как им удалось ускорить критичный процесс или найти причину внезапных тормозов.
🍒 Вишенка на торте — это то, как вчерашний студент буквально после пары занятий не побоялся оптимизировать запрос из 150 операций в плане.
💬 Поверьте, вы тоже так сможете.
Даже если сейчас не знаете, с какой стороны к этому подступиться. 🤷🏼♂️
⏳ Через полторы недели мы выложим анкету предзаписи. Кто оставит заявку первым — получит ранние цены, приоритет на место в группе и бонусы. Количество слотов традиционно ограничено, поэтому рекомендуем заранее поставить напоминалку и следить за каналом.
Если чувствуете, что пора ускорить запросы и зарплату — держите руку на пульсе. 😉 До встречи в новом потоке!
#обучение #отзывы #оптимизация #oracle #backendpro #Pavel_Dolganov
Канал Oracle Developer | Чатик💬
Мини-курс Оптимизация: Быстрый старт 🚀
Друзья, всем привет! 👋🏻
Прошел месяц с завершения 5 потока по оптимизации, и мы решили немного вспомнить, как это было. На следующей неделе подведем небольшие итоги обучения, а пока публикуем отрывок одной из наших регулярных встреч.
Немного контекста:
на этом видео мы обсуждаем, как применять полученные навыки на реальных задачах.
А потом ребята рассказывают, чего им удалось добиться на работе за минувшую неделю.
🔥 Спойлер:
💬 Поверьте, вы тоже так сможете.
Даже если сейчас не знаете, с какой стороны к этому подступиться. 🤷🏼♂️
⏳ Через полторы недели мы выложим анкету предзаписи. Кто оставит заявку первым — получит ранние цены, приоритет на место в группе и бонусы. Количество слотов традиционно ограничено, поэтому рекомендуем заранее поставить напоминалку и следить за каналом.
Если чувствуете, что пора ускорить запросы и зарплату — держите руку на пульсе. 😉 До встречи в новом потоке!
#обучение #отзывы #оптимизация #oracle #backendpro #Pavel_Dolganov
Канал Oracle Developer | Чатик
Мини-курс Оптимизация: Быстрый старт 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Pavel V
Таблица sales_data — 50 млн записей.
Колонки:
a) region — 10 уникальных значений; b) product_category — 12 типов; c) sales_channel — 3 канала продаж; d) amount — сумма покупки Какая стратегия индексирования даст наилучшую производительность?
Колонки:
a) region — 10 уникальных значений; b) product_category — 12 типов; c) sales_channel — 3 канала продаж; d) amount — сумма покупки Какая стратегия индексирования даст наилучшую производительность?
Anonymous Quiz
45%
Один составной B-tree индекс (region, product_category, sales_channel)
35%
Bitmap-индексы на каждую из трех колонок
7%
Bitmap только на sales_channel
13%
Индексы не нужны — всё читаем full scan’ом
Forwarded from Pavel V
Таблица customer_surveys содержит 2 млн строк.
Колонки:
a) age_group (группы по возрасту: 10-19, 20-29, ..., 60+); b) income_level (5 категорий); c) country_code (около 200 стран), survey_text (CLOB). Данные не обновляются. Какой индекс будет эффективен?
Колонки:
a) age_group (группы по возрасту: 10-19, 20-29, ..., 60+); b) income_level (5 категорий); c) country_code (около 200 стран), survey_text (CLOB). Данные не обновляются. Какой индекс будет эффективен?
Anonymous Quiz
43%
B-tree по income_level и country_code
48%
Bitmap по income_level, country_code и age_group
1%
Bitmap только по survey_text
8%
Индекс не нужен, хватит full scan
Forwarded from Pavel V
Таблица web_events — 100 млн строк.
Колонки:
a) device_type — 'Mobile', 'Tablet', 'Desktop'; b) browser — 8 типов; c) country_code — 50 значений; d) event_time — временная метка; e) event_type — 'CLICK', 'VIEW', 'PURCHASE' Что будет наиболее эффективно?
Колонки:
a) device_type — 'Mobile', 'Tablet', 'Desktop'; b) browser — 8 типов; c) country_code — 50 значений; d) event_time — временная метка; e) event_type — 'CLICK', 'VIEW', 'PURCHASE' Что будет наиболее эффективно?
Anonymous Quiz
26%
Один составной B-tree (device_type, browser, country_code, event_type)
60%
Bitmap по device_type, browser, country_code, event_type
11%
Только индекс по event_time
3%
Не индексировать — таблица и так летает
Bitmap в Oracle
Друзья, всем привет! 👋
Сегодня мы предлагаем посмотреть на запросы, где вам могут пригодиться bitmap-индексы.
Что это такое❓
Когда на собесах задают вопросы про индексы, зачастую под ними понимаются обычные b-деревья. И если в вашей практике не было DWH-проектов, вы можете удивиться, насколько эти типы индексов отличаются друг от друга.
B-tree:
🔸 эффективен при высокой кардинальности
🔸 хорош при частых DML
🔸 оптимален в OLTP-запросах
🔸 доступен в любой редакции Oracle
Bitmap:
🔸 эффективен при низкой кардинальности
🔸 может залочить таблицу даже при изменении 1 записи
🔸 оптимален в DWH-запросах
🔸 доступен не во всех редакциях Oracle
Битовые операции
В Oracle есть специальные операции (которые можно увидеть в плане запроса) :
Это внутренние операции, которые Oracle применяет для комбинирования нескольких bitmap-индексов:
* BITMAP AND — пересечение (как
* BITMAP OR — объединение (как
💡 Они позволяют строить результат до обращения к таблице, опираясь только на битовые карты.
Это невероятно ускоряет сложные фильтрации, особенно в аналитических системах, где много колонок с низкой кардинальностью и тяжелых
🎙Если вдруг вы впервые слышите про
Там мы разберём:
✅ Как Oracle комбинирует индексы
✅ Как это всё увидеть в плане запроса
✅ Где bitmap-индексы действительно полезны
✅ И когда они превращаются в тормоз ⛔️
Следите за новостями — скоро будет 🔥
#оптимизация #bitmap #курс #oracle #индексы #oracle #Pavel_Dolganov
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Друзья, всем привет! 👋
Сегодня мы предлагаем посмотреть на запросы, где вам могут пригодиться bitmap-индексы.
Что это такое
Когда на собесах задают вопросы про индексы, зачастую под ними понимаются обычные b-деревья. И если в вашей практике не было DWH-проектов, вы можете удивиться, насколько эти типы индексов отличаются друг от друга.
B-tree:
🔸 эффективен при высокой кардинальности
🔸 хорош при частых DML
🔸 оптимален в OLTP-запросах
🔸 доступен в любой редакции Oracle
Bitmap:
🔸 эффективен при низкой кардинальности
🔸 может залочить таблицу даже при изменении 1 записи
🔸 оптимален в DWH-запросах
🔸 доступен не во всех редакциях Oracle
Битовые операции
В Oracle есть специальные операции (которые можно увидеть в плане запроса) :
BITMAP AND
и BITMAP OR
. Это внутренние операции, которые Oracle применяет для комбинирования нескольких bitmap-индексов:
* BITMAP AND — пересечение (как
WHERE a=… AND b=…
)* BITMAP OR — объединение (как
WHERE a=… OR b=…
)💡 Они позволяют строить результат до обращения к таблице, опираясь только на битовые карты.
Это невероятно ускоряет сложные фильтрации, особенно в аналитических системах, где много колонок с низкой кардинальностью и тяжелых
GROUP BY
.🎙Если вдруг вы впервые слышите про
BITMAP AND
и BITMAP OR
, или просто хотите понять, как и когда Oracle их применяет, то уже совсем скоро мы откроем анкету предзаписи на 6-й поток по оптимизации запросов 🎓Там мы разберём:
✅ Как Oracle комбинирует индексы
✅ Как это всё увидеть в плане запроса
✅ Где bitmap-индексы действительно полезны
✅ И когда они превращаются в тормоз ⛔️
Следите за новостями — скоро будет 🔥
#оптимизация #bitmap #курс #oracle #индексы #oracle #Pavel_Dolganov
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Пост 3/5. Про вакансию Oracle/Java Developer. Soft-интервью
Друзья, всем привет!
Наш марлезонский балет продолжается. Этот пост - про софтовую часть интервью.
Но! прежде всего, отвечу, что верхняя граница позиции была6500 💲
Итак, софтовую часть обычно проводит HR. В случае с GehtSoft это была Scrum-мастерица 😱
Я всё понимаю, но почему Scrum-мастер?!
Делаю поверхностный вывод: просто некому 🤷🏻♂️
Некоторые технические специалисты до сих пор думают, что soft skills - это про какие-то непонятные «западные говно-практики» и т.п.
Так думать, конечно, можно, но реальность изменилась 🤷🏻♂️ Уже недостаточно быть просто хорошим технарём ❌
Вот пример из текущего собеса: если ты не пройдёшь софт-часть со Scrum-мастерицей, тебя просто не допустят до тел технарей компании. И это факт.
Поэтому важно уметь проходить такие этапы - видишь ты в этом ценность или нет.
Хочешь получить работу? Тогда будь любезен - отвечай правильно.
Да, возможно, в душе ты не согласен с тем, что говорит твой рот, но у тебя задача - получить позицию ✅
Например, когда я искал валютную удаленку мы с Любой Прохоровой (карьерный консультант) провели целое занятие на тему того, как правильно проходить каверзные вопросики по софтам.
С недавних пор, наши студенты могут взять дополнительную опцию по проработке карьеры - CV, презентация, подготовка к собесам и т.д. Стараемся натаскивать на такие вещи. Люба прокачивает ребят ♥️
Короче, этот навык, необходим в текущих реалиях.
Вот несколько вопросов, которые мне задавала Scrum-мастерица
▫️Как ты понимаешь, что достиг успеха в своей работе?
▫️Как у тебя в целом с входом в новый коллектив?
▫️Насколько успешно, может быть, ты можешь оценить, что ты вливаешься в новый коллектив?
▫️Могу тебя попросить сравнить два твоих проекта?
▫️За что тебя мог бы покритиковать твой нынешний работодатель?
▫️А сам себя ты бы за что мог бы покритиковать?
и так далее...
Отвечал на вопросы без особых заигрываний. Результат - прокатило ✅
В следующем посте расскажу про техническую часть собеса 🤖
🎥 Во вложении 4х минутное видео с этой части собеса, чтоб вы имели общее представление о том, как это было.
⚠️ Осторожно, есть один мат. Строго 18+. Надеюсь, нас не читают юные ораклисты младше 18 😄
Что думаете, коллеги? Нужны софты? Поделиться мнением в чатике 💭
#Denis_Kivilev #oracle #java #собседования
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Друзья, всем привет!
Наш марлезонский балет продолжается. Этот пост - про софтовую часть интервью.
Но! прежде всего, отвечу, что верхняя граница позиции была
Итак, софтовую часть обычно проводит HR. В случае с GehtSoft это была Scrum-мастерица 😱
Я всё понимаю, но почему Scrum-мастер?!
Делаю поверхностный вывод: просто некому 🤷🏻♂️
Некоторые технические специалисты до сих пор думают, что soft skills - это про какие-то непонятные «западные говно-практики» и т.п.
Так думать, конечно, можно, но реальность изменилась 🤷🏻♂️ Уже недостаточно быть просто хорошим технарём ❌
Вот пример из текущего собеса: если ты не пройдёшь софт-часть со Scrum-мастерицей, тебя просто не допустят до тел технарей компании. И это факт.
Поэтому важно уметь проходить такие этапы - видишь ты в этом ценность или нет.
Хочешь получить работу? Тогда будь любезен - отвечай правильно.
Да, возможно, в душе ты не согласен с тем, что говорит твой рот, но у тебя задача - получить позицию ✅
Например, когда я искал валютную удаленку мы с Любой Прохоровой (карьерный консультант) провели целое занятие на тему того, как правильно проходить каверзные вопросики по софтам.
С недавних пор, наши студенты могут взять дополнительную опцию по проработке карьеры - CV, презентация, подготовка к собесам и т.д. Стараемся натаскивать на такие вещи. Люба прокачивает ребят ♥️
Короче, этот навык, необходим в текущих реалиях.
Вот несколько вопросов, которые мне задавала Scrum-мастерица
▫️Как ты понимаешь, что достиг успеха в своей работе?
▫️Как у тебя в целом с входом в новый коллектив?
▫️Насколько успешно, может быть, ты можешь оценить, что ты вливаешься в новый коллектив?
▫️Могу тебя попросить сравнить два твоих проекта?
▫️За что тебя мог бы покритиковать твой нынешний работодатель?
▫️А сам себя ты бы за что мог бы покритиковать?
и так далее...
Отвечал на вопросы без особых заигрываний. Результат - прокатило ✅
В следующем посте расскажу про техническую часть собеса 🤖
🎥 Во вложении 4х минутное видео с этой части собеса, чтоб вы имели общее представление о том, как это было.
⚠️ Осторожно, есть один мат. Строго 18+. Надеюсь, нас не читают юные ораклисты младше 18 😄
Что думаете, коллеги? Нужны софты? Поделиться мнением в чатике 💭
#Denis_Kivilev #oracle #java #собседования
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM