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