Максим Чалышев - Oracle SQL. 100 шагов от новичка до профессионала

Тут можно читать онлайн Максим Чалышев - Oracle SQL. 100 шагов от новичка до профессионала - бесплатно ознакомительный отрывок. Жанр: comp-programming, год 11. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Oracle SQL. 100 шагов от новичка до профессионала
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    11
  • ISBN:
    нет данных
  • Рейтинг:
    5/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

Максим Чалышев - Oracle SQL. 100 шагов от новичка до профессионала краткое содержание

Oracle SQL. 100 шагов от новичка до профессионала - описание и краткое содержание, автор Максим Чалышев, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
Более 300 ответов на вопросы.
Более 500 практических заданий.
Более 1000 разобранных примеров.
Учебник справочник по языку SQL.

Oracle SQL. 100 шагов от новичка до профессионала - читать онлайн бесплатно ознакомительный отрывок

Oracle SQL. 100 шагов от новичка до профессионала - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Максим Чалышев
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

1) Из таблицы AUTO извлекаются 2 строки — стоимость 3 (ограничение BMW).
2) Из таблицы по индексу извлекается 1 строка — стоимость 1.
3) Объединение извлеченных строк с помощью вложенных циклов — общая стоимость 6.
Объединенный результат — стоимость 5, извлечено 2 строки.

Простой пример демонстрации работы индексов:

Рисунок 247. План запроса без индекса

Полное сканирование таблицы (FULL), стоимость 530.

Рисунок 248. План запроса с использованием индекса

Сканирование по индексам — стоимость 3, почти в 150 раз меньше. Демонстрация эффективного использования индексов.

Доступ к данным

FULL TABLE SCAN (FTS)

Полное сканирование таблицы при поиске. Просматривается последовательно каждая строка таблицы.

INDEX LOOKUP

Просмотр значения по заданному индексу. Возвращается уникальный идентификатор ROWID, по ROWID осуществляется доступ к нужной строке таблицы.

INDEX UNIQUE SCAN

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

INDEX RANGE SCAN

Используется, когда необходимо выбрать по индексу диапазон значений, операции BETWEEN,>, <, <>,> =, <=. Или для условий равенств, например LASTDOC=10.

INDEX FULL SCAN

Полное сканирование индекса. Применяется, если все данные могут быть извлечены только с применением индекса.

FAST FULL SCAN

Быстрое сканирование. Используется при параллельном доступе. Не осуществляет сортировку считанных данных. Может применяться только тогда, когда все столбцы, участвующие в запросе, присутствуют в индексе и имеют ограничение NOT NULL.

INDEX SKIP SCAN

Используется при доступе по составному индексу.

ROWID

Самый быстрый метод доступа к данным. Используется внутренний системный идентификатор записи. Обычно применяется после индексного поиска или при явном указании в SQL-запросе значения ROWID строки данных таблицы.

JOIN

Соединение — это предикат, объединяет данные из нескольких источников данных (таблиц и представлений). Используется при извлечении данных из нескольких таблиц.

СУБД ORACLE использует три различных вида соединений:

NESTED LOOPS (NL)

Соединение таблиц с помощью вложенных циклов. Для связанной таблицы данные перебираются построчно в цикле; если таблиц несколько, то применяются вложенные циклы.

HASH JOIN (HJ)

Соединение таблиц на основе хэш-массива. Предварительно строится хэш-массив, на основании которого связываются таблицы.

CARTESIAN

Соединение с помощью Декартова произведения.

В итоге каждая строка из таблицы 1 соединяется со всеми строками таблицы 2, затем то же самое для каждой строки таблицы 2 по отношению к таблице 3, и так далее.

Операции

SORT

Если есть операции сортировки данных, которые предполагается выполнить:

ORDER BY — GROUP BY — SORT MERGE JOIN

FILTER

Отражает условия WHERE и HAVING.

VIEW

Использование в SQL-запросе представления ORACLE.

MATERIALIZED VIEW

Показывает использование в SQL-запросе материализованного представления ORACLE.

MERGE JOIN

Объединение нескольких таблиц слиянием.

JOIN

Объединение нескольких таблиц.

Важные замечания

HASH JOIN

Самый быстрый алгоритм соединения данных из нескольких источников, появился начиная с версии ORACLE 7.3, однако не является универсальным, то есть не может быть использован для любых условий соединений.

CARTESIAN

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

NESTED LOOP

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

INDEX SKIP SCAN

Существует начиная с ORACLE 9. В более ранних версиях ORACLE не использовался.

INDEX FULL SCAN

Возвращает считанные данные в отсортированном виде. Может быть неэффективен в ряде случаев.

Как правило, решение об эффективности использования принимает оптимизатор на основе собранной ранее статистики.

FULL SCAN

Если вы видите в запросе FULL SCAN с высокой стоимостью COST, следует рассмотреть план запроса, и возможно — это показание к необходимости для оптимизации запроса.

Вопросы учеников

Как составляется план запроса?

План запроса, как выполнять данный запрос, составляет оптимизатор запросов.

В чем состоит стратегия оптимизации запросов?

В том, чтобы снизить стоимость COST наиболее ресурсоемких операций.

Всегда ли FULL SCAN значит снижение производительности?

Нет, в небольших таблицах FULL SCAN как раз является оптимальным решением.

Контрольные вопросы и задания для самостоятельного выполнения

1. На какие операции следует обратить внимание при чтении плана запроса?
2. Какие операции указывают на объединение нескольких таблиц?
3. Что обозначает INDEX LOOKUP?
4. Опишите способ доступа к строке таблицы ROWID.
5. Опишите соединение HASH JOIN.

Шаг 97. Подсказки оптимизатору

Введение

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

Теория и практика

Для изменения плана запроса используется специальный механизм подсказок.

Подсказка пишется в тексте запроса, начинается /*+ и заканчивается */. Подсказка применяется только в запросе, в котором она находится, вложенные запросы требуют своих собственных подсказок.

С помощью подсказок есть возможность оптимизировать запрос с целью увеличения скорости выполнения запроса, производительности запроса.

Подсказки оптимизатора:

FULL

Подсказка FULL управляет запросом, задает оптимизатору режим полного сканирования таблиц.

ORDERED

Подсказка ORDERED подсказывает оптимизатору обращаться к таблицам в заданном порядке, в том порядке, который используется после инструкции FROM.

INDEX

Подсказка INDEX сообщает оптимизатору, что для выполнения данного запроса необходимо использовать один или несколько индексов.

ALL_ROWS

Данная подсказка позволяет настроить запрос с максимальной эффективностью.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Максим Чалышев читать все книги автора по порядку

Максим Чалышев - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Oracle SQL. 100 шагов от новичка до профессионала отзывы


Отзывы читателей о книге Oracle SQL. 100 шагов от новичка до профессионала, автор: Максим Чалышев. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x