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


EXPLAIN SELECT avg( total_amount ) FROM bookings



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

EXPLAIN SELECT avg( total_amount ) FROM bookings;
QUERY PLAN
-----------------------------------------------------------------
Aggregate (cost=4958.85..4958.86 rows=1 width=32)
-> Seq Scan on bookings (cost=0.00..4301.88 rows=262788 width=6)
(2 строки)
234


10.3 Методы формирования соединений наборов строк
Теперь обратимся к методам, которые используются для формирования соедине-
ний наборов строк. Начнем с метода
вложенного цикла
(nested loop). Для получе-
ния списка мест в салонах самолетов Airbus с указанием класса обслуживания сфор-
мируем запрос, в котором соединяются две таблицы: «Места» (seats) и «Самолеты»
(aircrafts).
EXPLAIN
SELECT a.aircraft_code, a.model,
s.seat_no, s.fare_conditions
FROM seats s
JOIN aircrafts a ON s.aircraft_code = a.aircraft_code
WHERE a.model ~ '^Air'
ORDER BY s.seat_no;
QUERY PLAN
-----------------------------------------------------------------
Sort (cost=23.28..23.65 rows=149 width=59)
Sort Key: s.seat_no
-> Nested Loop (cost=5.43..17.90 rows=149 width=59)
-> Seq Scan on aircrafts a (cost=0.00..1.11 rows=1 width=48)
Filter: (model ~ '^Air'::text)
-> Bitmap Heap Scan on seats s (cost=5.43..15.29 rows=149
width=15)
,

Recheck Cond: (aircraft_code = a.aircraft_code)
-> Bitmap Index Scan on seats_pkey (cost=0.00..5.39
rows=149 width=0)
,

Index Cond: (aircraft_code = a.aircraft_code)
(9 строк)
Узел Nested Loop, в котором выполняется соединение, имеет два дочерних узла:
внешний — Seq Scan и внутренний — Bitmap Heap Scan. Во внешнем узле последо-
вательно сканируется таблица aircrafts с целью отбора строк согласно условию Filter:
(model ~’^Air’::text). Для каждой из отобранных строк во внутреннем дочернем уз-
ле (Bitmap Heap Scan) выполняется поиск в таблице seats по индексу с использо-
ванием битовой карты. Она формируется в узле Bitmap Index Scan с учетом усло-
вия Index Cond: (aircraft_code = a.aircraft_code), т. е. для текущего значения атрибута
aircraft_code, по которому выполняется соединение. На верхнем уровне плана сфор-
мированные строки сортируются по ключу (Sort Key: s.seat_no).
Следующий метод соединения наборов строк —


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




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

    Басты бет