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



Pdf көрінісі
бет245/256
Дата18.11.2022
өлшемі1.88 Mb.
#465124
түріУчебное пособие
1   ...   241   242   243   244   245   246   247   248   ...   256
sql osnovi yazika

EXPLAIN ANALYZE
SELECT * FROM routes;
EXPLAIN ANALYZE
WITH f3 AS ( SELECT f2.flight_no, ...
Поскольку второй запрос очень громоздкий, то можно поступить таким обра-
зом: сначала сохраните его в текстовом файле, а затем выполните с помощью
команды \i утилиты psql.
Вы увидите, что затраты времени отличаются практически на два порядка. Ко-
нечно, нужно помнить, что материализованные представления необходимо пе-
риодически обновлять, чтобы их содержимое было актуальным.
10.* Одним из способов повышения производительности является изменение схе-
мы данных, связанное с денормализацией, а именно: использование вычисля-
емых столбцов. Для примера рассмотрим таблицу «Бронирования» (bookings).
В ней столбец «Полная сумма бронирования» (total_amount) является вычис-
ляемым. Мы не будем сейчас говорить о том, каким образом его значения син-
хронизируются с данными в таблице «Перелеты» (ticket_flifgts), а лишь
320


Контрольные вопросы и задания
рассмотрим два запроса, возвращающие полные суммы бронирований. Пред-
положим, что указанного столбца в таблице 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;
Попробуйте предложить еще какой-нибудь вычисляемый столбец для одной из
таблиц базы данных «Авиаперевозки». Проведите эксперименты, подтвержда-
ющие эффективность вашего решения.
11.* Одним из способов повышения производительности является изменение схемы
данных, а именно: использование временных таблиц. Предположим, что нам
предстоит сделать много выборок из представления «Рейсы» (flights_v), в та-
ком случае имеет смысл подумать о создании временной таблицы:


Достарыңызбен бөлісу:
1   ...   241   242   243   244   245   246   247   248   ...   256




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

    Басты бет