Details
| Title | Алгоритм оптимизации соединения отношений в реляционной БД: выпускная квалификационная работа бакалавра: направление 02.03.01 «Математика и компьютерные науки» ; образовательная программа 02.03.01_01 «Системы искусственного интеллекта и суперкомпьютерные технологии» = Algorithm for optimizing Joins of relations in a relational database |
|---|---|
| Creators | Шклярова Ксения Алексеевна |
| Scientific adviser | Попов Сергей Геннадьевич |
| Organization | Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности |
| Imprint | Санкт-Петербург, 2026 |
| Collection | Выпускные квалификационные работы ; Общая коллекция |
| Subjects | оптимизация SQL-запросов ; реляционные БД ; соединение отношений ; план выполнения запроса ; оптимизатор СУБД ; подсказки оптимизатору ; ошибка оценки кардинальности ; TPC-H ; SQL query optimization ; relational databases ; joining relations ; query execution plan ; query optimizer ; optimizer hints ; cardinality estimation error |
| Document type | Bachelor graduation qualification work |
| Language | Russian |
| Level of education | Bachelor |
| Speciality code (FGOS) | 02.03.01 |
| Speciality group (FGOS) | 020000 - Компьютерные и информационные науки |
| DOI | 10.18720/SPBPU/3/2026/vr/vr26-2581 |
| Rights | Доступ по паролю из сети Интернет (чтение, печать, копирование) |
| Additionally | New arrival |
| Record key | ru\spstu\vkr\42752 |
| Record create date | 8/21/2026 |
Allowed Actions
–
Action 'Read' will be available if you login or access site from another network
Action 'Download' will be available if you login or access site from another network
| Group | Anonymous |
|---|---|
| Network | Internet |
Предметной областью работы является оптимизация SQL-запросов в реляционных базах данных. Проблема заключается в том, что при неактуальной статистике, упрощенной стоимостной модели и ограниченном пространстве поиска оптимизатор систем управления базами данных может выбирать неэффективный план выполнения запроса. Актуальность работы связана с тем, что соединение отношений является одной из наиболее затратных операций в реляционных базах данных, поэтому ошибки при его оптимизации снижают производительность. В работе предложен алгоритм автоматического подбора подсказок оптимизатору (optimizer hints). Данный алгоритм выявляет типовые проблемные ситуации в плане выполнения и переписывает запрос с добавлением подходящих подсказок. Результат применения предложенного решения, подтверждённый экспериментами на наборе данных TPC-H, показал заметное ускорение выполнения запросов без деградации производительности. Предложенное решение может применяться при настройке производительности SQL-запросов в реляционных базах данных, особенно в нагруженных системах. Также оно может быть использовано как вспомогательный инструмент для администраторов баз данных и разработчиков.
The subject area of this work is the optimization of SQL queries in relational databases. The problem is that, given outdated statistics, a simplified cost model, and a limited search space, the database management system optimizer may select an inefficient query execution plan. The relevance of this work stems from the fact that joining relations is one of the most resource-intensive operations in relational databases, so errors in its optimization significantly impact performance. This paper proposes an algorithm for the automatic selection of optimizer hints. This algorithm identifies typical problematic situations in the execution plan and rewrites the query by adding appropriate hints. The results of applying the proposed solution, confirmed by experiments on the TPC-H dataset, showed a significant acceleration in query execution without performance degradation. The proposed solution can be used to tune the performance of SQL queries in relational databases, especially in high-load systems. It can also be used as a support tool for database administrators and developers.
| Network | User group | Action |
|---|---|---|
| ILC SPbPU Local Network | All |
|
| Internet | Authorized users SPbPU |
|
| Internet | Anonymous |
|
- ВВЕДЕНИЕ
- ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ОПТИМИЗАЦИИ SQL-ЗАПРОСОВ
- Архитектура обработки SQL-запросов
- Оптимизатор запросов
- Алгоритмы соединения отношений (join)
- Причины проблем оптимизации запросов
- Подходы к решению проблем оптимизации
- Hints
- РАЗРАБОТКА АЛГОРИТМА ПОДБОРА ПОДСКАЗОК
- Ключевые параметры плана выполнения
- Типовые проблемные ситуации в плане выполнения
- Набор правил подбора hints
- Общая схема работы алгоритма подобора подсказок
- Алгоритм анализатора плана выполнения
- Алгоритм подбора подсказок
- Алгоритм перезаписи запроса
- ПРОЕКТИРОВАНИЕ И ПРОГРАММНАЯ РЕАЛИЗАЦИЯ АЛГОРИТМА ПОДБОРА ПОДСКАЗОК
- Структурно-функциональная схема алгоритма
- Описание программной реализации
- ИССЛЕДОВАНИЕ ЭФФЕКТИВНОСТИ АЛГОРИТМА ПОДБОРА ПОДСКАЗОК
- Постановка эксперимента
- Методика проведения эксперимента
- Результаты экспериментов
- Итоговые выводы по эксперименту
- Заключение
- Список литературы
- ПРИЛОЖЕНИЕ А КОНФИГУРАЦИОННЫЕ ФАЙЛЫ АЛГОРИТМА
- Приложение А.1 Содержание файла metrics.yaml
- Приложение А.2 Содержание файла symptoms_rules.yaml
- Приложение А.3 Содержание файла hint_rules.yaml
- ПРИЛОЖЕНИЕ Б СХЕМА БАЗЫ ДАННЫХ TPC-H
- ПРИЛОЖЕНИЕ А КОНФИГУРАЦИОННЫЕ ФАЙЛЫ АЛГОРИТМА
- Список литературы
- Заключение