/ITMO-DB-lab4

Оптимизация запросов

ITMO-DB-lab4

Задание:

Вариант 6532

Составить запросы на языке SQL (пункты 1-2).

Для каждого запроса предложить индексы, добавление которых уменьшит время выполнения запроса (указать таблицы/атрибуты, для которых нужно добавить индексы, написать тип индекса; объяснить, почему добавление индекса будет полезным для данного запроса).

Для запросов 1-2 необходимо составить возможные планы выполнения запросов. Планы составляются на основании предположения, что в таблицах отсутствуют индексы. Из составленных планов необходимо выбрать оптимальный и объяснить свой выбор. Изменятся ли планы при добавлении индекса и как?

Для запросов 1-2 необходимо добавить в отчет вывод команды EXPLAIN ANALYZE [запрос]

Подробные ответы на все вышеперечисленные вопросы должны присутствовать в отчете (планы выполнения запросов должны быть нарисованы, ответы на вопросы - представлены в текстовом виде).

1) Сделать запрос для получения атрибутов из указанных таблиц, применив фильтры по указанным условиям:

  • Таблицы: Н_ЛЮДИ, Н_ВЕДОМОСТИ.
  • Вывести атрибуты: Н_ЛЮДИ.ИД, Н_ВЕДОМОСТИ.ЧЛВК_ИД.
  • Фильтры (AND):
    • a) Н_ЛЮДИ.ИД < 100865.
    • b) Н_ВЕДОМОСТИ.ДАТА = 2022-06-08.
    • c) Н_ВЕДОМОСТИ.ДАТА > 2022-06-08.
  • Вид соединения: LEFT JOIN.

2) Сделать запрос для получения атрибутов из указанных таблиц, применив фильтры по указанным условиям:

  • Таблицы: Н_ЛЮДИ, Н_ВЕДОМОСТИ, Н_СЕССИЯ.
  • Вывести атрибуты: Н_ЛЮДИ.ИД, Н_ВЕДОМОСТИ.ИД, Н_СЕССИЯ.ДАТА.
  • Фильтры (AND):
    • a) Н_ЛЮДИ.ИД < 152862.
    • b) Н_ВЕДОМОСТИ.ДАТА = 2022-06-08.
  • Вид соединения: LEFT JOIN.