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



Pdf көрінісі
бет229/243
Дата21.07.2022
өлшемі3,05 Mb.
#147663
түріУчебно-практическое пособие
1   ...   225   226   227   228   229   230   231   232   ...   243
Байланысты:
Язык SQL. Базовый курс

EXPLAIN ANALYZE
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)
(actual time=3.423..3.666 rows=426 loops=1)
Sort Key: s.seat_no
Sort Method: quicksort Memory: 46kB
-> Nested Loop (cost=5.43..17.90 rows=149 width=59)
(actual time=0.236..0.993 rows=426 loops=1)
-> Seq Scan on aircrafts a (cost=0.00..1.11 rows=1 width=48)
(actual time=0.100..0.112 rows=3 loops=1)
Filter: (model ~ '^Air'::text)
Rows Removed by Filter: 6
-> Bitmap Heap Scan on seats s (cost=5.43..15.29 rows=149
width=15)
,

(actual time=0.080..0.154 rows=142 loops=3)
Recheck Cond: (aircraft_code = a.aircraft_code)
Heap Blocks: exact=6
-> Bitmap Index Scan on seats_pkey (cost=0.00..5.39
rows=149 width=0)
,

(actual time=0.064..0.064 rows=142 loops=3)
Index Cond: (aircraft_code = a.aircraft_code)
Planning time: 0.554 ms
240


Execution time: 3.840 ms
(14 строк)
Как видно из плана, значение параметра loops для узла, выполняющего сканирова-
ние таблицы seats по индексу с построением битовой карты, равно трем. Это объяс-
няется тем, что из таблицы aircrafts были фактически выбраны три строки, и
для каж-
дой
из них выполняется поиск в таблице seats. Для подсчета общих затрат времени
на выполнение операций сканирования по индексу за три цикла нужно значение па-
раметра actual time умножить на значение параметра loops. Таким образом, для узла
дерева плана Bitmap Index Scan получим:
0
,
064
×
3 = 0
,
192
.
Подобные вычисления общих затрат времени на промежуточных уровнях дерева
плана могут помочь выявить наиболее ресурсоемкие операции.
Попутно заметим, что, согласно этому плану, сортировка на верхнем уровне плана
выполнялась в памяти с использованием метода quicksort:
Sort Method: quicksort Memory: 46kB
До сих пор мы рассматривали только выборки, т. е. такие запросы, которые не изме-
няют хранимых данных. Однако, кроме выборок, есть такие операции, как вставка,
обновление и удаление строк. Нужно помнить, что хотя результаты выборки и не вы-
водятся, тем не менее, она фактически все равно выполняется. Поэтому если требу-
ется исследовать план выполнения запроса, модифицирующего данные, то для того,
чтобы изменения на самом деле произведены не были, нужно воспользоваться тран-
закцией с откатом изменений.


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




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

    Басты бет