Home News

Оптимизация SQL-запросов (Часть 1)

06.10.2017

видео Оптимизация SQL-запросов (Часть 1)

4. Проектирование СУБД. Оптимизация запросов и индексирование | Технострим

В данной статье рассматриваются особенности запросов на выборку данных, виды индексов, использование планов запросов, различные подходы к оптимизации запросов. Во второй части статьи « Оптимизация SQL-запросов (Часть 2) » рассматриваются рекомендации по разработке оптимальной структуры БД.


Сергей Михалев — Оптимизация SQL-запросов, часть 1

Введение

Все более-менее сложные веб-приложения взаимодействуют с базами данных. Причем получение данных из базы является одним из узких мест приложения. Таким образом, оптимизация запросов к базе способна существенно повысить производительность веб-приложения в целом.


09 - Погружение в СУБД. Оптимизация выполнения запросов

1. Демонстрационная база данных

Для демонстрации запросов в данном докладе потребуется база данных. Допустим, необходимо автоматизировать следующую предметную область: у торгового предприятия есть различные товары, которые продаются различным заказчикам. Необходимо обеспечить хранение данных по заказам клиентам, включая заказанные товары, и о статусах заказа, развернутых во времени. Создадим упрощенную базу данных.

БД имеет следующую структуру:

База наполнена тестовыми данными:

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)

rss