Оптимізація розподілених запитів
Автор: Yellow Submarine • Май 24, 2021 • Лекция • 15,306 Слов (62 Страниц) • 325 Просмотры
Лекція 10. Оптимізація розподілених запитів
Обробка розподілених запитів (Distributed Query -DQ) - задача, більш складна, ніж обробка локальних і вона потребує вирішення за допомогою особливого компонента - оптимізатора DQ. Оптимізатор DQ запитів повинен враховувати такі параметри, як, в першу чергу, розмір таблиць, статистику розподілу даних по вузлах, обсяг даних, переданих між вузлами, швидкість комунікаційних ліній, структури зберігання даних, співвідношення продуктивності процесорів на
різних вузлах і т.д. Від інтелекту оптимізатора DQ прямо залежить швидкість виконання розподілених запитів.
Проблема оптимізації запитів бази даних складається із трьох основних компонент:
- Оптимізація запитів
- Оптимізація структури
- Оптимізація сервера
Завдання оптимізації запиту полягає в знаходженні оптимального способу його виконання. Вибір способу здійснюється на підставі набору альтернативних планів виконання, кожен з яких є варіантом перестановки таблиць, до яких відбувається звернення. Оптимізація запитів проводиться в двох
цілях: мінімізація часу і ресурсів, які потрібно затратити на виконання запиту і максимізація кількості обслуговуваних клієнтів. Завдання оптимізації запитів можна розділити на три підзадачі:
- Логічна оптимізація - перетворення логічних елементів запиту до найбільш оптимального представлення.
- Формування набору планів виконання запиту.
- Оцінка сформованих планів і вибір найбільш оптимального з них. Набір ресурсів, який підлягає мінімізації, складається з таких компонентів:
- Витрати на передачу даних між клієнтом і сервером. Вони лінійно залежать від обсягу переданих даних, а так само від якості і пропускної здатності каналу.
- Час завантаження сторінок в пам'ять комп'ютера. Залежить від обсягу даних і швидкості пристроїв.
- Завантаження процесора при виконанні обчислень.
Залежно від співвідношення цих компонентів потрібно вибрати спосіб оптимізації. Для баз даних, розподілених між декількома серверами, найбільш важливим ресурсом є витрати на комунікацію.
Зазвичай виділяють два методи оптимізації запитів:
- Використання евристичних правил для передвпорядкування операцій запиту;
- Порівняння різних стратегій на основі їх відносних оцінок і вибір стратегії із мінімальним використанням системних ресурсів.
Евристичні методи оптимізації запитів – передбачають використання правил трансформації для
перетворення виразу реляційної алгебри в деяку еквівалентну форму, обробка якої заздалегідь буде більш ефективною.
Правила перетворення операцій реляційної алгебри:
- Операція вибірки з коньюктивним предикатом може бути перетворена у послідовність операцій вибірки по членам кон’юнкції (і навпаки)
- Правило комутативності операції вибірки
- В послідовності операцій проекції необхідна лише остання із цих операцій
- Правило комутативності операцій вибірки і проекції
- Правило комутативності операції тета-з’єднання (і декартового добутку)
- Правило комутативності операцій вибірки і тета-з’єднання (або декартового добутку)
- Правило комутативності операцій проекції і тета-з’єднання (або декартового добутку)
- Правило комутативності операцій об’єднання і перетину (але не різниці множин)
- Правило комутативності операції вибірки і операцій над множинами(об’єднання, перетин і різниця множин)
- Правило комутативності операцій проекцій і об’єднання
- Правило асоціативності операції тета-з’єднання (і декартового добутку)
- Правило асоціативності операцій об’єднання і перетину (але не операції різниці множин)
Оптимізація запиту - це процедура вибору «найкращої» стратегії для реалізації запиту з множини альтернатив.
...