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



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

Глава 10. Повышение производительности
изменяться фактическая нагрузка на сервер. Поэтому время выполнения повторно-
го запроса может оказаться значительно меньше, чем время выполнения первого,
а время выполнения запроса в третий раз — немного больше, чем во второй.
Если модифицировать запрос, добавив предложение WHERE, то точного совпадения
оценки числа выбираемых строк и фактического их числа уже не будет.
EXPLAIN ANALYZE
SELECT t.ticket_no,
t.passenger_name,
tf.flight_id,
tf.amount
FROM tickets t
JOIN ticket_flights tf ON t.ticket_no = tf.ticket_no
WHERE amount > 50000
ORDER BY t.ticket_no;
QUERY PLAN
----------------------------------------------------------------
Merge Join (cost=27391.09..46664.80 rows=75126 width=40)
(actual time=2133.715..3117.200 rows=72647 loops=1)
Merge Cond: (t.ticket_no = tf.ticket_no)
-> Index Scan using tickets_pkey on tickets t
(cost=0.42..17230.42 rows=366733 width=30)
(actual time=0.009..318.517 rows=366733 loops=1)
-> Sort (cost=27390.66..27578.48 rows=75126 width=24)
(actual time=2132.781..2173.526 rows=72647 loops=1)
Sort Key: tf.ticket_no
Sort Method: external sort Disk: 2768kB
-> Seq Scan on ticket_flights tf
(cost=0.00..21306.58 rows=75126 width=24)
(actual time=0.351..332.313 rows=72647 loops=1)
Filter: (amount > '50000'::numeric)
Rows Removed by Filter: 973079
Planning time: 1.415 ms
Execution time: 3135.869 ms
(11 строк)
План выполнения запроса изменился. Метод соединения наборов строк остался
прежним — слияние. Но выборка строк в нижнем узле дерева плана теперь выполня-
ется с помощью последовательного сканирования и сортировки. Обратите внимание,
что при включении опции ANALYZE может выводиться дополнительная информация
308


10.4. Управление планировщиком
о фактически использовавшихся методах, о затратах памяти и др. В частности, сказа-
но, что была использована внешняя сортировка на диске (Sort Method), приведены
затраты памяти на ее выполнение, приведено число строк, удаленных при проверке
условия их отбора (Rows Removed by Filter).
Фактическое число строк, выбранных из таблицы ticket_flights, и фактическое
число результирующих строк запроса хотя и не совпали с оценками этих чисел, но
оказались весьма близкими к ним. Фактические значения равны 72 647, а оценки —
75 126. Это хороший результат работы планировщика.
Обратимся еще раз к запросу, который мы уже рассматривали выше, и выполним его
с опциями ANALYZE и COSTS OFF (для сокращения вывода). В плане этого запроса нас
будет интересовать фактический параметр loops.


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




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

    Басты бет