Учебное пособие Санкт-Петербург «бхв-петербург»


EXPLAIN ( COSTS OFF ) SELECT *



Pdf көрінісі
бет227/256
Дата18.11.2022
өлшемі1.88 Mb.
#465124
түріУчебное пособие
1   ...   223   224   225   226   227   228   229   230   ...   256
sql osnovi yazika

EXPLAIN ( COSTS OFF ) SELECT *
FROM aircrafts;
QUERY PLAN
-----------------------
Seq Scan on aircrafts
(1 строка)
297


Глава 10. Повышение производительности
Сформируем запрос с предложением 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 строки)
Поскольку наложено дополнительное условие на строки, выбираемые из таблицы,
то ниже узла плана, отвечающего за их последовательную выборку, добавляется еще
один узел, описывающий критерий отбора строк.
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 строки)
298


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


Достарыңызбен бөлісу:
1   ...   223   224   225   226   227   228   229   230   ...   256




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

    Басты бет