Как читать план запроса Oracle (последовательность выполнения шагов)

Поделиться
HTML-код
  • Опубликовано: 17 авг 2024
  • В этом уроке я рассмотрю, основы чтения планов запросов в Oracle. Как правильно читать последовательность шагов выполнения в плане. Чего не будет - разбора способа доступа к таблицам, индексам, соединения таблиц и другие тонкости. Это отдельные большие темы.
    Отличный урок, чтобы начать читать планы запросов в Oracle.
    Репозиторий к уроку - github.com/kiv...
    Содержание:
    0:00 - Введение
    0:47 - Что такое план запроса
    1:28 - Тестовый запрос
    1:59 - Получаем план выполнения
    1:19 - Основные блоки плана запроса
    3:10 - Анализ дерева плана выполнения
    5:39 - Анализ плана запроса в таблице
    7:23 - Анимация в PL/SQL Developer
    7:35 - Дополнительный пример плана запроса
    7:40 - Заключение
    -------
    Подписывайтесь на мой телеграм-канал: t.me/oracle_dbd
    Все о разработке в СУБД "Oracle". Теория, практика, SQL, PL/SQL, задачки, сертификация и многое другое.
    Если вам нужны консультации, есть вопросы, хотите пройти обучение, то пишите в телеграм - t.me/denis_dbd
  • НаукаНаука

Комментарии • 21

  • @botirno3256
    @botirno3256 3 года назад +20

    Наконец то в ютубе появились уроки без индийского акцента!
    Спсб!

    • @OracleDBD
      @OracleDBD  3 года назад +12

      Если соскучитесь, могу добавить в начале "Велькам ту Ораакль" =)

  • @genagride
    @genagride 3 года назад +1

    Спасибо за Ваши видеоуроки!

    • @user-ii9xe4pu6x
      @user-ii9xe4pu6x 3 года назад

      У него не видеоуроки, у него видосы.

  • @STRIPPEDSTAR
    @STRIPPEDSTAR 7 дней назад

    Спасибо что ты не индус😅 И обьясняешь доходчиво)

  • @user-do4nq3fr6t
    @user-do4nq3fr6t 2 года назад +3

    мужик, почему раньше не было в рекомендациях

    • @OracleDBD
      @OracleDBD  2 года назад

      сам в шоке! ))

  • @kidsgame5274
    @kidsgame5274 Год назад +4

    Нихуя непонятно , но очень интересно

  • @amz2mov
    @amz2mov 3 года назад +3

    access читается, как "Эксэс".

    • @OracleDBD
      @OracleDBD  3 года назад +8

      English tutor так и говорит, Денис, правильно не «саццесс», а «саксесс». Все никак не могу запомнить. Дело в том, что английский не мой родной язык. Не всё дается с первого раза. Я и по-русски иногда могу ошибиться. Слава Богу, что в СНГ всегда есть люди, которые ткнут тебя мордой в ошибку и дадут точку роста. Надеюсь, сообщество поймет и простит. Не уверен, что не буду так больше делать. Если, что пишите еще =)

  • @Dumkras_old
    @Dumkras_old 2 года назад

    Не понятно как придти к открытому плану запроса... если сделать последовательно селект и select * from table(dbms_xplan.display_cursor('','','ALLSTATS ADVANCED LAST')); - выводит ерунду, а на видео как будто таблицу открыли... можете объяснить?) выдает ошибку cannot fetch plan for SQL_ID - CHILD_NUMBER: 2

    • @OracleDBD
      @OracleDBD  2 года назад

      какая минута?

    • @Dumkras_old
      @Dumkras_old 2 года назад

      @@OracleDBD 1:59. Нашел проблему, если сразу запускать команды которые у Вас, выдает ошибку, которую скидывал выше - потому, что идут фоновые процессы еще, поэтому, нужно брать sql_id в ручную и подставлять

    • @OracleDBD
      @OracleDBD  2 года назад

      @@Dumkras_old да, если выполняете в IDE могут быть сайдэффекты.

  • @yuriseid3504
    @yuriseid3504 3 года назад +1

    5:45 Почему 1-й шаг с 4-го(*) начинается и за ним 2-й с 3-го(*) ?!

    • @OracleDBD
      @OracleDBD  3 года назад

      Если посмотреть представление в виде дерева, то может быть более понятней. Это самый левый лист дерева.

  • @slogic10
    @slogic10 2 года назад +2

    По факту нихрена не понятно, кроме стратегии обхода.

    • @OracleDBD
      @OracleDBD  2 года назад

      Спасибо за конструктивную критику ))

    • @slogic10
      @slogic10 Год назад

      @@OracleDBD Коснструктив моде он. Я бы этот ролик удалил, и взял бы с реальным проблемным запросом (само собой чтобы дерево было не сильно глубоким). В котором заодно ненавязчиво и было бы разобрано это самое чтение. Заодно и польза была бы - как решить проблему. А так вот непонятно, на кой черт мне эти предикаты. Почему они делятся на аксесс и фильтр и прочее, когда результат всегда булево значение. Почему на косты не надо смотреть?

    • @OracleDBD
      @OracleDBD  Год назад

      @@slogic10 уже более конструктивней. То, что вы описываете это уже анализ проблемного запроса. Видео же на другую тему. И то уложиться в 10 минут и выдать от корки до корки всю информацию невозможно. Люди годами изучают эту область. Ожидание не совпало с реальностью от туда и разочарование - понимаю, бывает.

  • @user-kh6sr8tp1m
    @user-kh6sr8tp1m Год назад

    2:03 а строка plan hash value - что означает? Что этот запрос уже в памяти захеширован?