ОПТИМІЗАЦІЯ ЗАПИТІВ РЕЛЯЦІЙНОЇ БАЗИ ДАНИХ - Научное сообщество

Вас приветствует Интернет конференция!

Приветствуйем на нашем сайте

Рік заснування видання - 2011

ОПТИМІЗАЦІЯ ЗАПИТІВ РЕЛЯЦІЙНОЇ БАЗИ ДАНИХ

10.12.2022 23:41

[1. Информационные системы и технологии]

Автор: Саяпіна Інна Олександрівна, кандидат технічних наук, доцент, Національний технічний університет України "Київський політехнічний інститут імені Ігоря Сікорського", Київ; Сущук-Слюсаренко Вікторія Ігорівна, старший викладач, Національний технічний університет України "Київський політехнічний інститут імені Ігоря Сікорського", Київ; Онай Микола Володимирович, кандидат технічних наук, доцент, Національний технічний університет України "Київський політехнічний інститут імені Ігоря Сікорського", Київ


Щороку кількість інформації, яку виробляє людство, невпинно зростає. Інформатизація суспільства ставить нові виклики та вимоги перед інформаційними системами, що відповідають за обробку та зберігання інформації. Згідно зі статистичними дослідженнями, 71% проблем продуктивності інформаційних додатків пов’язані з базами даних, бо часто саме низька продуктивність бази даних безпосередньо впливає на уповільнення роботи програми [1].

База даних – це колекція логічно пов'язаних даних та їх описів, призначених для задоволення інформаційних потреб організації. Програмна система, яка дозволяє користувачам визначати, створювати, підтримувати дані та керувати доступом до бази даних, називається системою управління базами даних (СУБД). Популярність реляційних СУБД значною мірою викликана їх надійністю та підтримкою принципів ACID.

Метою дослідження є аналіз засобів підвищення продуктивності роботи реляційних баз даних та способів оптимізації запитів. 

Основна взаємодія користувача з реляційними СУБД відбувається за допомогою SQL (Structured Query Language) – мови структурованих запитів. Запит – це мовний вираз, що описує дані, які підлягають вибірці із бази даних. Процес виконання запитів складається з наступних етапів:

1. СУБД аналізує та синтаксично перевіряє код SQL запиту. Далі зв’язує таблиці та стовпці, до яких звертається запит, у попередню конструкцію (дерево) перед виконанням. 

2. Зв'язання таблиць та стовпців у дерево. Ця зв’язана конструкція передається компілятору, який перетворює SQL-код на виконавчий машинний код. 

3. Створюється виконавчий файл, що передається оптимізатору. Код ще повинен пройти через оптимізатор. Оптимізатор – це шар програмного забезпечення у складі СУБД. Він аналізує, що у результаті запиту потрібно отримати, та розраховує оптимальний план виконання. 

4. Обчислення оптимізатором плану виконання. При цьому оптимізатор аналізує які таблиці та колонки потрібні та як їх найефективніше дістати. Оптимізатор призначений для пошуку найшвидшого та найефективнішого рішення виконання запиту. 

5. СУБД реалізує план виконання.

Завдання оптимізації полягає у забезпеченні максимальної пропускної спроможності при заданій кількості ресурсів, або забезпеченні мінімального споживання ресурсів при цій пропускній спроможності. До критеріїв оптимізації можна віднести такі оцінки продуктивності, як час, необхідний на генерацію звіту, час виконання запитів, швидкість знаходження даних у полях без індексування, максимальна кількість одночасних звернень до даних при багатокористувацькому режимі, швидкість індексування, а також операцій оновлення, видалення та додавання.

На продуктивність виконання запитів значною мірою впливає нестача допоміжних індексів. У цьому випадку СУБД приходиться проводити повне сканування  таблиці, що вимагає додаткового процесорного часу, тому є менш ефективним. Ще однією проблемою є неузгодженість типів даних,  що об’єднуються. У цьому випадку оптимізатор втрачає можливість ефективно приєднувати стовпці та таблиці через необхідність попереднього перетворення всіх значень.

Оптимізатор обчислює вартості запропонованих планів, генерує їх та обирає план з найменшою вартістю, тобто який найшвидше виконуватиметься при використанні найменшої кількості ресурсів.

Відомо, що із збільшенням кількості приєднань (JOIN) помилки оцінювання вартості планів виконання запитів у системах реляційних баз даних швидко зростають [2]. Тому оптимізація запитів є важливою для ефективної для обробки запитів.

За результатами проведеного аналізу для оптимізації виконання запитів базою даних пропонуються наступні рекомендації:

1. Мінімізація процесів дискового введення-виведення для підвищення швидкості виконання запитів; 

2. Створення індексації параметрів, що підлягають частим запитам;

3. Зазначення у запиті конкретних полів SELECT, замість SELECT * для уникнення залучення додаткових ресурсів бази даних; 

4. Для фільтрації даних надання переваги оператору WHERE замість HAVING, який виконується пізніше відповідно до порядку виконання та не використовує переваги індексації у разі їх наявності, як це робить WHERE;

5. Обмеження необхідної кількості рядків результатів запиту за допомогою LIMIT, що дозволить зменшити обчислювальну потужність, необхідну для виконання;

6. Заміна підзапитів об’єднаннями, що потребує менше процесорного часу на виконання;

7. Оптимізація порядку слідування операцій JOIN при мультиоб’єднаннях, наприклад, завдяки застосуванню існуючих бенчмарків [2].   

Література

1. S. Samson, A. Aponso .An Analysis on Automatic Performance Optimization in Database Management Systems // 2020 World Conference on Computing and Communication Technologies (WCCCT), 2020, pp. 6-9. https://doi.org /10.1109/WCCCT49810.2020.9169995.

2. V. Leis, A. Gubichev, A. Mirchev, P. Boncz, A.  Kemper, and T. Neumann. 2015. How good are query optimizers, really? Proc. VLDB Endow, 2015, 9, 3, PP. 204–215. https://doi.org/10.14778/2850583.2850594



Creative Commons Attribution Ця робота ліцензується відповідно до Creative Commons Attribution 4.0 International License
допомога Знайшли помилку? Виділіть помилковий текст мишкою і натисніть Ctrl + Enter
Конференции

Конференции 2024

Конференции 2023

Конференции 2022

Конференции 2021



Міжнародна інтернет-конференція з економіки, інформаційних систем і технологій, психології та педагогіки

Наукова спільнота - інтернет конференції

:: LEX-LINE :: Юридична лінія

Інформаційне суспільство: технологічні, економічні та технічні аспекти становлення