Студенческий документ № 00113160 из БГТУ «Военмех»

Пользователь ср, 12.07.2017 11:18

Как научить слона танцевать Рок-н-ролл Что? Серьезно? Некоторые типы запросов выполняются базой неоптимально Альтернативный подход Ручная реализация быстрого алгорима - серьезный рост производительности запроса

Цели Показать некоторые практически полезные альтернативые алгоритмы и приемы Кратко показать методы перевода из PL/PGSQL в SQL Не цели Основы оптимизации запросов Ограничения планировщика запросов PostgreSQL

Сравнение PL/PgSQL производительности с SQL (Pl/PgSQL примеры написаны максимально простым для понимания образом и не обязательно являются максимально эффективной реализацией) Рекомендуемые начальные навыки

Знание PL/PgSQL Возможности PostgreSQL SQL: WITH [RECURSIVE] [JOIN] LATERAL UNNEST [WITH ORDINALITY] О версии PostgreSQL PostgreSQL версия 9.6 Будет работать на 9.5 и 9.4 без (серьезных) переделок Портирование на 9.3 и более ранние версии возможно, но потребует workaround реализации отсутствующих функций

Структура презентации Описание проблемы Классическое решение - простой SQL запрос EXPLAIN ANALYZE Альтернативный алгоритм на PL/PgSQL Этот же алгоритм на SQL EXPLAIN ANALYZE Сравнение производительности

01 Подготовка тестовых данных Подготовка тестовых данных Schema CREATE UNIQUE INDEX blog_post_test_author_id_ctime_ukey ON b_p_t USING btree (author_id, ctime); Подготовка тестовых данных Часть 1 Create blog posts table:

Скачать файлы