Как читать план запроса 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 Наука
Наконец то в ютубе появились уроки без индийского акцента!
Спсб!
Если соскучитесь, могу добавить в начале "Велькам ту Ораакль" =)
Спасибо за Ваши видеоуроки!
У него не видеоуроки, у него видосы.
Спасибо что ты не индус😅 И обьясняешь доходчиво)
мужик, почему раньше не было в рекомендациях
сам в шоке! ))
Нихуя непонятно , но очень интересно
access читается, как "Эксэс".
English tutor так и говорит, Денис, правильно не «саццесс», а «саксесс». Все никак не могу запомнить. Дело в том, что английский не мой родной язык. Не всё дается с первого раза. Я и по-русски иногда могу ошибиться. Слава Богу, что в СНГ всегда есть люди, которые ткнут тебя мордой в ошибку и дадут точку роста. Надеюсь, сообщество поймет и простит. Не уверен, что не буду так больше делать. Если, что пишите еще =)
Не понятно как придти к открытому плану запроса... если сделать последовательно селект и select * from table(dbms_xplan.display_cursor('','','ALLSTATS ADVANCED LAST')); - выводит ерунду, а на видео как будто таблицу открыли... можете объяснить?) выдает ошибку cannot fetch plan for SQL_ID - CHILD_NUMBER: 2
какая минута?
@@OracleDBD 1:59. Нашел проблему, если сразу запускать команды которые у Вас, выдает ошибку, которую скидывал выше - потому, что идут фоновые процессы еще, поэтому, нужно брать sql_id в ручную и подставлять
@@Dumkras_old да, если выполняете в IDE могут быть сайдэффекты.
5:45 Почему 1-й шаг с 4-го(*) начинается и за ним 2-й с 3-го(*) ?!
Если посмотреть представление в виде дерева, то может быть более понятней. Это самый левый лист дерева.
По факту нихрена не понятно, кроме стратегии обхода.
Спасибо за конструктивную критику ))
@@OracleDBD Коснструктив моде он. Я бы этот ролик удалил, и взял бы с реальным проблемным запросом (само собой чтобы дерево было не сильно глубоким). В котором заодно ненавязчиво и было бы разобрано это самое чтение. Заодно и польза была бы - как решить проблему. А так вот непонятно, на кой черт мне эти предикаты. Почему они делятся на аксесс и фильтр и прочее, когда результат всегда булево значение. Почему на косты не надо смотреть?
@@slogic10 уже более конструктивней. То, что вы описываете это уже анализ проблемного запроса. Видео же на другую тему. И то уложиться в 10 минут и выдать от корки до корки всю информацию невозможно. Люди годами изучают эту область. Ожидание не совпало с реальностью от туда и разочарование - понимаю, бывает.
2:03 а строка plan hash value - что означает? Что этот запрос уже в памяти захеширован?