Получи случайную криптовалюту за регистрацию!

Oracle Developer👨🏻‍💻

Логотип телеграм канала @oracle_dbd — Oracle Developer👨🏻‍💻 O
Логотип телеграм канала @oracle_dbd — Oracle Developer👨🏻‍💻
Адрес канала: @oracle_dbd
Категории: Технологии
Язык: Русский
Страна: Россия
Количество подписчиков: 2.84K
Описание канала:

ТОП канал о разработке в СУБД Oracle:
SQL, PL/SQL, оптимизация, архитектура, сертификации и многое другое...
Автор канала: Кивилёв Денис @denis_dbd
Сотрудничество, обучение, вопросы, мнения - пишите.
Youtube-канал: https://www.youtube.com/c/OracleDBD

Рейтинги и Отзывы

4.50

2 отзыва

Оценить канал oracle_dbd и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

1

4 звезд

1

3 звезд

0

2 звезд

0

1 звезд

0


Последние сообщения 11

2021-08-24 11:00:02
Задача:
Дана функция is_xxx_has. Функционал простой. Возвращает:
“true” - если в таблице xxx_tab есть заданное в параметре p_count_rows количество строк.
“false” - если строк не хватает.

create or replace function is_xxx_has(p_count_rows number) return boolean is
v_cnt number;
begin
select count(*) cnt into v_cnt
from xxx_tab;

if v_cnt >= p_count_rows then
return true;
else
return false;
end if;
end;
/

Можно ли как то её переписать? Сделать более оптимальной и лаконичной?

Если основная часть задачи показалось простой, то вот доп условие:
таблица xxx_tab - меняется редко.

Как всегда разбор решения в четерг.

#задача
589 views08:00
Открыть/Комментировать
2021-08-23 11:00:18
Друзья, всем привет!

Для меня сегодня очень радостный день. Я наконец-то, выношу на свет моё детище - курс “Oracle PL/SQL.Основы”

Это уникальная возможность стартануть в разработке на Oracle PL/SQL с опытным наставником.

Кому может быть полезен курс: QA-инженерам, разработчикам, аналитикам и всем, кто хочет начать программировать на PL/SQL.

При написании курса я ставил перед собой грандиозную задачу:
По окончанию курса студент должен уметь читать чужой и писать свой PL/SQL-код начального/среднего уровней.

В течении курса, вы шаг за шагом будете создавать API на PL/SQL для платежной системы KiviWallet. Здесь можно посмотреть пример. Думаете нереально? Еще как реально!

Вместе мы пройдем этот путь. Помимо закрытого ТГ-канала будет еще и еженедельный созвон в Zoom, где можно будет задавать вопросы.

Старт: 13 сентября
Окончание: 1 декабря

Подробности, программу, отзывы вы можете посмотреть на промо-странице курса.

Не стесняйтесь задавать вопросы в личку.

Всем хорошей недели!

#обучение #plsql
610 views08:00
Открыть/Комментировать
2021-08-20 11:00:16
Друзья, всем привет!
Сорян за тишину, я тут приболел…

На следующей неделе, я представлю мой авторский онлайн курс “Oracle PL/SQL.Основы”

Что стоит за его подготовкой?
130 страниц сценария для видео, 184 слайда, 23 видео-лекции и 20 видео с практикой, тысячи строк кода для примеров и домашних заданий, более 30 часов лекций по этой теме для сотрудников, и наконец, 1.5 года личной жизни.

Зачем я написал эти цифры? Что бы вы понимали, что это не сырой полуфабрикат инфо цыган, который был сляпан вечерком в кальянной.
В него я вложил свою душу, опыт, знания и время.

Помните преподов в универе или на официальных оракловых курсах?

Тот подход совсем не по мне. Я старался сделать курс таким, чтобы любой человек смог въехать в тему разработки на PL/SQL. И мне, в отличии от тех преподов, не всё равно разберетесь вы или нет.

Моя основная задача: чтобы вы могли читать чужой и писать свой PL/SQL-код начального уровня. И это вполне достижимо!

В понедельник будет более подробная информация
Всем хороших выходных!
516 views08:00
Открыть/Комментировать
2021-08-05 17:00:06 Команда delete не сбрасывает HWM до нуля. HWM остается на прежнем уровне.
Получается, что в таблице нет данных, но HWM находится "на 3х метрах от земли". И СУБД нужно дойти именно до неё при full table scan.
Относительно нашего примера, как будто в таблице все еще оооочень много строк.

Наверное, немного сумбурное объяснение получилось.

Далее, интервьюер обычно задает вопросы:
1. Как нужно удалять данные, чтобы избежать этой ситуации?
Для полного удаления данных используется DDL-команда truncate (усечение), она как раз сбрасывает hwm на “уровень земли”. При этом молниеносно удаляет данные.

2. Как можно сбросить HWM?
Способов несколько. Тот же truncate, если данных нет. Через пересоздание таблицы - CTAS. Через команды перестроения таблицы/управления местом - shrink, move.

В комментариях @ex_electric таки запостил ответ на задачку

Порой, непросто объяснить сложную вещь в одном посте. Дайте, пожалуйста, обратную связь

#решениезадачи #truncate #hwm
628 viewsedited  14:00
Открыть/Комментировать
2021-08-05 17:00:06
Задача: долгое выполнение select count из пустой таблицы. см пост вторника.

Судя по опросу, этот вопрос задают не так уж и часто. Может мне везло

Решение:
Как может на пустой таблице долго выполняться запрос select count(*) ведь строк в ней нет? Собственно, чего считать то?

Такой эффект возможен, когда до этого таблица была большой и затем из нее были удалены все строки. Причем командой delete.

При подсчете count (full table scan) СУБД обязательно должна дойти до HWM (high water mark) сегмента = объекта.

Попытаюсь на примере наводнения объяснить:
1. Представьте дом до наводнения - это аналогия с пустой таблицей.
2. Во время наводнения уровень воды поднимается на сколько то метров от земли - это таблица заполненная данными.
3. После того как наводнение ушло, на доме осталась отметка максимального уровня воды как на картинке (HWM) - аналогия с удалением данных из таблицы командой delete.

Продолжение
613 viewsedited  14:00
Открыть/Комментировать
2021-08-03 11:00:19
Долгое выполнение count в пустой таблице

На этот раз обойдемся без email’ов
Эту задачу дают почти на каждом собеседовании на Senior Oracle DBD.
—--
Вы выполняете запрос:
select count(*) from some_table;

Спустя 5 минут вам возвращается результат. Он равен “0”.

В чем причина долгого выполнения?
—-

Комментарии закрываю, в этот раз без спойлеров. Лучше создам опрос

Ответ, как всегда, в четверг

#задача
516 viewsedited  08:00
Открыть/Комментировать
2021-08-02 11:00:38 С одной стороны, это не забота разработчика, из кровавого энтерпрайза, думать о лицензиях и стоимости. С другой стороны, было бы неплохо представлять, в какую "копейку" все это обходится.
Сразу становится понятно, почему стартапы/игроки поменьше выбирают бесплатный PostgreSQL. И я, даже, не рассматриваю вопрос об импортозамещении.

С учетом этого, прикиньте, кто может позволить себе купить лицензию на Oracle, и где вам придется работать
Банки, крупные страховые, платежные системы, ритейловые сети, опсосы и т.п.
Написано ооочень много PL/SQL-кода, который нужно поддерживать и развивать. Без работы не останетесь

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

На этой позитивной ноте, желаю всем хорошей трудовой недели!
535 views08:00
Открыть/Комментировать
2021-08-02 11:00:38
Друзья, всем привет!

Вчера занимался некоторыми изысканиями. Это меня привело на страничку с продажей лицензий СУБД Oracle.

Я всегда знал, что стоимость, мягко говоря, заоблачная. Но тут на глаза попались цифры
Для калькуляции возьму стоимость процессорных лицензий. На мой взгляд, наиболее распространенный тип лицензирования.

Oracle 12 EE - 1 CPU лицензия - 4.2М рублей или 57К$

В одной из организаций, которую я не буду называть, был сервер с 512 CPU.
Умножим: 512 * 4.2M = 2 150 400 000 руб = 28 000 000 $ в год.

Это один prod сервер. А есть другие БД и среды.

Предупреждая вопросы про ядра: При использовании многоядерных систем (для версии Enterprise Edition) в расчет берется количество ядер, т.е. каждое процессорное ядро выступает как отдельный процессор. Количество процессоров рассчитывается с учетом лицензионного коэффициента, зависящего от типа процессора.

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

Продолжение
542 viewsedited  08:00
Открыть/Комментировать
2021-07-29 17:00:03 Задача: чтение данных с диска и отправка email с соблюдением некоторых условий.

Пожалуй, не один из постов не вызывал столь бурную реакцию нашего мини-сообщества Досталось и мне, за отсутствие точного ТЗ, и порочной концепции реализации функционала в БД.
"Чувствую, что автор просто совета просит)) " - это запомнилось особенно.
Ну и хорошо, юмор помогает жить

Решение:
Как я уже много раз писал, любую задачу можно решить разными способами.
Особо прозорливые подписчики уже догадались, что задачка была не просто так задана. Да, одним из способов её решения являются как раз те самые конвейерные или pipelined-функции.
Кратко: по ходу обработки каждой строки по конвейеру мы можем выполнять различные манипуляции и отправлять "условный email", не ожидая загрузки всего объема входных данных из 10М. Подробное объяснение, смотрите в видео-уроке из прошлого поста.

Многообразие систем, решений и Legacy-кода огромно. Возможно, на очередном месте работы вы встретитесь именно с таким методом работы с данными и внешними системами.

Все больше занимаясь разработкой на среднем слое, я лично для себя понял, что такого рода задачи должны решаться именно в приложениях среднего слоя. Подход с жирной серверной логикой в БД, взаимодействие с внешним миром из БД - устаревает. Тема холиварная ))

Кстати, в сентябре будет запуск курса “Oracle PL/SQL.Основы”. Материал готов Скоро будет анонс. Кому интересно - ничего не планируйте на сентябрь-ноябрь

Всем хорошего дня!

#решениезадачи #функции #pipelined
531 views14:00
Открыть/Комментировать
2021-07-28 14:00:51 Pipelined(конвейерные) - функции

Друзья, всем привет!
У меня для вас свежее видео

В этот раз копнул в сторону pipelined или конвейерных PL/SQL-функций.
Что это такое? Когда использовать? Как можно ускорить выполнение ваших программ и сделать их более эффективными?
Ответы на эти вопросы смотрите в уроке.

Тема может показаться не простой. Поэтому я постарался сопроводить урок обилием примеров. Надеюсь, понравится.

Приятного просмотра - 15 минут.

#видео #plsql #функции #pipelined
581 views11:00
Открыть/Комментировать