Как правильно подходить к процессу оптимизации
Друзья, всем привет! 👋
Сегодня обсудим, как правильно подходить к оптимизации баз данных - тема, важная для улучшения производительности приложений и удовлетворенности пользователей.
С чего начать?
Первым делом стоит понять, что за условной кнопкой в интерфейсе пользователя стоит довольно большое количество слоёв. Каждый из них может вносить свои задержки. Нас интересует слой базы данных.
База данных - это своего рода "черный ящик", который принимает наши запросы и возвращает результаты. За ее внутреннюю оптимизацию отвечают администраторы баз данных (DBA) и системные администраторы (настройка серверов). Наша задача, как разработчиков, писать эффективные и оптимизированные SQL-запросы 🔝
Когда задумываться об оптимизации?
Есть два случая:
1️⃣ Проактивная оптимизация - когда пишем новый код и хотим сделать его производительным, чтобы не замедлить приложение после обновления 🐌
2️⃣ Реактивная оптимизация - когда проблема уже возникла, и пользователи жалуются на медленную работу 🔍
На скрине - слайд из лекций.
Как действовать?
1️⃣ Проактивная оптимизация
▫️Анализируйте запросы при разработке, проверяйте планы выполнения, операции в них, другие показатели.
▫️Используйте лучшие практики написания SQL-запросов.
▫️Тестируйте в условиях, похожих на боевые.
2️⃣Реактивная оптимизация
▫️Найдите медленные запросы.
▫️Соберите данные по ним - планы, статистики выполнения и др.
▫️Проанализируйте, найдите узкие места.
▫️Измените запрос, структуры данных.
▫️Внедрите изменения в PROD-среду и отслеживайте результат.
Важно помнить
💡Если у вас нет явных проблем с производительностью, не стоит тратить время на оптимизацию ради оптимизации. Лучше сосредоточьтесь на текущих задачах и развитии функционала.
💡Однако, если вы пишете новый код, всегда держите в уме лучшие практики и стремитесь писать эффективные запросы с самого начала. 💡
Оптимизация в реальной жизни
В реальных проектах у нас часто нет времени "плевать в потолок" и заниматься оптимизацией без явной необходимости 📆 Важно уметь быстро реагировать и иметь в арсенале проверенные методы.
Оптимизация баз данных - это не разовая задача, а постоянный процесс, который требует внимания и знаний. Чем больше вы сталкиваетесь с реальными проблемами и находите их решения, тем опытнее становитесь. Главное — обеспечить стабильную и быструю работу пользователей 🎯
Как вы подходите к оптимизации в своих проектах? Поделитесь опытом в чатике 💬
#оптимизация #курс
Канал Oracle Developer | Чатик💬
Друзья, всем привет! 👋
Сегодня обсудим, как правильно подходить к оптимизации баз данных - тема, важная для улучшения производительности приложений и удовлетворенности пользователей.
С чего начать?
Первым делом стоит понять, что за условной кнопкой в интерфейсе пользователя стоит довольно большое количество слоёв. Каждый из них может вносить свои задержки. Нас интересует слой базы данных.
База данных - это своего рода "черный ящик", который принимает наши запросы и возвращает результаты. За ее внутреннюю оптимизацию отвечают администраторы баз данных (DBA) и системные администраторы (настройка серверов). Наша задача, как разработчиков, писать эффективные и оптимизированные SQL-запросы 🔝
Когда задумываться об оптимизации?
Есть два случая:
1️⃣ Проактивная оптимизация - когда пишем новый код и хотим сделать его производительным, чтобы не замедлить приложение после обновления 🐌
2️⃣ Реактивная оптимизация - когда проблема уже возникла, и пользователи жалуются на медленную работу 🔍
На скрине - слайд из лекций.
Как действовать?
1️⃣ Проактивная оптимизация
▫️Анализируйте запросы при разработке, проверяйте планы выполнения, операции в них, другие показатели.
▫️Используйте лучшие практики написания SQL-запросов.
▫️Тестируйте в условиях, похожих на боевые.
2️⃣Реактивная оптимизация
▫️Найдите медленные запросы.
▫️Соберите данные по ним - планы, статистики выполнения и др.
▫️Проанализируйте, найдите узкие места.
▫️Измените запрос, структуры данных.
▫️Внедрите изменения в PROD-среду и отслеживайте результат.
Важно помнить
💡Если у вас нет явных проблем с производительностью, не стоит тратить время на оптимизацию ради оптимизации. Лучше сосредоточьтесь на текущих задачах и развитии функционала.
💡Однако, если вы пишете новый код, всегда держите в уме лучшие практики и стремитесь писать эффективные запросы с самого начала. 💡
Оптимизация в реальной жизни
В реальных проектах у нас часто нет времени "плевать в потолок" и заниматься оптимизацией без явной необходимости 📆 Важно уметь быстро реагировать и иметь в арсенале проверенные методы.
Оптимизация баз данных - это не разовая задача, а постоянный процесс, который требует внимания и знаний. Чем больше вы сталкиваетесь с реальными проблемами и находите их решения, тем опытнее становитесь. Главное — обеспечить стабильную и быструю работу пользователей 🎯
Как вы подходите к оптимизации в своих проектах? Поделитесь опытом в чатике 💬
#оптимизация #курс
Канал Oracle Developer | Чатик💬
Задача. Медленный запрос с продуктами
Друзья, всем привет!
Сегодня у нас очень простенькая задача на оптимизацию, в ней нет никаких подвохов.
Дана таблица:
🔸Всего 1M строк.
🔸Уникальных category - 1000.
🔸Данные распределены примерно равномерно по категориям.
Аналитик Василий выполняет запрос и ждет его результатов, довольно, долго⏳
В конце концов, ему это надоело и он пришел к вам с просьбой его ускорить.
Что посоветуете сделать? Обсудить в чате 💬
#задача #оптимизация
Канал Oracle Developer | Чатик💬
Друзья, всем привет!
Сегодня у нас очень простенькая задача на оптимизацию, в ней нет никаких подвохов.
Дана таблица:
create table products (
product_id number(10) primary key,
product_name varchar2(100) not null,
price number(10, 2) not null,
category varchar2(50) not null
);
🔸Всего 1M строк.
🔸Уникальных category - 1000.
🔸Данные распределены примерно равномерно по категориям.
Аналитик Василий выполняет запрос и ждет его результатов, довольно, долго⏳
select product_name
,price
from products
where category = 'Electronics'
and price > 100;
В конце концов, ему это надоело и он пришел к вам с просьбой его ускорить.
Что посоветуете сделать? Обсудить в чате 💬
#задача #оптимизация
Канал Oracle Developer | Чатик💬
Решение. Медленный запрос с продуктами.
Друзья, всем привет!
Обсудим решение нашей простенькой задачки из предыдущего поста.
—
Итак, аналитик Василий обещал вам проставиться в пятницу бутылочкой вкусного пивка 🍺
А все потому, что вы ускорили его запрос!
К вам подошел коллега Игорь и решил поинтересоваться как вы справились с этой задачкой.
💭 "Игорь, это же элементарно! В предикатах участвуют два столбца category и price. Category имеет довольно разнообразное значение. Я где-то слышал, что такие значения называют высококардинальными значениями. И Price, само собой, тоже. Я подумал, что было бы круто создать составной индекс по этим двум полям. Отбираться будет меньше 5-15% от общего количества, а значит индекс будет эффективен", - довольно ответили вы 😊
И сразу же показали, скрипт создания индекса.
А что бы убедить Игоря, показали explain план запроса (см скрин).
"Да! но как ты получил план запроса?", - спросил Игорь.
"А это уже профессиональная тайна", - довольно ответили вы 😊
Senior разработчик Кирилл, совершенно случайно услышавший ваш разговор, добавил: "вообще, можно было бы и одним полем обойтись" 😉
Обсудить в чате 💬
#решениезадачи #оптимизация
Канал Oracle Developer | Чатик💬
Друзья, всем привет!
Обсудим решение нашей простенькой задачки из предыдущего поста.
—
Итак, аналитик Василий обещал вам проставиться в пятницу бутылочкой вкусного пивка 🍺
А все потому, что вы ускорили его запрос!
К вам подошел коллега Игорь и решил поинтересоваться как вы справились с этой задачкой.
💭 "Игорь, это же элементарно! В предикатах участвуют два столбца category и price. Category имеет довольно разнообразное значение. Я где-то слышал, что такие значения называют высококардинальными значениями. И Price, само собой, тоже. Я подумал, что было бы круто создать составной индекс по этим двум полям. Отбираться будет меньше 5-15% от общего количества, а значит индекс будет эффективен", - довольно ответили вы 😊
И сразу же показали, скрипт создания индекса.
create index products_category_price_i on products (category, price);
А что бы убедить Игоря, показали explain план запроса (см скрин).
"Да! но как ты получил план запроса?", - спросил Игорь.
"А это уже профессиональная тайна", - довольно ответили вы 😊
Обсудить в чате 💬
#решениезадачи #оптимизация
Канал Oracle Developer | Чатик💬
Друзья, всем привет! 👋
Сегодня поговорим о том, как простые изменения в оптимизации могут снизить затраты на ресурсы базы данных. Это часто вызывает вопросы, особенно у новичков.
С чего начать?
Оптимизация — это не волшебство, а набор практик и инструментов, которые делают работу эффективнее. Простые приёмы могут значительно уменьшить нагрузку на базу и повысить производительность приложения 🚀
Используйте Explain Plan
Explain Plan — один из ключевых инструментов в оптимизации, показывающий, как база данных выполнит запрос, и помогает выбрать лучший путь. Важно проверять планы запросов на тех средах (Dev, Test, Prod), где они будут использоваться. 🧐
Обратите внимание на Execution Plan
Execution Plan показывает, как запрос действительно выполняется. На продакшене он позволяет выявить узкие места и понять, где можно улучшить запрос.
Хинты: за и против
Иногда используют хинты — указания для оптимизатора, как выполнить запрос. Но будьте осторожны! Хинты могут как улучшить, так и ухудшить выполнение, если применены неправильно ⚠️
Знание внутренних механизмов
Например, понимание child-курсов может помочь в сложных ситуациях. Дать понимание "почему же вдруг у моего запроса изменился план".
Обращаем внимание
1️⃣ Выбор методов соединения: понимание, когда и какой метод соединения использовать nested loops, hash join, ...
2️⃣ Порядок соединения таблиц: неправильный выбор очередности таблиц в соединение может драматически повлиять на выполнение.
3️⃣ Индексы: правильно созданные индексы ускоряют доступ к данным в определенных случаях.
На практике часто предлагают "построить индекс" при проблемах с производительностью, но это не всегда является решением. Вот у кого-то сейчас мозг взорвался "индексы же всегда помогают улучшать запрос!!!", а вот и ни фига подобного 😁 Важно понимать, что именно вызывает проблемы 🔍
Можно бесконечно перечислять на что стоит обратить внимание при написании оптимальных запросов.
Постоянное развитие
Оптимизация требует постоянного обучения. Чем больше знаете о внутренних механизмах базы, тем эффективнее сможете оптимизировать запросы.
Простые изменения и правильные инструменты помогут сократить затраты на ресурсы базы и улучшить производительность. Если хотите действительно понимать, а не тыкаться как слепой котёнок, записывайся на обучение. Анонс скоро будет 🎓
А какие фишки используете вы? Поделиться в чатике 💬
#оптимизация #курс
Канал Oracle Developer | Чатик💬
Сегодня поговорим о том, как простые изменения в оптимизации могут снизить затраты на ресурсы базы данных. Это часто вызывает вопросы, особенно у новичков.
С чего начать?
Оптимизация — это не волшебство, а набор практик и инструментов, которые делают работу эффективнее. Простые приёмы могут значительно уменьшить нагрузку на базу и повысить производительность приложения 🚀
Используйте Explain Plan
Explain Plan — один из ключевых инструментов в оптимизации, показывающий, как база данных выполнит запрос, и помогает выбрать лучший путь. Важно проверять планы запросов на тех средах (Dev, Test, Prod), где они будут использоваться. 🧐
Обратите внимание на Execution Plan
Execution Plan показывает, как запрос действительно выполняется. На продакшене он позволяет выявить узкие места и понять, где можно улучшить запрос.
Хинты: за и против
Иногда используют хинты — указания для оптимизатора, как выполнить запрос. Но будьте осторожны! Хинты могут как улучшить, так и ухудшить выполнение, если применены неправильно ⚠️
Знание внутренних механизмов
Например, понимание child-курсов может помочь в сложных ситуациях. Дать понимание "почему же вдруг у моего запроса изменился план".
Обращаем внимание
1️⃣ Выбор методов соединения: понимание, когда и какой метод соединения использовать nested loops, hash join, ...
2️⃣ Порядок соединения таблиц: неправильный выбор очередности таблиц в соединение может драматически повлиять на выполнение.
3️⃣ Индексы: правильно созданные индексы ускоряют доступ к данным в определенных случаях.
На практике часто предлагают "построить индекс" при проблемах с производительностью, но это не всегда является решением. Вот у кого-то сейчас мозг взорвался "индексы же всегда помогают улучшать запрос!!!", а вот и ни фига подобного 😁 Важно понимать, что именно вызывает проблемы 🔍
Можно бесконечно перечислять на что стоит обратить внимание при написании оптимальных запросов.
Постоянное развитие
Оптимизация требует постоянного обучения. Чем больше знаете о внутренних механизмах базы, тем эффективнее сможете оптимизировать запросы.
Простые изменения и правильные инструменты помогут сократить затраты на ресурсы базы и улучшить производительность. Если хотите действительно понимать, а не тыкаться как слепой котёнок, записывайся на обучение. Анонс скоро будет 🎓
А какие фишки используете вы? Поделиться в чатике 💬
#оптимизация #курс
Канал Oracle Developer | Чатик💬
Марафон по оптимизации в декабре
Готовлю для вас марафон по оптимизации Oracle SQL, который стартует через месяц. 🏁
В прошлый раз, на марафоне по PL/SQL была какая-то запредельная нагрузка. На этот раз хочу подготовиться заранее и сделать всё максимально круто 💪
Напишите в комментариях, какие задачи и вопросы вы хотели бы разобрать на марафоне. Выберу самые интересные и включу их в программу! 🎯
Жду ваших предложений! Обсудить в чате💬
#оптимизация #марафон
Канал Oracle Developer | Чатик💬
Готовлю для вас марафон по оптимизации Oracle SQL, который стартует через месяц. 🏁
В прошлый раз, на марафоне по PL/SQL была какая-то запредельная нагрузка. На этот раз хочу подготовиться заранее и сделать всё максимально круто 💪
Напишите в комментариях, какие задачи и вопросы вы хотели бы разобрать на марафоне. Выберу самые интересные и включу их в программу! 🎯
Жду ваших предложений! Обсудить в чате💬
#оптимизация #марафон
Канал Oracle Developer | Чатик💬
Друзья, всем привет! 👋
Активно готовлю 5️⃣-й поток курса по оптимизации Oracle SQL. Вроде выходные, но здоровый перфекционизм берет свое, и работа кипит 24/7. Хочу рассказать, почему курс стоит своих денег и поделиться отзывами участников, которые окупили его стоимость уже в первые месяцы 💰
Что вас ждет в 5-м потоке?
1️⃣ Четкая структура: все темы разбиты на модули, с подробным планом обучения.
2️⃣ Готовые шаблоны и заметки: экономим время — конспекты уже сделаны.
3️⃣ Море практики: разбираем реальные задачи, с которыми вы столкнетесь.
4️⃣ Экономия времени вашей жизни: знания и инструменты, которые сразу можно применять. ⏳
5️⃣ Аналогов на рынке нет: курсов либо вообще нет, либо качество их извините... "освой оптимизацию за 4 дня" это что за п*** 🤬🤬
6️⃣ Карьерный консультант и реальные примеры собеседований: увеличение навыков прохождения собесов и приемы увеличения з/п в 1,5-2 раза.
7️⃣ Психологическая поддержка: поможет быстрее достичь результатов. Чем выше должность, тем больше ответственности, а "какой солдат не мечтает стать генералом?"
Буквально выжимка из отзывов
💬 "за две недели получил несколько офферов, и через месяц после поисков вышел на позицию почти x2 от предыдущей";
💬 "хочу похвастаться, что у меня уже курс окупился, значит всё было не зря";
💬 "да, твой курс уже наполовину окупился, эта штука мне в сумме пару недель жизни бы сэкономила";
💬 "15 минут, а столько нужной информации, что просто капец. вот хрен же кто такому научит".
Видео-отзывы: 1 поток, 2 поток, 3 поток, отзывы-скриншоты.
Почему это выгодная инвестиция?
✅ Монополия знаний: аналогов нет — вы получаете конкурентное преимущество.
✅ Практическая ценность: навыки, которые реально важны для бизнеса.
✅ Быстрая окупаемость: многие ощутили эффект в первые месяцы благодаря новым возможностям и повышению зарплаты. 💎
Цена выросла?
Да, стоимость повысилась, но курс остается уникальным. Все знания основаны на реальных кейсах, моем опыте и опыте предыдущих потоков. Это вложение в себя окупится многократно! 📚
Почему сейчас идеальное время присоединиться?
✅ Ограниченные места: внимание каждому участнику, поэтому группы небольшие.
✅ Постоянное обновление: курс адаптируется, улучшается.
✅ Сообщество единомышленников: поддержка и обмен опытом. 🤝
Не упустите возможность инвестировать в себя! Уже скоро опубликую анкету предзаписи 🚀
Вопросы? Пишите, с радостью отвечу 💬
#оптимизация #курс
Канал Oracle Developer | Чатик💬
Активно готовлю 5️⃣-й поток курса по оптимизации Oracle SQL. Вроде выходные, но здоровый перфекционизм берет свое, и работа кипит 24/7. Хочу рассказать, почему курс стоит своих денег и поделиться отзывами участников, которые окупили его стоимость уже в первые месяцы 💰
Что вас ждет в 5-м потоке?
1️⃣ Четкая структура: все темы разбиты на модули, с подробным планом обучения.
2️⃣ Готовые шаблоны и заметки: экономим время — конспекты уже сделаны.
3️⃣ Море практики: разбираем реальные задачи, с которыми вы столкнетесь.
4️⃣ Экономия времени вашей жизни: знания и инструменты, которые сразу можно применять. ⏳
5️⃣ Аналогов на рынке нет: курсов либо вообще нет, либо качество их извините... "освой оптимизацию за 4 дня" это что за п*** 🤬🤬
6️⃣ Карьерный консультант и реальные примеры собеседований: увеличение навыков прохождения собесов и приемы увеличения з/п в 1,5-2 раза.
7️⃣ Психологическая поддержка: поможет быстрее достичь результатов. Чем выше должность, тем больше ответственности, а "какой солдат не мечтает стать генералом?"
Буквально выжимка из отзывов
💬 "за две недели получил несколько офферов, и через месяц после поисков вышел на позицию почти x2 от предыдущей";
💬 "хочу похвастаться, что у меня уже курс окупился, значит всё было не зря";
💬 "да, твой курс уже наполовину окупился, эта штука мне в сумме пару недель жизни бы сэкономила";
💬 "15 минут, а столько нужной информации, что просто капец. вот хрен же кто такому научит".
Видео-отзывы: 1 поток, 2 поток, 3 поток, отзывы-скриншоты.
Почему это выгодная инвестиция?
✅ Монополия знаний: аналогов нет — вы получаете конкурентное преимущество.
✅ Практическая ценность: навыки, которые реально важны для бизнеса.
✅ Быстрая окупаемость: многие ощутили эффект в первые месяцы благодаря новым возможностям и повышению зарплаты. 💎
Цена выросла?
Да, стоимость повысилась, но курс остается уникальным. Все знания основаны на реальных кейсах, моем опыте и опыте предыдущих потоков. Это вложение в себя окупится многократно! 📚
Почему сейчас идеальное время присоединиться?
✅ Ограниченные места: внимание каждому участнику, поэтому группы небольшие.
✅ Постоянное обновление: курс адаптируется, улучшается.
✅ Сообщество единомышленников: поддержка и обмен опытом. 🤝
Не упустите возможность инвестировать в себя! Уже скоро опубликую анкету предзаписи 🚀
Вопросы? Пишите, с радостью отвечу 💬
#оптимизация #курс
Канал Oracle Developer | Чатик💬
Друзья, всем привет! 👋
Сегодня поговорим о том, какие задачи решает оптимизация и почему она важна для каждого разработчика.
Проблема №1: "Всё стало тормозить!"
Знакомо? Пользователи жалуются, начальство нервничает, и вам срочно нужно найти решение 😅
Представьте: вам приходит срочное сообщение от вашего тимлида или второй линии поддержки — "Вася, всё тормозит, срочно решай!". Ладошки потеют, мысли путаются. Что делать? Куда бежать? 😱😨
Если база данных ваша, и у вас есть доступ, то уже легче. Но что, если это база заказчика, например, банка, и доступа нет? Тут стресс усиливается вдвойне.
Проблема №2: Как написать оптимальный запрос с нуля
Важно сразу писать эффективные запросы, чтобы потом не пришлось исправлять и бегать с "горящей пятой точкой". Зная, как анализировать и понимать планы запросов, вы сможете сразу писать код, избегая потенциальных узких мест.
Как подойти к решению проблемы 1 и 2?
Многие начинают вслепую оптимизировать то, что им знакомо, даже если это не причина проблемы. Это как блуждать по темному лесу без фонарика и карты🌲
Только системный подход к решению проблем даст эффект. Именно ему, мы учим на курсе.
1️⃣ Диагностика: Как найти медленные запросы? Где узкие места? 🔍
2️⃣ План запроса: Что это такое и как его получить? 📋
3️⃣ Чтение и анализ плана: Что означают операции? Если не умеете читать план, не сможете решить проблему. 📖
4️⃣ Анализ: Где проблема? 🤔
5️⃣ Внедрение изменений: Как исправить и поставить в продакшн, если система работает 24/7? 🛠
Итог
После курса такие проблемы, как "всё тормозит" или "кнопка раньше работала за секунду, а теперь за минуту" станут для вас легко решаемыми. Вы сможете быстро находить и устранять узкие места, писать оптимальные запросы с нуля и чувствовать себя уверенно в любой ситуации 💪
А у вас бывали проблемы с запросами? А в 3 часа ночи? А в банке, в который вы поставили изменения в новом патче?
У меня бывало 😆 У кого какие треш-истории были?
Обсудить в чате 💬
#оптимизация #курс
Канал Oracle Developer | Чатик💬
Сегодня поговорим о том, какие задачи решает оптимизация и почему она важна для каждого разработчика.
Проблема №1: "Всё стало тормозить!"
Знакомо? Пользователи жалуются, начальство нервничает, и вам срочно нужно найти решение 😅
Представьте: вам приходит срочное сообщение от вашего тимлида или второй линии поддержки — "Вася, всё тормозит, срочно решай!". Ладошки потеют, мысли путаются. Что делать? Куда бежать? 😱😨
Если база данных ваша, и у вас есть доступ, то уже легче. Но что, если это база заказчика, например, банка, и доступа нет? Тут стресс усиливается вдвойне.
Проблема №2: Как написать оптимальный запрос с нуля
Важно сразу писать эффективные запросы, чтобы потом не пришлось исправлять и бегать с "горящей пятой точкой". Зная, как анализировать и понимать планы запросов, вы сможете сразу писать код, избегая потенциальных узких мест.
Как подойти к решению проблемы 1 и 2?
Многие начинают вслепую оптимизировать то, что им знакомо, даже если это не причина проблемы. Это как блуждать по темному лесу без фонарика и карты🌲
Только системный подход к решению проблем даст эффект. Именно ему, мы учим на курсе.
1️⃣ Диагностика: Как найти медленные запросы? Где узкие места? 🔍
2️⃣ План запроса: Что это такое и как его получить? 📋
3️⃣ Чтение и анализ плана: Что означают операции? Если не умеете читать план, не сможете решить проблему. 📖
4️⃣ Анализ: Где проблема? 🤔
5️⃣ Внедрение изменений: Как исправить и поставить в продакшн, если система работает 24/7? 🛠
Итог
После курса такие проблемы, как "всё тормозит" или "кнопка раньше работала за секунду, а теперь за минуту" станут для вас легко решаемыми. Вы сможете быстро находить и устранять узкие места, писать оптимальные запросы с нуля и чувствовать себя уверенно в любой ситуации 💪
А у вас бывали проблемы с запросами? А в 3 часа ночи? А в банке, в который вы поставили изменения в новом патче?
У меня бывало 😆 У кого какие треш-истории были?
Обсудить в чате 💬
#оптимизация #курс
Канал Oracle Developer | Чатик💬
Как справляться с высокими нагрузками на базу данных?
Друзья, всем привет! 👋
Сегодня поговорим о том, как оптимизация помогает справляться с высокими нагрузками на базу данных — тема, актуальная для многих разработчиков и DBA.
Что такое высокая нагрузка?
Высокая нагрузка может проявляться по-разному:
1️⃣ Много пользователей - когда большое количество пользователей одновременно обращаются к базе данных, даже простые запросы могут создать существенную нагрузку 👫👫👫
2️⃣ Тяжелые запросы - даже если пользователей немного, но каждый из них выполняет ресурсоемкие операции, нагрузка на базу данных возрастает. 🐘
Почему это важно?
База данных — это как автобус с ограниченным количеством мест. 🚌 Если слишком много пассажиров (запросов) или они слишком "тяжелые" (неоптимизированные), автобус не сможет быстро и эффективно доставить всех к месту назначения.
Как оптимизация помогает?
Оптимизация позволяет "усушить" тяжелые запросы, сделав их более легкими и быстрыми. Это как помочь полным пассажирам похудеть, чтобы в автобус вместилось больше людей без увеличения его размера, но при этом сохранить эффективность пассажиров. 🏋️♂️
Вертикальное масштабирование vs Оптимизация
Вертикальное масштабирование (добавление hardware-ресурсов) имеет пределы, может быть дорогостоящим 💰 При это навалив в два раза больше CPU вы, не получите увеличения скорости работы системы в 2 раза.
Оптимизация фокусируется на улучшении существующих запросов без дополнительных затрат на оборудование 🛠
Простой пример
Представьте метро в час пик 🚇 Люди толпятся, создается хаос. Если правильно организовать потоки пассажиров, установить указатели и разделить входящие и исходящие потоки, пропускная способность увеличивается без расширения станции. Аналогично и с базой данных: оптимизация запросов позволяет обработать больше операций за то же время.
Скинуть чуть позже еще один примерчик 😉
Почему компании инвестируют в оптимизацию?
🔸 Улучшение производительности: быстрые ответы базы данных повышают удовлетворенность пользователей.
🔸 Снижение затрат: нет необходимости тратить деньги на дополнительное оборудование.
🔸 Конкурентное преимущество: быстро работающие приложения привлекают больше клиентов.
Как вы справляетесь с высокими нагрузками в своих проектах? Поделитесь опытом в чатике 💬
#оптимизация #производительность
Канал Oracle Developer| Чатик 💬
Друзья, всем привет! 👋
Сегодня поговорим о том, как оптимизация помогает справляться с высокими нагрузками на базу данных — тема, актуальная для многих разработчиков и DBA.
Что такое высокая нагрузка?
Высокая нагрузка может проявляться по-разному:
1️⃣ Много пользователей - когда большое количество пользователей одновременно обращаются к базе данных, даже простые запросы могут создать существенную нагрузку 👫👫👫
2️⃣ Тяжелые запросы - даже если пользователей немного, но каждый из них выполняет ресурсоемкие операции, нагрузка на базу данных возрастает. 🐘
Почему это важно?
База данных — это как автобус с ограниченным количеством мест. 🚌 Если слишком много пассажиров (запросов) или они слишком "тяжелые" (неоптимизированные), автобус не сможет быстро и эффективно доставить всех к месту назначения.
Как оптимизация помогает?
Оптимизация позволяет "усушить" тяжелые запросы, сделав их более легкими и быстрыми. Это как помочь полным пассажирам похудеть, чтобы в автобус вместилось больше людей без увеличения его размера, но при этом сохранить эффективность пассажиров. 🏋️♂️
Вертикальное масштабирование vs Оптимизация
Вертикальное масштабирование (добавление hardware-ресурсов) имеет пределы, может быть дорогостоящим 💰 При это навалив в два раза больше CPU вы, не получите увеличения скорости работы системы в 2 раза.
Оптимизация фокусируется на улучшении существующих запросов без дополнительных затрат на оборудование 🛠
Простой пример
Представьте метро в час пик 🚇 Люди толпятся, создается хаос. Если правильно организовать потоки пассажиров, установить указатели и разделить входящие и исходящие потоки, пропускная способность увеличивается без расширения станции. Аналогично и с базой данных: оптимизация запросов позволяет обработать больше операций за то же время.
Скинуть чуть позже еще один примерчик 😉
Почему компании инвестируют в оптимизацию?
🔸 Улучшение производительности: быстрые ответы базы данных повышают удовлетворенность пользователей.
🔸 Снижение затрат: нет необходимости тратить деньги на дополнительное оборудование.
🔸 Конкурентное преимущество: быстро работающие приложения привлекают больше клиентов.
Как вы справляетесь с высокими нагрузками в своих проектах? Поделитесь опытом в чатике 💬
#оптимизация #производительность
Канал Oracle Developer| Чатик 💬
Пример. Пуш-уведомления 📲
Продолжаем обсуждать, как оптимизация помогает справляться с высокими нагрузками на базу данных.
Ситуация. Вы совершаете платеж, и вам нужно получить пуш-уведомление с кодом подтверждения. Обычно оно приходит мгновенно. Но что, если уведомление задерживается на минуту или даже больше? 😱
Вы только представьте сколько слоёв приложений, запросов в базы данных, очередей, сетевых коммуникаций проходит сигнал нажатия кнопки "Оплатить" в вашем мобильном приложении до получения ПУШ-уведомления?
Огромное количество, в том числе не только на нашей стороне (например, Google Firebase).
Предположим, один из запросов в базу данных выполняется медленно. Вместо обычных 20ms, выполняется за секунду. Казалось бы мелочь - всего секунда. А таких запросов может и десяток набраться. Backend-разработчики, мне прекрасно понимают 😉 Короче, это всё влияет на время доставки пуша.
Пользователь недоволен, оплатить не может, бизнес теряет деньги 💸
Почему скорость важна?
SLA (Service Level Agreement): многие компании устанавливают строгие требования к времени отклика систем. Например, пуш должен быть доставлен не позднее 3 секунд.
Пользовательский опыт: Задержки снижают доверие к сервису.
Как оптимизация в слое БД решает проблему?
🔸Уменьшение времени выполнения запросов: оптимизированные запросы выполняются быстрее, что сокращает общую задержку.
🔸Снижение нагрузки на систему: эффективные запросы потребляют меньше ресурсов, позволяя обслуживать больше пользователей одновременно.
Что будет, если не оптимизировать?
1️⃣ Потеря клиентов: никто не будет ждать минутами подтверждения платежа.
2️⃣ Ущерб репутации: замедление сервисов подрывает доверие к компании.
3️⃣ Финансовые потери: нет клиентов, не могут оплатить - минус доход.
Оптимизация — это не просто улучшение кода, это стратегический инструмент для поддержания конкурентоспособности и удовлетворения потребностей пользователей. 🚀
А у вас были случаи, когда медленные запросы приводили к проблемам? Делитесь историями в чатике 💬
#оптимизация #производительность
Канал Oracle Developer | Чатик 💬
Продолжаем обсуждать, как оптимизация помогает справляться с высокими нагрузками на базу данных.
Ситуация. Вы совершаете платеж, и вам нужно получить пуш-уведомление с кодом подтверждения. Обычно оно приходит мгновенно. Но что, если уведомление задерживается на минуту или даже больше? 😱
Вы только представьте сколько слоёв приложений, запросов в базы данных, очередей, сетевых коммуникаций проходит сигнал нажатия кнопки "Оплатить" в вашем мобильном приложении до получения ПУШ-уведомления?
Огромное количество, в том числе не только на нашей стороне (например, Google Firebase).
Предположим, один из запросов в базу данных выполняется медленно. Вместо обычных 20ms, выполняется за секунду. Казалось бы мелочь - всего секунда. А таких запросов может и десяток набраться. Backend-разработчики, мне прекрасно понимают 😉 Короче, это всё влияет на время доставки пуша.
Пользователь недоволен, оплатить не может, бизнес теряет деньги 💸
Почему скорость важна?
SLA (Service Level Agreement): многие компании устанавливают строгие требования к времени отклика систем. Например, пуш должен быть доставлен не позднее 3 секунд.
Пользовательский опыт: Задержки снижают доверие к сервису.
Как оптимизация в слое БД решает проблему?
🔸Уменьшение времени выполнения запросов: оптимизированные запросы выполняются быстрее, что сокращает общую задержку.
🔸Снижение нагрузки на систему: эффективные запросы потребляют меньше ресурсов, позволяя обслуживать больше пользователей одновременно.
Что будет, если не оптимизировать?
1️⃣ Потеря клиентов: никто не будет ждать минутами подтверждения платежа.
2️⃣ Ущерб репутации: замедление сервисов подрывает доверие к компании.
3️⃣ Финансовые потери: нет клиентов, не могут оплатить - минус доход.
Оптимизация — это не просто улучшение кода, это стратегический инструмент для поддержания конкурентоспособности и удовлетворения потребностей пользователей. 🚀
А у вас были случаи, когда медленные запросы приводили к проблемам? Делитесь историями в чатике 💬
#оптимизация #производительность
Канал Oracle Developer | Чатик 💬
Как знания оптимизации Oracle помогают расти по карьерной лестнице
Кивилев Денис
Как знания оптимизации Oracle помогают подниматься по карьерной лестнице?
Друзья, всем привет! 🎙
Сегодня у меня для вас не просто пост, а история, которая, возможно, заставит вас иначе взглянуть на оптимизацию Oracle как ключ к карьерному успеху. Расскажу, как одна книга и немного смекалки помогли мне не просто спасти ситуацию, но и укрепить свою позицию, стать важным специалистом и подняться на следующую карьерную ступень 📈.
Представьте: банк, проблемы с производительностью, и на кону доверие заказчика. Команда в растерянности, но тут на помощь приходит знания. Именно они превращают вас в специалиста, к которому идут за помощью — а дальше это открывает двери к росту и уважению.
В подкасте я делюсь этой историей и объясняю, почему оптимизация — ваш скрытый козырь. Хотите узнать, как стать ключевым игроком в команде?
Слушайте и делитесь своим опытом — уверен, будет что обсудить в чатике 💬
Длительность: 6 минут. на x1.2 вполне отлично 😉
Если аудио зашло, ставьте 👍🏻
#оптимизация #Denis_Kivillev #карьера #подкаст #аудиподкаст
Канал Oracle Developer| Чат 💬
Друзья, всем привет! 🎙
Сегодня у меня для вас не просто пост, а история, которая, возможно, заставит вас иначе взглянуть на оптимизацию Oracle как ключ к карьерному успеху. Расскажу, как одна книга и немного смекалки помогли мне не просто спасти ситуацию, но и укрепить свою позицию, стать важным специалистом и подняться на следующую карьерную ступень 📈.
Представьте: банк, проблемы с производительностью, и на кону доверие заказчика. Команда в растерянности, но тут на помощь приходит знания. Именно они превращают вас в специалиста, к которому идут за помощью — а дальше это открывает двери к росту и уважению.
В подкасте я делюсь этой историей и объясняю, почему оптимизация — ваш скрытый козырь. Хотите узнать, как стать ключевым игроком в команде?
Слушайте и делитесь своим опытом — уверен, будет что обсудить в чатике 💬
Длительность: 6 минут. на x1.2 вполне отлично 😉
Если аудио зашло, ставьте 👍🏻
#оптимизация #Denis_Kivillev #карьера #подкаст #аудиподкаст
Канал Oracle Developer| Чат 💬
Друзья, всем привет!
У меня для вас отличные новости!
Уже скоро откроется анкета предзаписи на обновленный курс "Оптимизации Oracle SQL" 🎉
Если вы хотите прокачать свои навыки и стать экспертом в этой области, не пропустите этот шанс!
А пока я активно работаю над подготовкой марафона по оптимизации, который планирую провести совсем скоро. 🏃♂️ Это будет интенсив, где за несколько дней мы глубоко погрузимся в тему и разберём реальные кейсы.
Почему это важно?
1️⃣ Практические навыки: получите знания, которые сразу сможете применять в работе.
2️⃣ Профессиональный рост: станете ценнее как специалист и откроете новые карьерные возможности.
3️⃣ Эффективность: научитесь решать задачи быстрее и качественнее.
4️⃣ Комьюнити: общение с единомышленниками и обмен опытом. 🤝
Следите за обновлениями, чтобы не пропустить анкету предзаписи и анонс марафона! 😉
Обсудить и задать вопросы можно в чатике 💬
#оптимизация #курс #марафон
Канал Oracle Developer| Чатик 💬
У меня для вас отличные новости!
Уже скоро откроется анкета предзаписи на обновленный курс "Оптимизации Oracle SQL" 🎉
Если вы хотите прокачать свои навыки и стать экспертом в этой области, не пропустите этот шанс!
А пока я активно работаю над подготовкой марафона по оптимизации, который планирую провести совсем скоро. 🏃♂️ Это будет интенсив, где за несколько дней мы глубоко погрузимся в тему и разберём реальные кейсы.
Почему это важно?
1️⃣ Практические навыки: получите знания, которые сразу сможете применять в работе.
2️⃣ Профессиональный рост: станете ценнее как специалист и откроете новые карьерные возможности.
3️⃣ Эффективность: научитесь решать задачи быстрее и качественнее.
4️⃣ Комьюнити: общение с единомышленниками и обмен опытом. 🤝
Следите за обновлениями, чтобы не пропустить анкету предзаписи и анонс марафона! 😉
Обсудить и задать вопросы можно в чатике 💬
#оптимизация #курс #марафон
Канал Oracle Developer| Чатик 💬
Задача. Хороший ли план?
Друзья, всем привет!
Сегодня попробуем решить простенькую задачку по оптимизации.
Прежде, чем мы приступим к оптимизации запроса, нам нужно понять, что именно и почему у нас тормозит.
А поможет нам в этом - план запроса.
В Oracle существуют explain (оценочный) и execution (реальный) планы запросов.
Получить explain-план, например, можно в любой IDE, которая поддерживает подключение к СУБД Oracle.
Теперь представьте, что у вас есть следующая таблица:
План запроса на скрине ⬆️
Вопрос: насколько этот план хорош и почему?
Ответ на задачку - сегодня вечером 🎓
Обсудить в чате 💬
#оптимизация #задача
Канал Oracle Developer| Чат 💬
Друзья, всем привет!
Сегодня попробуем решить простенькую задачку по оптимизации.
Прежде, чем мы приступим к оптимизации запроса, нам нужно понять, что именно и почему у нас тормозит.
А поможет нам в этом - план запроса.
В Oracle существуют explain (оценочный) и execution (реальный) планы запросов.
Получить explain-план, например, можно в любой IDE, которая поддерживает подключение к СУБД Oracle.
Теперь представьте, что у вас есть следующая таблица:
-- таблица
create table DEMO
(
key CHAR(4) not null,
value VARCHAR2(20 CHAR)
);
-- вставка
insert into demo
select 'K' || lpad(level, 3, '0'), level
from dual
connect by level < 1000;
-- ключи / индексы
create index DEMO_VALUE_IX on DEMO (VALUE);
alter table DEMO
add constraint DEMO_PK primary key (KEY)
using index;
-- запрос
select *
from demo
where value = 900;
План запроса на скрине ⬆️
Вопрос: насколько этот план хорош и почему?
Ответ на задачку - сегодня вечером 🎓
Обсудить в чате 💬
#оптимизация #задача
Канал Oracle Developer| Чат 💬
Решение задачи. Хороший ли план?
Постановка: в посте выше.
Анализ
В скрипте создания и наполнения таблицы присутствует создание индекса DEMO_VALUE_IX на поле value.
Разработчик, зная об этом, ожидает, что в приведённом запросе доступ к данным будет осуществляться посредством индекса.
С точки зрения селективности выборки, индекс оправдан, т.к. мы извлекаем одну запись из 1000.
Однако вместо этого происходит полное чтение таблицы - Table Access Full.
Причина в том, что тип данных в столбце value отличается от предиката.
Как это узнать?
Вариант 1 - вы на опыте и уже сталкивались с таким. Вариант 2 - копнув план запроса чуть глубже.
Для операции 1 в плане запроса будет указано следующее:
Т.е. Oracle выполняет неявное преобразование каждого значения поля value к числу, чтобы сравнить его с переданным значением.
Поэтому вместо индексного доступа оптимизатор выбрал полное чтение таблицы. Ну, нет у нас подходящего индекса 🤷🏻♂️
Что можно сделать?
1️⃣ Использовать строковый литерал в предикате
2️⃣ Выполнить преобразование числового литерала к строке
3️⃣ Построить индекс по to_number(value) не меняя изначальный запрос.
Будет функциональный индекс, который будет использован в первоначальном запросе.
Так делать не принято, но вдруг у вас нет доступа к кодовой базе, зато индекс вы создать можете.
План для первого решения на скриншоте ⬆️
Эти и другие тонкости работы с запросами мы проходим с ребятами на курсе "Оптимизация Oracle SQL". Велком 👌🏻
—
Коллеги, эта задача была составлена преподавателем нашей школы - Павлом Долгановым. Он ведет практики в нашей школе (три потока по PL/SQL и четвертый поток по "Оптимизации Oracle SQL").
Опытный разработчик, имеет огромный багаж знаний. Его посты будут периодически появляться у нас на канале 😉
Если понравилась задачка от Паши - ставьте 🔥 , ему будет приятно. До встречи 🖐🏻
Обсудить в чате 💬
#оптимизация #решениезадачи #Pavel_Dolganov
Канал Oracle Developer| Чат 💬
Постановка: в посте выше.
Анализ
В скрипте создания и наполнения таблицы присутствует создание индекса DEMO_VALUE_IX на поле value.
Разработчик, зная об этом, ожидает, что в приведённом запросе доступ к данным будет осуществляться посредством индекса.
С точки зрения селективности выборки, индекс оправдан, т.к. мы извлекаем одну запись из 1000.
Однако вместо этого происходит полное чтение таблицы - Table Access Full.
Причина в том, что тип данных в столбце value отличается от предиката.
Как это узнать?
Вариант 1 - вы на опыте и уже сталкивались с таким. Вариант 2 - копнув план запроса чуть глубже.
Для операции 1 в плане запроса будет указано следующее:
Predicate Information (identified by operation id):
------------------------------------------
* 1 - filter(TO_NUMBER("VALUE")=900)
Т.е. Oracle выполняет неявное преобразование каждого значения поля value к числу, чтобы сравнить его с переданным значением.
Поэтому вместо индексного доступа оптимизатор выбрал полное чтение таблицы. Ну, нет у нас подходящего индекса 🤷🏻♂️
Что можно сделать?
1️⃣ Использовать строковый литерал в предикате
-- запрос
select *
from demo
where value = '900';
2️⃣ Выполнить преобразование числового литерала к строке
-- запрос
select *
from demo
where value = to_char(900);
3️⃣ Построить индекс по to_number(value) не меняя изначальный запрос.
Будет функциональный индекс, который будет использован в первоначальном запросе.
Так делать не принято, но вдруг у вас нет доступа к кодовой базе, зато индекс вы создать можете.
План для первого решения на скриншоте ⬆️
Эти и другие тонкости работы с запросами мы проходим с ребятами на курсе "Оптимизация Oracle SQL". Велком 👌🏻
—
Коллеги, эта задача была составлена преподавателем нашей школы - Павлом Долгановым. Он ведет практики в нашей школе (три потока по PL/SQL и четвертый поток по "Оптимизации Oracle SQL").
Опытный разработчик, имеет огромный багаж знаний. Его посты будут периодически появляться у нас на канале 😉
Если понравилась задачка от Паши - ставьте 🔥 , ему будет приятно. До встречи 🖐🏻
Обсудить в чате 💬
#оптимизация #решениезадачи #Pavel_Dolganov
Канал Oracle Developer| Чат 💬
Что делать, если ваши запросы работают медленно?
Друзья, всем привет! 👋
Сегодня хочу поговорить о том, что делать, если ваши запросы работают медленно. Разберём популярные ошибки и их решения. 🛠
Почему запросы тормозят? 🤔
Многие из нас сталкивались с ситуацией, когда приложение начинает работать медленнее, отчёты генерируются дольше, а пользователи жалуются на скорость. Часто это связано с тем, что мы не знаем, с чего начать оптимизацию и как подойти к решению проблемы системно.
Популярные ошибки при оптимизации запросов 🚧
1️⃣ Отсутствие системного подхода: Разработчики часто действуют наугад, не имея чёткого плана действий.
2️⃣ Непонимание плана выполнения: Получить план запроса — это одно, а вот правильно его прочитать и проанализировать — совсем другое.
3️⃣ Слепое создание индексов: Многие думают, что добавление индекса решит все проблемы. Но это не всегда так и может даже ухудшить ситуацию.
4️⃣ Игнорирование архитектуры приложения: Без учёта общей структуры и объёмов данных оптимизация отдельных запросов может быть бесполезной.
Как правильно подойти к оптимизации? 📝
Оптимизация — это поэтапный процесс. Вот 5 ключевых шагов:
1️⃣ Поиск медленных запросов: Сначала нужно выявить, какие именно запросы тормозят систему.
2️⃣ Получение плана выполнения: Далее необходимо получить план выполнения этих запросов для анализа.
3️⃣ Анализ плана: Научиться читать и понимать план выполнения — критически важно для выявления проблем.
4️⃣ Выявление узких мест: Определить операции, которые занимают больше всего ресурсов и времени.
5️⃣ Внедрение изменений и проверка: Внести необходимые корректировки, запустить их в продакшн и оценить результат.
На моём курсе мы детально разбираем каждый из этих этапов, учимся использовать эффективные методы и инструменты для оптимизации запросов в Oracle. 🎓
Почему это важно? 🌟
✅ Ускорение работы приложений: Быстрые запросы делают приложение более отзывчивым и улучшают пользовательский опыт.
✅ Повышение квалификации: Глубокие знания в оптимизации делают вас ценным специалистом на рынке. 💼
✅ Карьерный рост: Способность решать сложные задачи открывает двери к более высоким позициям и зарплатам. 💰
Не упустите возможность! 🚀
Уже завтра откроется анкета предзаписи на мой курс по оптимизации Oracle SQL! 🎉
Учтите, что мест немного, чтобы обеспечить качество обучения и индивидуальный подход. Если вы хотите прокачать свои навыки и научиться эффективно оптимизировать запросы, это ваш шанс! 😉
Задавайте вопросы и делитесь своими мыслями в чатике 💬
#оптимизация #курс
Канал Oracle Developer | Чатик 💬
Друзья, всем привет! 👋
Сегодня хочу поговорить о том, что делать, если ваши запросы работают медленно. Разберём популярные ошибки и их решения. 🛠
Почему запросы тормозят? 🤔
Многие из нас сталкивались с ситуацией, когда приложение начинает работать медленнее, отчёты генерируются дольше, а пользователи жалуются на скорость. Часто это связано с тем, что мы не знаем, с чего начать оптимизацию и как подойти к решению проблемы системно.
Популярные ошибки при оптимизации запросов 🚧
1️⃣ Отсутствие системного подхода: Разработчики часто действуют наугад, не имея чёткого плана действий.
2️⃣ Непонимание плана выполнения: Получить план запроса — это одно, а вот правильно его прочитать и проанализировать — совсем другое.
3️⃣ Слепое создание индексов: Многие думают, что добавление индекса решит все проблемы. Но это не всегда так и может даже ухудшить ситуацию.
4️⃣ Игнорирование архитектуры приложения: Без учёта общей структуры и объёмов данных оптимизация отдельных запросов может быть бесполезной.
Как правильно подойти к оптимизации? 📝
Оптимизация — это поэтапный процесс. Вот 5 ключевых шагов:
1️⃣ Поиск медленных запросов: Сначала нужно выявить, какие именно запросы тормозят систему.
2️⃣ Получение плана выполнения: Далее необходимо получить план выполнения этих запросов для анализа.
3️⃣ Анализ плана: Научиться читать и понимать план выполнения — критически важно для выявления проблем.
4️⃣ Выявление узких мест: Определить операции, которые занимают больше всего ресурсов и времени.
5️⃣ Внедрение изменений и проверка: Внести необходимые корректировки, запустить их в продакшн и оценить результат.
На моём курсе мы детально разбираем каждый из этих этапов, учимся использовать эффективные методы и инструменты для оптимизации запросов в Oracle. 🎓
Почему это важно? 🌟
✅ Ускорение работы приложений: Быстрые запросы делают приложение более отзывчивым и улучшают пользовательский опыт.
✅ Повышение квалификации: Глубокие знания в оптимизации делают вас ценным специалистом на рынке. 💼
✅ Карьерный рост: Способность решать сложные задачи открывает двери к более высоким позициям и зарплатам. 💰
Не упустите возможность! 🚀
Уже завтра откроется анкета предзаписи на мой курс по оптимизации Oracle SQL! 🎉
Учтите, что мест немного, чтобы обеспечить качество обучения и индивидуальный подход. Если вы хотите прокачать свои навыки и научиться эффективно оптимизировать запросы, это ваш шанс! 😉
Задавайте вопросы и делитесь своими мыслями в чатике 💬
#оптимизация #курс
Канал Oracle Developer | Чатик 💬
Отзывы студентов по оптимизации
Oracle DBD
Друзья, всем привет! 👋
У меня для вас отличные новости! 🎉
Открыта анкета предзаписи на мой обновленный курс "Оптимизация Oracle SQL. Основы" - 5-й поток! 🎓
И чтобы вы не думали, что это просто слова, я прикрепил аудио с отзывами от ребят, которые уже прошли обучение. Послушайте сами — они рассказывают, почему стоит записаться на курс и пройти его 🎧
Почему нужно записаться прямо сейчас?
🔸 Мест всего 15 — я делаю акцент на индивидуальной работе с каждым участником. В прошлый раз желающих было более 50 человек, так что места разлетелись очень быстро. 🚀
🔸 Анкета предзаписи будет открыта ровно на неделю! ⏳
О курсе
🔥 Продолжительность: 3 месяца основного курса + 1 месяц поддержки после прохождения.
🔥 Обновление: внесено более 30 правок и дополнений для повышения эффективности обучения.
🔥 Практика: ещё больше практических заданий, которые можно выполнять в свободное время.
🔥 Формат: видео-лекции на обучающей платформе, выполнение ДЗ, еженедельные встречи в Zoom для обсуждения вопросов и разбор кейсов.
🔥 Время в неделю: ~8 часов, включая занятия и выполнение заданий.
🔥 Стенд для практики: предоставляется доступ к Oracle 19c.
Цели курса
🎯 Довести вас до уровня уверенного специалиста, способного решать 80-90% типовых проблем с оптимизацией SQL-запросов и успешно проходить собеседования на позиции с ЗП от 300К.
🔹 Научиться находить и решать проблемы в PROD среде.
🔹 Научиться писать сразу оптимальные запросы.
🔹 Успешно проходить блок по оптимизации на собеседованиях.
🔹 Систематизировать знания и уверенно расти по карьерной лестнице.
Содержание курса
1️⃣ Выявление проблемных запросов — методы поиска и диагностики проблемных SQL.
2️⃣ Чтение и понимание планов запросов — как получать и интерпретировать планы выполнения.
3️⃣ Анализ планов запросов — как правильно читать и анализировать планы в Oracle.
4️⃣ Решение проблем — методы поиска проблем в SQL и способы их устранения.
5️⃣ Внесение изменений — практика оптимизации в базах данных OLTP и DWH системах.
🎁 Бонусы
Секреты работы с DWH, адаптивная оптимизация, статистика, трассировка оптимизатора и многое другое.
Блок для успешного прохождения собеседований и психология карьерного роста
🔸 Продвижение по карьерной лестнице внутри компании.
🔸 Рекомендации для успешного взятия самых сладких вакансий.
🔸 Зарубежный рынок, особенности и советы.
🔸 Как преодолеть препятствия на пути к роли ТимЛида.
Почему стоит выбрать этот курс?
✅ Практический опыт с первого урока.
✅ Реальные кейсы и сценарии из реальной жизни.
✅ Индивидуальная поддержка и внимание к каждому участнику.
✅ Ускоренное обучение с ментором.
✅ Увеличение зарплаты через смену работы или рост в текущей компании.
Отзывы участников
💬 "За две недели получил несколько офферов и через месяц вышел на позицию почти x2 от предыдущей."
💬 "Окупил курс во время обучения в первый же месяц. Сейчас мой доход составляет 500К и выше."
💬 "Благодаря практике быстро освоил материал и начал помогать коллегам на работе, начальство заметило и повысило ЗП."
💬 "Единственный курс, который стоит очень дешево по сравнению с тем, что получаешь после прохождения."
🎥 Видео-отзывы: 1 поток, 2 поток, 3 поток, отзывы-скриншоты.
🍒 Вишенка на торте: Официальный сертификат о доп образовании и возможность получить налоговый вычет 🎓
Не откладывайте на потом — заполните анкету предзаписи уже сегодня! 📋
Бронируй место пока не поздно 👍🏻
Если есть вопросы, пишите в поддержку — вам с радостью ответят! 💬
#оптимизация #курс #предзапись
Канал Oracle Developer | Чатик 💬
У меня для вас отличные новости! 🎉
Открыта анкета предзаписи на мой обновленный курс "Оптимизация Oracle SQL. Основы" - 5-й поток! 🎓
И чтобы вы не думали, что это просто слова, я прикрепил аудио с отзывами от ребят, которые уже прошли обучение. Послушайте сами — они рассказывают, почему стоит записаться на курс и пройти его 🎧
Почему нужно записаться прямо сейчас?
🔸 Мест всего 15 — я делаю акцент на индивидуальной работе с каждым участником. В прошлый раз желающих было более 50 человек, так что места разлетелись очень быстро. 🚀
🔸 Анкета предзаписи будет открыта ровно на неделю! ⏳
О курсе
🔥 Продолжительность: 3 месяца основного курса + 1 месяц поддержки после прохождения.
🔥 Обновление: внесено более 30 правок и дополнений для повышения эффективности обучения.
🔥 Практика: ещё больше практических заданий, которые можно выполнять в свободное время.
🔥 Формат: видео-лекции на обучающей платформе, выполнение ДЗ, еженедельные встречи в Zoom для обсуждения вопросов и разбор кейсов.
🔥 Время в неделю: ~8 часов, включая занятия и выполнение заданий.
🔥 Стенд для практики: предоставляется доступ к Oracle 19c.
Цели курса
🎯 Довести вас до уровня уверенного специалиста, способного решать 80-90% типовых проблем с оптимизацией SQL-запросов и успешно проходить собеседования на позиции с ЗП от 300К.
🔹 Научиться находить и решать проблемы в PROD среде.
🔹 Научиться писать сразу оптимальные запросы.
🔹 Успешно проходить блок по оптимизации на собеседованиях.
🔹 Систематизировать знания и уверенно расти по карьерной лестнице.
Содержание курса
1️⃣ Выявление проблемных запросов — методы поиска и диагностики проблемных SQL.
2️⃣ Чтение и понимание планов запросов — как получать и интерпретировать планы выполнения.
3️⃣ Анализ планов запросов — как правильно читать и анализировать планы в Oracle.
4️⃣ Решение проблем — методы поиска проблем в SQL и способы их устранения.
5️⃣ Внесение изменений — практика оптимизации в базах данных OLTP и DWH системах.
🎁 Бонусы
Секреты работы с DWH, адаптивная оптимизация, статистика, трассировка оптимизатора и многое другое.
Блок для успешного прохождения собеседований и психология карьерного роста
🔸 Продвижение по карьерной лестнице внутри компании.
🔸 Рекомендации для успешного взятия самых сладких вакансий.
🔸 Зарубежный рынок, особенности и советы.
🔸 Как преодолеть препятствия на пути к роли ТимЛида.
Почему стоит выбрать этот курс?
✅ Практический опыт с первого урока.
✅ Реальные кейсы и сценарии из реальной жизни.
✅ Индивидуальная поддержка и внимание к каждому участнику.
✅ Ускоренное обучение с ментором.
✅ Увеличение зарплаты через смену работы или рост в текущей компании.
Отзывы участников
💬 "За две недели получил несколько офферов и через месяц вышел на позицию почти x2 от предыдущей."
💬 "Окупил курс во время обучения в первый же месяц. Сейчас мой доход составляет 500К и выше."
💬 "Благодаря практике быстро освоил материал и начал помогать коллегам на работе, начальство заметило и повысило ЗП."
💬 "Единственный курс, который стоит очень дешево по сравнению с тем, что получаешь после прохождения."
🎥 Видео-отзывы: 1 поток, 2 поток, 3 поток, отзывы-скриншоты.
🍒 Вишенка на торте: Официальный сертификат о доп образовании и возможность получить налоговый вычет 🎓
Не откладывайте на потом — заполните анкету предзаписи уже сегодня! 📋
Бронируй место пока не поздно 👍🏻
Если есть вопросы, пишите в поддержку — вам с радостью ответят! 💬
#оптимизация #курс #предзапись
Канал Oracle Developer | Чатик 💬
Почему код начинает снова тормозить спустя некоторое время после оптимизации?
Друзья, всем привет! 👋
Вы наверняка сталкивались с ситуацией, когда после тщательной оптимизации система работает шустро, пользователи довольны, а вы можете выдохнуть. Но проходит некоторое время — неделя, месяц, полгода — и всё возвращается на круги своя: те же тормоза, жалобы и срочные звонки от начальства. Что же происходит? 🤔
Основные причины "тормозов":
1️⃣ Изначально некорректно написанный код с багами 🐞
Почему так происходит?
🔹 Недостаток опыта: разработчик мог быть новичком или не обладать достаточными знаниями в области оптимизации Oracle. В результате код содержит неэффективные алгоритмы и ошибки.
🔹 Сжатые сроки разработки: давление со стороны бизнеса или менеджмента может привести к тому, что код пишется наспех, без должного тестирования и оптимизации.
🔹 Отсутствие код-ревью и стандартов: без проверки кода коллегами и отсутствия общих стандартов качества легко пропустить баги и неэффективные решения.
Как справиться?
🔹 Провести аудит кода: регулярно анализируйте существующий код на наличие ошибок и неэффективных участков. Используйте инструменты статического анализа.
🔹 Рефакторинг: исправляйте и оптимизируйте проблемные места. Это может потребовать времени, но результат окупится повышением производительности.
🔹 Обучение: инвестируйте в повышение своей квалификации разработчика.
🔹 Внедрение процессов код-ревью: это поможет выявлять ошибки на ранних стадиях и повышать общий уровень качества кода.
2️⃣ Рост объёма данных 📈
С течением времени данные накапливаются, и запросы, которые отлично работали на небольших объёмах, начинают испытывать трудности. Индексы могут терять эффективность, планы запросов меняются, и вот уже некогда быстрый отчёт выполняется в разы дольше.
3️⃣ Изменения в бизнес-логике 🔄
Добавление новых функций, изменение алгоритмов, новые отчёты — всё это влияет на нагрузку системы. Разработчики могут внедрять новые запросы без учёта оптимизации, что постепенно "засоряет" систему.
4️⃣ Обновления ПО и конфигураций 🛠
Обновление версии Oracle, патчи, изменения настроек сервера — всё это может влиять на работу оптимизатора и производительность системы в целом.
5️⃣ Устаревшая статистика 📊
Статистика данных устаревает, и оптимизатор начинает строить неэффективные планы выполнения. Регулярное обновление статистики — важный аспект поддержания производительности.
6️⃣ Фрагментация и проблемы с хранением данных 🗄
Фрагментация индексов, таблиц, заполнение дискового пространства — эти технические моменты могут негативно сказываться на быстродействии.
Что делать?
🔹 Мониторинг и профилактика: регулярное отслеживание производительности системы, использование инструментов мониторинга (AWR, ASH, OEM) для раннего выявления проблем.
🔹 Плановые оптимизации: не ждать, пока всё "сломается", а проводить периодические ревизии наиболее критичных запросов и процессов.
🔹 Обновление статистики: автоматизировать сбор и обновление статистики, чтобы оптимизатор всегда имел актуальные данные.
🔹 Анализ изменений: перед внедрением новых функций или изменений тщательно анализировать их влияние на систему.
🔹 Обучение: повышать квалификацию разработчика и DBA в области оптимизации, чтобы вы и ваше начальство понимали важность производительности.
Заключение
Оптимизация — это не разовое мероприятие, а постоянный процесс. Мир не стоит на месте: данные растут, бизнес меняется, технологии развиваются. Чтобы система оставалась производительной, необходимо постоянно уделять внимание её здоровью и качеству кода. 🩺 Этому я и учу у себя на курсе по оптимизации Oracle SQL.
Бронируй место пока не поздно 👍🏻
А как вы справляетесь с повторяющимися проблемами производительности? Делитесь опытом в чатике 💬
#оптимизация #производительность #Oracle
Канал Oracle Developer | Чатик 💬
Друзья, всем привет! 👋
Вы наверняка сталкивались с ситуацией, когда после тщательной оптимизации система работает шустро, пользователи довольны, а вы можете выдохнуть. Но проходит некоторое время — неделя, месяц, полгода — и всё возвращается на круги своя: те же тормоза, жалобы и срочные звонки от начальства. Что же происходит? 🤔
Основные причины "тормозов":
1️⃣ Изначально некорректно написанный код с багами 🐞
Почему так происходит?
🔹 Недостаток опыта: разработчик мог быть новичком или не обладать достаточными знаниями в области оптимизации Oracle. В результате код содержит неэффективные алгоритмы и ошибки.
🔹 Сжатые сроки разработки: давление со стороны бизнеса или менеджмента может привести к тому, что код пишется наспех, без должного тестирования и оптимизации.
🔹 Отсутствие код-ревью и стандартов: без проверки кода коллегами и отсутствия общих стандартов качества легко пропустить баги и неэффективные решения.
Как справиться?
🔹 Провести аудит кода: регулярно анализируйте существующий код на наличие ошибок и неэффективных участков. Используйте инструменты статического анализа.
🔹 Рефакторинг: исправляйте и оптимизируйте проблемные места. Это может потребовать времени, но результат окупится повышением производительности.
🔹 Обучение: инвестируйте в повышение своей квалификации разработчика.
🔹 Внедрение процессов код-ревью: это поможет выявлять ошибки на ранних стадиях и повышать общий уровень качества кода.
2️⃣ Рост объёма данных 📈
С течением времени данные накапливаются, и запросы, которые отлично работали на небольших объёмах, начинают испытывать трудности. Индексы могут терять эффективность, планы запросов меняются, и вот уже некогда быстрый отчёт выполняется в разы дольше.
3️⃣ Изменения в бизнес-логике 🔄
Добавление новых функций, изменение алгоритмов, новые отчёты — всё это влияет на нагрузку системы. Разработчики могут внедрять новые запросы без учёта оптимизации, что постепенно "засоряет" систему.
4️⃣ Обновления ПО и конфигураций 🛠
Обновление версии Oracle, патчи, изменения настроек сервера — всё это может влиять на работу оптимизатора и производительность системы в целом.
5️⃣ Устаревшая статистика 📊
Статистика данных устаревает, и оптимизатор начинает строить неэффективные планы выполнения. Регулярное обновление статистики — важный аспект поддержания производительности.
6️⃣ Фрагментация и проблемы с хранением данных 🗄
Фрагментация индексов, таблиц, заполнение дискового пространства — эти технические моменты могут негативно сказываться на быстродействии.
Что делать?
🔹 Мониторинг и профилактика: регулярное отслеживание производительности системы, использование инструментов мониторинга (AWR, ASH, OEM) для раннего выявления проблем.
🔹 Плановые оптимизации: не ждать, пока всё "сломается", а проводить периодические ревизии наиболее критичных запросов и процессов.
🔹 Обновление статистики: автоматизировать сбор и обновление статистики, чтобы оптимизатор всегда имел актуальные данные.
🔹 Анализ изменений: перед внедрением новых функций или изменений тщательно анализировать их влияние на систему.
🔹 Обучение: повышать квалификацию разработчика и DBA в области оптимизации, чтобы вы и ваше начальство понимали важность производительности.
Заключение
Оптимизация — это не разовое мероприятие, а постоянный процесс. Мир не стоит на месте: данные растут, бизнес меняется, технологии развиваются. Чтобы система оставалась производительной, необходимо постоянно уделять внимание её здоровью и качеству кода. 🩺 Этому я и учу у себя на курсе по оптимизации Oracle SQL.
Бронируй место пока не поздно 👍🏻
А как вы справляетесь с повторяющимися проблемами производительности? Делитесь опытом в чатике 💬
#оптимизация #производительность #Oracle
Канал Oracle Developer | Чатик 💬
This media is not supported in your browser
VIEW IN TELEGRAM
Заглянем за ширму подготовки к курсу
Я уже рассказывал, чем я занимаюсь в свободное время по выходным.
На этот раз решил непосредственно показать процесс монтажа 🎥
Да, вот так, шаг за шагом, вырезая всякие охи вздохи, слова паразиты и прочую муть, чтобы ребята могли смотреть без "вытекания крови из ушей" 😆 Процесс не быстрый, но с каждым разом получается все лучше и лучше.
По-хорошему, надо бы переснять ранние ролики на Ютубе. А то у меня волосы дыбом встают от раннего творчества 😁
Всем отличного дня!
P.S. Ребята кто уже заполнил анкету предзаписи, наберитесь терпения, саппорт не успевает обрабатывать заявки. До вас обязательно доберемся 🙏🏻
#оптимизация #производительность #Oracle
Канал Oracle Developer | Чатик 💬
Я уже рассказывал, чем я занимаюсь в свободное время по выходным.
На этот раз решил непосредственно показать процесс монтажа 🎥
Да, вот так, шаг за шагом, вырезая всякие охи вздохи, слова паразиты и прочую муть, чтобы ребята могли смотреть без "вытекания крови из ушей" 😆 Процесс не быстрый, но с каждым разом получается все лучше и лучше.
По-хорошему, надо бы переснять ранние ролики на Ютубе. А то у меня волосы дыбом встают от раннего творчества 😁
Всем отличного дня!
P.S. Ребята кто уже заполнил анкету предзаписи, наберитесь терпения, саппорт не успевает обрабатывать заявки. До вас обязательно доберемся 🙏🏻
#оптимизация #производительность #Oracle
Канал Oracle Developer | Чатик 💬
Как повысить квалификацию за счёт компании
Павел Долганов
Как попасть к нам на курсы за счет компании и ускорить свой карьерный рост?🚀
Друзья, всем привет! 👋
В новом выпуске подкаста Паша, наш опытный куратор, делится уникальными советами о том, как убедить руководство вашей компании инвестировать в ваше профессиональное развитие.
Вы узнаете
🔸почему обучение сотрудников выгодно для бизнеса 💼;
🔸как грамотно аргументировать необходимость курсов;
🔸какие реальные кейсы помогут убедить начальство 📊.
🔸Паша также расскажет о возможностях корпоративного обучения и предоставит полезные материалы для подготовки к переговорам с руководством.
🎙 Этот выпуск станет вашим помощником на пути к профессиональному росту и повышению квалификации.
Тем более, если вы хотите попасть на пятый поток по Оптимизации 😉
Пишите суппорту, он ответит на все ваши вопросы.
Бронируйте место на 5й поток по Оптимизации пока не поздно ⏰
Длительность: 6 минут
Не забудьте поблагодарить Пашу за старания – это его первый аудиоподкаст 🔥
#обучение #карьера #Pavel_Dolganov
Канал Oracle Developer | Чатик 💬
Друзья, всем привет! 👋
В новом выпуске подкаста Паша, наш опытный куратор, делится уникальными советами о том, как убедить руководство вашей компании инвестировать в ваше профессиональное развитие.
Вы узнаете
🔸почему обучение сотрудников выгодно для бизнеса 💼;
🔸как грамотно аргументировать необходимость курсов;
🔸какие реальные кейсы помогут убедить начальство 📊.
🔸Паша также расскажет о возможностях корпоративного обучения и предоставит полезные материалы для подготовки к переговорам с руководством.
🎙 Этот выпуск станет вашим помощником на пути к профессиональному росту и повышению квалификации.
Тем более, если вы хотите попасть на пятый поток по Оптимизации 😉
Пишите суппорту, он ответит на все ваши вопросы.
Бронируйте место на 5й поток по Оптимизации пока не поздно ⏰
Длительность: 6 минут
Не забудьте поблагодарить Пашу за старания – это его первый аудиоподкаст 🔥
#обучение #карьера #Pavel_Dolganov
Канал Oracle Developer | Чатик 💬
Почему инвестиции в себя – лучший вклад
Павел Долганов
Почему инвестиции в обучение — лучший вклад в ваше будущее?
Друзья, всем привет! 🎙
Сегодня я хочу обсудить с вами тему, которая касается каждого из нас в профессиональной сфере. Речь пойдет об инвестициях в собственное обучение, а именно — изучении оптимизации Oracle SQL.
Многие задумываются, стоит ли вкладывать деньги в дополнительное образование, особенно если оно кажется дорогим. Я поделюсь своими размышлениями, приведу реальные ключевые слова и объясню, почему вложения в себя — это лучший вклад, который вы можете сделать.
Обсудим, почему самостоятельный поиск информации в Интернете неэффективен, поскольку инвестиции в обучение быстро окупаются и приводят к повышению по карьерной лестнице. Вы узнаете историю Алексея, Марины, Дмитрия, Сергея и Ольги, которые приняли решение инвестировать в себя и кардинально изменили свою жизнь 📈.
Не упустите шанс понять, как повысить свою ценность на рынке труда и достичь поставленных целей.
Длительность: 10 минут. На х1.5 — самое то 😉
Если выпуск был полезен, ставьте 👍🏻
Бронируйте место на 5й поток по Оптимизации пока не поздно ⏰
Не забудьте поблагодарить Пашу за старания – это его второй аудиоподкаст 🔥
#обучение #карьера #Pavel_Dolganov
Канал Oracle Developer | Чатик 💬
Друзья, всем привет! 🎙
Сегодня я хочу обсудить с вами тему, которая касается каждого из нас в профессиональной сфере. Речь пойдет об инвестициях в собственное обучение, а именно — изучении оптимизации Oracle SQL.
Многие задумываются, стоит ли вкладывать деньги в дополнительное образование, особенно если оно кажется дорогим. Я поделюсь своими размышлениями, приведу реальные ключевые слова и объясню, почему вложения в себя — это лучший вклад, который вы можете сделать.
Обсудим, почему самостоятельный поиск информации в Интернете неэффективен, поскольку инвестиции в обучение быстро окупаются и приводят к повышению по карьерной лестнице. Вы узнаете историю Алексея, Марины, Дмитрия, Сергея и Ольги, которые приняли решение инвестировать в себя и кардинально изменили свою жизнь 📈.
Не упустите шанс понять, как повысить свою ценность на рынке труда и достичь поставленных целей.
Длительность: 10 минут. На х1.5 — самое то 😉
Если выпуск был полезен, ставьте 👍🏻
Бронируйте место на 5й поток по Оптимизации пока не поздно ⏰
Не забудьте поблагодарить Пашу за старания – это его второй аудиоподкаст 🔥
#обучение #карьера #Pavel_Dolganov
Канал Oracle Developer | Чатик 💬
This media is not supported in your browser
VIEW IN TELEGRAM
AI проводит технический собес 🤖🤖🤖
Друзья, всем привет! 🎙
Несколько месяцев назад OpenAI выкатила на ограниченное количество пользователей новую фичу - голосовой помощник.
На днях, видимо, раскатили на всех. Я наконец-то, получил доступ. Применение, довольно, широкое.
"А пусть он проведет собеседование" подумал я. Причем и на английском и на русском.
С этой задачей помощник, на мой взгляд, справился на 5+.
Кстати, для тренировки разговорного английского отличная тулза 🔥 Даем указания, чего мы хотим получить от диалога и помощник им следует. Потенциал огромный.
В общем, вставил маленькую выдержку нашего общения 😉
два вопроса на русском, один на английском.
Тайминг
0:00 - промпт
0:34 - Какие методы оптимизации запросов вы используете
2:23 - Что такое план запроса
4:49 - Can you explain what indexing is
Естественно, не могу не сказать, что в нашем курсе "Оптимизация Oracle SQL" мы натаскиваем студентов на успешное прохождение блока по оптимизации на собеседованиях.
Если до сих пор, не можешь ответить на вопросы типа "чем отличается hash join от merge join", "когда индексы полезны, а когда нет", ... профукиваешь отличные вакансии или задолбался впахивать за 150К - тогда заполняй анкету предзаписи и закрой уже наконец вопросы с оптимизацией.
Обсудить в чате как Денис провалил собес у AI 😂 💬
#оптимизация #oracle #ai #Denis_Kivilev
Канал Oracle Developer | Чатик 💬
Друзья, всем привет! 🎙
Несколько месяцев назад OpenAI выкатила на ограниченное количество пользователей новую фичу - голосовой помощник.
На днях, видимо, раскатили на всех. Я наконец-то, получил доступ. Применение, довольно, широкое.
"А пусть он проведет собеседование" подумал я. Причем и на английском и на русском.
С этой задачей помощник, на мой взгляд, справился на 5+.
Кстати, для тренировки разговорного английского отличная тулза 🔥 Даем указания, чего мы хотим получить от диалога и помощник им следует. Потенциал огромный.
В общем, вставил маленькую выдержку нашего общения 😉
два вопроса на русском, один на английском.
Тайминг
0:00 - промпт
0:34 - Какие методы оптимизации запросов вы используете
2:23 - Что такое план запроса
4:49 - Can you explain what indexing is
Естественно, не могу не сказать, что в нашем курсе "Оптимизация Oracle SQL" мы натаскиваем студентов на успешное прохождение блока по оптимизации на собеседованиях.
Если до сих пор, не можешь ответить на вопросы типа "чем отличается hash join от merge join", "когда индексы полезны, а когда нет", ... профукиваешь отличные вакансии или задолбался впахивать за 150К - тогда заполняй анкету предзаписи и закрой уже наконец вопросы с оптимизацией.
Обсудить в чате как Денис провалил собес у AI 😂 💬
#оптимизация #oracle #ai #Denis_Kivilev
Канал Oracle Developer | Чатик 💬