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


EXPLAIN ANALYZE SELECT * FROM routes



Pdf көрінісі
бет237/243
Дата21.07.2022
өлшемі3,05 Mb.
#147663
түріУчебно-практическое пособие
1   ...   233   234   235   236   237   238   239   240   ...   243
Байланысты:
Язык SQL. Базовый курс

EXPLAIN ANALYZE SELECT * FROM routes;
EXPLAIN ANALYZE WITH f3 AS ( SELECT f2.flight_no, ...
Поскольку второй запрос очень громоздкий, то можно поступить таким обра-
зом: сначала сохраните его в текстовом файле, а затем выполните с помощью
команды \i утилиты psql.
Вы увидите, что затраты времени отличаются практически на два порядка. Ко-
нечно, нужно помнить, что материализованные представления необходимо пе-
риодически обновлять, чтобы их содержимое было актуальным.
10.* Одним из способов повышения производительности является изменение схе-
мы данных, связанное с денормализацией, а именно: использование вычисляе-
мых столбцов таблиц. В качестве примера рассмотрим таблицу «Бронирования»
(bookings). В ней столбец «Полная сумма бронирования» (total_amount) являет-
ся вычисляемым. Мы не будем сейчас говорить о том, каким образом его значе-
ния синхронизируются с данными в таблице «Перелеты» (ticket_flifgts), а лишь
рассмотрим два запроса, возвращающие полные суммы бронирований. Пред-
положим, что указанного столбца в таблице bookings не было бы. Тогда запрос,
возвращающий полные суммы бронирований, выглядел бы так:
EXPLAIN ANALYZE
SELECT b.book_ref, sum( tf.amount )
FROM bookings b, tickets t, ticket_flights tf
WHERE b.book_ref = t.book_ref
AND t.ticket_no = tf.ticket_no
GROUP BY 1 ORDER BY 1;
Но благодаря наличию вычисляемого столбца total_amount те же сведения мож-
но получить с гораздо меньшими затратами ресурсов:
EXPLAIN ANALYZE
SELECT book_ref, total_amount FROM bookings ORDER BY 1;
Попробуйте предложить еще какой-нибудь вычисляемый столбец для одной из
таблиц базы данных «Авиаперевозки». Проведите эксперименты, подтвержда-
ющие эффективность вашего решения.
249


11.* Одним из способов повышения производительности является изменение схемы
данных, а именно: использование временных таблиц. Предположим, что нам
предстоит сделать много выборок из представления «Рейсы» (flights_v), в таком
случае имеет смысл подумать о создании временной таблицы:


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




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

    Басты бет