Учебно-практическое пособие москва 2017 ббк


EXPLAIN ( COSTS OFF ) SELECT * FROM aircrafts



Pdf көрінісі
бет220/243
Дата21.07.2022
өлшемі3,05 Mb.
#147663
түріУчебно-практическое пособие
1   ...   216   217   218   219   220   221   222   223   ...   243
Байланысты:
Язык SQL. Базовый курс

EXPLAIN ( COSTS OFF ) SELECT * FROM aircrafts;
QUERY PLAN
-----------------------
Seq Scan on aircrafts
(1 строка)
Сформируем запрос с предложением WHERE:
EXPLAIN SELECT * FROM aircrafts WHERE model ~ 'Air';
QUERY PLAN
---------------------------------------------------------
Seq Scan on aircrafts (cost=0.00..1.11 rows=1 width=52)
Filter: (model ~ 'Air'::text)
(2 строки)
Поскольку наложено дополнительное условие на строки, выбираемые из таблицы,
то ниже узла плана, отвечающего за их последовательную выборку, добавляется еще
один узел, описывающий критерий отбора строк.
231


Filter: (model ~ 'Air'::text)
Поскольку наложено условие отбора строк, то оценка их числа изменилась с 9 на 1. В
данном случае планировщик неточно оценил число выбираемых строк — фактически
их будет три.
Обратите внимание, что по своей форме вывод команды EXPLAIN также является вы-
боркой, поэтому в конце выборки, как обычно, выводится информация о числе строк
в ней, т. е. в дереве плана. Это не число строк, которые будут выбраны из таблицы. В
данном случае это
(2 строки)
Теперь усложним запрос, добавив в него сортировку данных:
EXPLAIN SELECT * FROM aircrafts ORDER BY aircraft_code;
QUERY PLAN
----------------------------------------------------------------
Sort (cost=1.23..1.26 rows=9 width=52)
Sort Key: aircraft_code
-> Seq Scan on aircrafts (cost=0.00..1.09 rows=9 width=52)
(3 строки)
Дополнительный узел обозначен на плане символами «

>
».
Хотя по столбцу aircraft_code создан индекс (для поддержки первичного ключа), пла-
нировщик предпочел не использовать этот индекс, а прибегнуть к последовательно-
му сканированию (Seq Scan) таблицы, о чем говорит нам нижний узел плана. На верх-
нем узле выполняется сортировка выбранных строк. Поскольку для выполнения сор-
тировки требуется время, отличное от нуля, то этот факт и отражен в первой числовой
оценке — 1,23. Это оценка времени, которое потребуется для того, чтобы приступить
к выводу отсортированных строк. Но времени непосредственно на саму сортировку
потребуется меньше: ведь в оценку 1,23 входит и оценка стоимости получения вы-
борки — 1,09.
Когда таблица очень маленькая, то обращение к индексу не даст выигрыша в скоро-
сти, а лишь добавит к операциям чтения страниц, в которых хранятся строки таблиц,
еще и операции чтения страниц с записями индекса.
Обратимся к таблице «Бронирования» (bookings) для иллюстрации


Достарыңызбен бөлісу:
1   ...   216   217   218   219   220   221   222   223   ...   243




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет