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


EXPLAIN SELECT r.flight_no



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

EXPLAIN SELECT r.flight_no,
r.departure_airport_name,
r.arrival_airport_name,
a.model
FROM routes r
JOIN aircrafts a ON r.aircraft_code = a.aircraft_code
ORDER BY flight_no;
QUERY PLAN
-------------------------------------------------------------------------
Sort (cost=24.25..24.31 rows=21 width=124)
Sort Key: r.flight_no
-> Hash Join (cost=1.20..23.79 rows=21 width=124)
Hash Cond: (r.aircraft_code = a.aircraft_code)
-> Seq Scan on routes r (cost=0.00..20.64 rows=464 width=108)
-> Hash (cost=1.09..1.09 rows=9 width=48)
-> Seq Scan on aircrafts a (cost=0.00..1.09 rows=9 width=48)
(7 строк)
На самом внутреннем уровне плана последовательно сканируется (Seq Scan) табли-
ца aircrafts, и формируется хеш-таблица, ключами которой являются значения ат-
рибута aircraft_code, т. к. именно по нему выполняется соединение таблиц. Затем
последовательно сканируется (Seq Scan) таблица routes, и для каждой ее строки
выполняется поиск значения атрибута aircraft_code среди ключей хеш-таблицы:
303


Глава 10. Повышение производительности
Hash Cond: (r.aircraft_code = a.aircraft_code)
Если такой поиск успешен, значит, формируется комбинированная результирующая
строка выборки.
На верхнем уровне плана сформированные строки сортируются. Обратите внимание,
что хеш-таблица создана на основе той таблицы, число строк в которой меньше, т. е.
aircrafts. Таким образом, поиск в ней будет выполняться быстрее, чем если бы
хеш-таблица была создана на основе таблицы routes.
Последний из методов соединения наборов строк — соединение слиянием (merge
join). Для иллюстрации воспользуемся простым запросом, построенным на основе
таблиц «Билеты» и «Перелеты». Он выбирает для каждого билета все перелеты, вклю-
ченные в него. Конечно, это очень упрощенный запрос, в реальной ситуации он не
представлял бы большой практической пользы, но в целях упрощения плана и повы-
шения наглядности воспользуемся им.


Достарыңызбен бөлісу:
1   ...   227   228   229   230   231   232   233   234   ...   256




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

    Басты бет