Задание к курсу Оптимизация БД
- Все вопросы оформлять в виде Issue
- Все изменения и результаты оформлять в виде Pull Request из собственного fork
В репозитории находится скрипт для создания объектов БД (MS SQL Server). Описание таблиц:
Works
- заказы на проведение исследованийWorkItem
- элементы заказа (заказанное исследование)Analiz
- спецификации исследованияEmployee
- сотрудники Остальные таблицы для выполнения задания значения не имеют.
Для получения списка заказов с заранее настроенным количеством, со стороны клиентского приложения направляется запрос:
select top 3000 * from dbo.F_WORKS_LIST()
MS SQL Server любой версии (допустимо использовать MS SQL Server for Linux или Windows). Допустимо использование иной СУБД при портировании исходного скрипта с учётом конечного диалекта SQL.
- Ознакомиться со скриптом создания базы данных
- Ознакомиться с программными компонентами (функции)
- Разработать и применить генератор тестовых данных
Ожидаемый результат - доступная для оптимизации БД с тестовыми данными
Пользователи приложения пользуются на низкую производительность при загрузке списка, при этом отсутствуют возможности отладить приложение и внести в него правки.
Проанализировать скрипт функции получения списка заказов и связанные с ней объекты, перечислить выявленные недочёты и потенциальные проблемы производительности.
Предложить правки запросов без модификации структуры БД такие, что время выполнения запроса получения 3 000
заказов из 50 000
со средним количеством элементов в заказе равным 3
не будет превышать 1-2
сек.
При выполнении задания допускается использовать LLM. В случае использования LLM должны быть приведены используемые промты на русском или английском языке.
Если для оптимизации требуется создание новых таблиц, столбцов, триггеров или хранимых процедур (функций), то необходимо описать возможные недостатки и отрицательные последствия от таких изменений.