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


BEGIN; BEGIN EXPLAIN (ANALYZE, COSTS OFF)



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

BEGIN;
BEGIN
EXPLAIN (ANALYZE, COSTS OFF)
UPDATE aircrafts
SET range = range + 100
WHERE model ~ '^Air';
QUERY PLAN
-----------------------------------------------------------------------
Update on aircrafts (actual time=0.299..0.299 rows=0 loops=1)
-> Seq Scan on aircrafts (actual time=0.111..0.121 rows=3 loops=1)
Filter: (model ~ '^Air'::text)
Rows Removed by Filter: 6
Planning time: 0.235 ms
Execution time: 0.414 ms
(6 строк)
310


10.5. Оптимизация запросов
ROLLBACK;
ROLLBACK
В документации приводится важное предостережение о том, что нельзя экстраполи-
ровать, т. е. распространять, пусть даже и с некоторыми поправками, оценки, полу-
ченные для таблиц небольшого размера, на таблицы большого размера. Это объясня-
ется тем, что оценки, вычисляемые планировщиком, не являются линейными. Одна
из причин заключается в том, что для таблиц разных размеров могут быть выбраны
разные планы. Например, для маленькой таблицы может быть выбрано последова-
тельное сканирование, а для большой — сканирование по индексу.
10.5. Оптимизация запросов
Мы рассмотрели базовые способы получения плана выполнения запроса и познако-
мились с типичными компонентами плана. Эти знания призваны помочь в тех си-
туациях, когда необходимо ускорить выполнение запроса. При принятии решения
о том, что выполнение какого-либо запроса нужно оптимизировать, следует учиты-
вать не только абсолютное время его выполнения, но и частоту его использования.
Запрос может выполняться, например, за несколько миллисекунд, но таких запросов
могут быть сотни или тысячи.
В результате ресурсы сервера будут расходоваться очень интенсивно. Возможно, что
в такой ситуации придется заняться ускорением выполнения этого запроса. А если
запрос выполняется один раз в месяц, скажем, для получения итоговой картины по
продажам авиабилетов за этот период, то в этом случае бороться за ускорение на
несколько миллисекунд, видимо, не имеет смысла.
Повлиять на скорость выполнения запроса можно различными способами, мы рас-
смотрим некоторые из них:
– обновление статистики, на основе которой планировщик строит планы;
– изменение исходного кода запроса;
– изменение схемы данных, связанное с денормализацией: создание материализо-
ванных представлений и временных таблиц, создание индексов, использование
вычисляемых столбцов таблиц;
311




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




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

    Басты бет