Оптимизация SQL-запросов (Часть 1)
Опубликовано: 22.05.2017
В данной статье рассматриваются особенности запросов на выборку данных, виды индексов, использование планов запросов, различные подходы к оптимизации запросов. Во второй части статьи « Оптимизация SQL-запросов (Часть 2) » рассматриваются рекомендации по разработке оптимальной структуры БД.
Введение
Все более-менее сложные веб-приложения взаимодействуют с базами данных. Причем получение данных из базы является одним из узких мест приложения. Таким образом, оптимизация запросов к базе способна существенно повысить производительность веб-приложения в целом.
4. Проектирование СУБД. Оптимизация запросов и индексирование | Технострим
1. Демонстрационная база данных
Для демонстрации запросов в данном докладе потребуется база данных. Допустим, необходимо автоматизировать следующую предметную область: у торгового предприятия есть различные товары, которые продаются различным заказчикам. Необходимо обеспечить хранение данных по заказам клиентам, включая заказанные товары, и о статусах заказа, развернутых во времени. Создадим упрощенную базу данных.
09 - Погружение в СУБД. Оптимизация выполнения запросов
БД имеет следующую структуру: База наполнена тестовыми данными: Status — 3 записи Customer — 3 записи Product — 10 записей Order — 3 млн. записей. OrderStatus — 9 млн. записей. OrderProduct — 2,5 млн. записей
2. Запросы на выборку данных
Запросы на выборку данных реализуются с помощью конструкции SELECT языка SQL.
Запрос в MS SQL имеет следующий синтаксис: [ WITH <common_table_expression>] SELECT select_list [ INTO new_table ] [ FROM table_source ] [ WHERE search_condition ] [ GROUP BY group_by_expression ] [ HAVING search_condition ] [ ORDER BY order_expression [ ASC | DESC ] ]2.1. Типы соединений таблиц
Если запрос адресован к нескольким таблицам БД, то выполняется соединение этих таблиц по определенным полям.
Существует несколько типов соединений: Внутреннее (INNER JOIN)