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


EXPLAIN (ANALYZE, COSTS OFF)



Pdf көрінісі
бет236/256
Дата18.11.2022
өлшемі1.88 Mb.
#465124
түріУчебное пособие
1   ...   232   233   234   235   236   237   238   239   ...   256
sql osnovi yazika

EXPLAIN (ANALYZE, COSTS OFF)
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 (actual time=3.423..3.666 rows=426 loops=1)
Sort Key: s.seat_no
Sort Method: quicksort Memory: 46kB
-> Nested Loop (actual time=0.236..0.993 rows=426 loops=1)
-> Seq Scan on aircrafts a (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 (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
(actual time=0.064..0.064 rows=142 loops=3)
Index Cond: (aircraft_code = a.aircraft_code)
Planning time: 0.554 ms
Execution time: 3.840 ms
(14 строк)
309


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


Достарыңызбен бөлісу:
1   ...   232   233   234   235   236   237   238   239   ...   256




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

    Басты бет