Дані - це все, і, отже, SQL єскрізь. Структурована мова запитів стала найбільш вживаною мовою запитів, і її підтримують більшість сучасних систем управління реляційними базами даних. Насправді його використання настільки поширене, що ми часто називаємо сервери баз даних як SQL-сервери. Мова визначає, як можна формувати запити для вилучення з бази даних точних даних, які необхідні. З огляду на множинність сучасних баз даних сдесятки об'єднаних таблиць, SQL запити можуть бути досить складними. З додатковою складністю приходить зниження продуктивності. Оптимізація SQL-запитів дозволяє точно налаштувати запити, щоб вони повернули потрібні дані якомога швидше. Оптимізацію SQL-запитів можна виконати вручну, але існують інструменти для їх оптимізації. Ми збираємось переглянути деякі найкращі інструменти, які ми знайшли.
Оскільки ми хочемо, щоб усі були на одній сторінціми переглядаємо найкращі продукти, почнемо з обговорення того, що і сором’язливої оптимізації SQL запитів. Потім ми обговоримо основні особливості засобів оптимізації запитів SQL. Різні інструменти пропонують різні функції, як ви збираєтеся побачити. Ми зробимо все можливе, щоб розібрати найважливіші функції, які вам слід шукати, підбираючи найкращий інструмент для ваших конкретних потреб. І нарешті, ми розглянемо найкращі інструменти, які ми могли знайти.
Оптимізація запитів SQL, що і чому
Простіше кажучи, оптимізація запитів SQL - це діяаналіз SQL-запитів та визначення найбільш ефективного механізму виконання. Це часто процес проб і помилок, коли перевіряються різні запити, щоб побачити, який із них пропонує найкращу ефективність, при цьому все-таки повертаючи шукані дані. Оптимізатори запитів іноді вбудовуються в системи управління базами даних, але, як часто вважається, зовнішні інструменти сторонніх виробників пропонують кращі результати роботи. Типовий оптимізатор запитів генерує один або кілька планів запитів для кожного запиту, кожен з яких є механізмом, який використовується для запуску запиту. Ефективність (тобто час виконання) кожного вимірюється і вибирається найбільш ефективний план запитів і використовується для запуску запиту. Хоча деякі засоби оптимізації запитів SQL - це простіші допоміжні програми, які потребують великої допомоги людини, найкращі системи виконують більшу частину своєї роботи у фоновому режимі.
Ось короткий приклад оптимізації запитів. Якщо користувач запускає запит, який вибирає приблизно половину даних таблиці в той момент, коли сервер має великі завдання з кількома одночасними з'єднаннями. У такій ситуації оптимізатор запитів міг би вирішити використовувати план запитів, який використовує індекси таблиці для задоволення запиту на основі обмежених ресурсів. Це може зменшити витрату запиту на серверні ресурси. Якщо користувач запускав той же запит в інший час, коли було доступно більше ресурсів сервера, оптимізатор запитів міг би визначити, що обмеження ресурсів не є проблемою, і не використовувати індекси таблиці, завантажуючи повну таблицю в пам'ять.
Основні характеристики засобів оптимізації запитів SQL
Як ми визначили, основна функція SQLІнструмент оптимізатора запитів - це спробувати визначити найкращий спосіб запуску запиту шляхом аналізу різних планів запитів. Всі переглянуті тут інструменти будуть принаймні до цього, але деякі пропонують набагато більше функціональних можливостей. Давайте розглянемо деякі основні функції, які зазвичай зустрічаються в інструментах оптимізації запитів SQL.
Базова настройка SQL
Це основна функціональність запиту SQLІнструменти оптимізації. Це процес перезапису SQL-операторів по-різному з метою поліпшення продуктивності запиту при одночасному отриманні однакового набору даних. Інструмент працює за допомогою вимірювання часу виконання запиту різних версій запиту (планів запитів) та вибору тієї, яка виконується найшвидше.
Підтримка двигуна баз даних
Більшість інструментів підтримують принаймні найпоширенішіДвигуни бази даних, такі як Microsoft SQL, Oracle, MySQL, PostgreSQL та MariaDB. Інші підтримуватимуть більш широкий вибір, а інші - лише один. Важливо вибрати інструмент, який може підтримувати всі двигуни, які ви використовуєте,
Підтримка баз даних у хмарі
Деякі засоби оптимізації запитів SQL здатніаналізувати та оптимізувати хмарні бази даних, такі як Microsoft SQL Azure або AWS RDS. Підтримка хмари сильно відрізняється від інструменту до інструменту. Знову ж таки, важливо вибрати той, який підтримує те, що у вас є. Зауважте, що більшість інструментів, що підтримують хмарні бази даних, також підтримуватимуть локальні.
Кращі інструменти та програмне забезпечення для оптимізації запитів SQL
Нарешті настав час виявити — іогляд - найкращі інструменти та програмне забезпечення для оптимізації запитів SQL, які ми могли знайти. У нашому списку є багато різних типів інструментів, кожен з яких робить свій поворот для оптимізації. Наші основні критерії включення полягали в тому, що кожен продукт хоча б допомагав вручну оптимізувати SQL запити - більшість робить це автоматично - і щоб вони працювали як рекламовані. Ми не хотіли б, щоб ви витрачали час на продукти, які не будуть робити те, що слід.
1. Аналізатор продуктивності бази даних SolarWinds (Безкоштовний пробний період)
Наш перший продукт - від компанії SolarWindsякий користувався чудовою репутацією за те, що створив кілька найкращих інструментів управління мережею та системою протягом більшої частини двадцяти років свого існування. Його флагманський продукт під назвою SolarWinds Network Monitor Monitor вважається багатьма одним із найкращих програмних засобів для контролю пропускної здатності мережі. Деяка слава SolarWinds також походить від багатьох безкоштовних інструментів, які вона пропонує. Вони є меншими інструментами, кожен вирішує певну задачу адміністраторів мережі. Два чудових приклади цих інструментів - розширений калькулятор підмережі та сервер Kiwi Syslog.
Для оптимізації SQL Query все ж потрібно Аналізатор продуктивності бази даних SolarWinds (DPA), інструмент управління базами даних, побудований для запиту SQLмоніторинг продуктивності, аналіз та налаштування. Він здійснює моніторинг та аналіз екземплярів вашої бази даних SQL і, використовуючи метод аналізу часу відповіді, який ставить основний фокус на час між запитами запитів і відповідним відповіддю з бази даних, аналізує типи очікування та події, щоб точно визначити вузькі місця баз даних.
- БЕЗКОШТОВНИЙ ПРОБНИЙ ПЕРІОД: Аналізатор продуктивності бази даних SolarWinds
- Посилання для завантаження: https://www.solarwinds.com/database-performance-analyzer
Інструмент, який також чудово підходить для усунення несправностеймає простий у користуванні інтерфейс, який допоможе вам швидко та легко знаходити проблеми. На головному екрані ви зможете переглядати екземпляри бази даних, час очікування, запити порад, процесор (з попередженням та критичними сповіщеннями), пам'ять, диск та сеанси.
Під час свердління приладова панель тренда aконкретний екземпляр бази даних показує у графічному форматі загальний час очікування (або ваш вибір середнього або типового дня очікування) для користувачів протягом місяця. На цьому графіку кожен колір являє собою окремий оператор SQL, що дає вам візуально привабливе подання, який вислів займає найдовше.
Хоча цей продукт не є справжнім SQL-запитомінструменти оптимізації, деякі його функції можуть допомогти вам у цьому. Наприклад, він може контролювати та вимірювати час виконання запитів, а також надаватиме певні поради щодо налаштування, хоча це, як правило, пов’язано з конфігурацією бази даних, а не з кодом запиту.
Ціна на Аналізатор продуктивності бази даних SolarWinds починається від $ 1 995 і змінюється відповідно докількість та тип екземплярів бази даних для моніторингу. Якщо ви хочете випробувати продукт перед тим, як придбати його, доступна повністю функціональна 14-денна пробна версія.
2. Тюнер SQL Query для SQL Diagnostic Manager
The Менеджер діагностики SQL є одним з найпопулярніших інструментів моніторингу баз даних. Але при доповненні його до Тюнер SQL запитів, що ви отримуєте - один з найкращих запитів SQLінструменти оптимізації. Його переваги багаторазові. Він визначає проблемні запити SQL за допомогою профілювання бази даних аналізу часу очікування. Він також може давати автоматично створені рекомендації щодо налаштування за допомогою майстра налаштування запитів SQL. Інструмент перевірятиме продуктивність SQL запитів за допомогою тестування навантаження в імітованих виробничих середовищах.
The Тюнер запитів SQL швидко та легко визначить SQL запити, яківикликати низьку продуктивність бази даних за допомогою профілювання баз даних та відображення графічної візуалізації аналізу часу очікування. Він буде контролювати ціле джерело даних протягом настроюваного періоду часу з постійним профілюванням. Як результат, ви отримаєте краще розуміння того, як SQL Server планує виконувати SQL запити та різні витрати на продуктивність.
Цей інструмент відображатиметься автоматично створенимзапропоновані рішення за допомогою майстра настройки запитів SQL, які забезпечують істотний контекст для настройки SQL-запитів. Він містить кольоровий індексний аналіз використаних, не використовуваних та відсутніх індексів з рекомендаціями щодо оптимальної продуктивності. Ви можете генерувати можливі випадки та знаходити найкращу альтернативу даному оператору SQL, включаючи перезаписи запитів SQL та ін’єкції підказок.
The Тюнер SQL Query має унікальні візуальні схеми налаштування запитів SQLщо дозволяє зрозуміти вплив операторів SQL на базу даних за допомогою діаграм замість складних планів виконання. Індекси та обмеження на таблиці та представлення відображаються зі статистикою таблиць, а з'єднання, що використовуються в операторі SQL (наприклад, декартові з'єднання, маються на увазі декартові приєднання та багатозахисні відносини) з діаграмами.
Перевірте працездатність існуючих таальтернативні запити SQL до бази даних за допомогою тестування навантаження. Налаштувати SQL-запити для виконання декількох разів паралельно та спостерігати, як вони реагують на імітовані виробничі середовища без ризику фактичного тестування у виробництві. За допомогою цього інструменту ви можете налаштувати погано виконуючі запити SQL для SQL Server з інтуїтивного інтерфейсу.
The Тюнер запитів SQL є доповненням до Менеджер діагностики SQL. Ви вже не володієте цим продуктом, їх можна придбати разом SQL Diagnostic Manager Pro за 2 156 доларів за ліцензію, у постачальника продукту також доступна безкоштовна 14-денна пробна версія, яка не вимагає отримання кредитної картки
3. Студія управління SQL Server
Якщо сервер вашої бази даних - це сервер Microsoft SQL, можливо, власний інструмент Microsoft, Студія управління SQL Server (SSMS), це все, що вам потрібно. Як ви знаєте, інструмент, який вперше був запущений у Microsoft SQL Server 2005, використовується для налаштування, управління та адміністрування всіх компонентів у Microsoft SQL Server. Вона включає як редактори сценаріїв, так і графічні інструменти, які працюють з об'єктами та особливостями сервісу. Можливо, ви не знаєте, що це один із інструментів SSMS - Радник з налаштування двигуна бази даних SQL Server (DTA) може використовуватися для оптимізації запитів SQL.
Основною метою DTA є аналіз баз данихта надання рекомендацій. Згідно з офіційною документацією Microsoft, інструмент може допомогти вам усунути ефективність конкретного проблемного запиту, налаштувати великий набір запитів в одній або декількох базах даних, здійснити дослідницький аналіз можливих змін фізичного дизайну та керувати простором пам’яті.
Одна з найкращих речей про Студія управління SQL Server це його ціна. Це безкоштовний інструмент від Microsoft, який можна використовувати для управління не тільки SQL Server, але і Azure SQL Database. Це може бути не найзручнішим інструментом там, але, враховуючи його ціну, можливо, варто поглянути.
4. EverSQL
EverSQL Це цікаво, оскільки це один з небагатьох інструментів онлайн-оптимізації SQL. Адміністратори можуть використовувати цей інструмент для отримання рекомендацій щодо налаштування запитів та пропозицій щодо вдосконалення індексування. Підтримка баз даних в EverSQL дещо обмежена. Однак він підтримує найпопулярніші двигуни з платними та безкоштовними та відкритими джерелами, включаючи MSSQL, Oracle, MySQL, MariaDB та PerconaDB. Насправді, оскільки це офлайн-інструмент, який не має зв’язку з вашою базою даних, він теоретично може оптимізувати і SQL-запит, але він зробить кращу роботу, якщо знатиме, який тип двигуна бази даних обробить оптимізований запит.
Використовувати інструмент дуже просто. Ви підключаєтесь до сайту, вибираєте тип і версію бази даних та вставляєте код запиту SQL. Щоб отримати рекомендації щодо індексації та дозволити інструменту застосовувати розширені перетворення запитів, ви можете додатково завантажити структуру схеми бази даних. Ви натискаєте "Далі" і протягом декількох секунд отримуєте оптимізовану версію запиту разом з деякими рекомендаціями щодо індексації.
EverSQL не тільки робить оптимізацію запитів. Також пропонується кілька інших безкоштовних та корисних онлайн-інструментів. Наприклад, є SQL Query Syntax Check & Validator, Minifier Query для SQL-заяв та Форматор запитів.
Структура ціноутворення EverSQL просто. У вас є вибір безкоштовного плану, який дає вам одну безкоштовну оптимізацію запитів на день протягом 30 днів. Це випробувальний план. Далі у вас є базовий план на рівні $ 29 на місяць, який включає 10 щомісячних оптимізацій та план Plus на рівні 135 доларів на місяць із 30 оптимізаціями на місяць та підтримкою чату в реальному часі. Індивідуальні плани також можна організувати для задоволення ваших конкретних потреб.
5. Провідник плану SentryOne
План провідника це безкоштовний інструмент від SentryOne. Це один з найкращих SQL запитів та аналізінструменти оптимізації. Цей інструмент допоможе вам швидко дістатися до кореня найскладніших проблем із запитами SQL Server. Він виготовлений з декількох модулів. Індексний аналіз використовує алгоритми оцінювання, щоб допомогти визначити найкращий індекс для підтримки заданого запиту. Ви можете легко переглядати рекомендовані індекси, створювати та змінювати індекси, а також виявляти та оновлювати старі статистичні дані.
Модуль аналізу статистики показує вамвплив складених параметрів і параметрів запиту на виконання. Це дозволяє швидко помітити перекос даних, який може сприяти проблемам нюху параметрів, візуалізувати потенційні висхідні ключові проблеми та визначити можливості для відфільтрованих індексів.
Профілювання продуктивності запиту та відтвореннямодуль буде відтворювати запити та отримувати доступ до їх статистики в реальному часі. За допомогою цього інструменту ви можете відтворити профіль запиту, щоб точно побачити, які оператори додають найбільше навантаження на системні ресурси. Не потрібно запускати запит заново.
Хоча більшість оптимізаторів запитів SQL використовують орієнтовну вартість плану, План провідника може відображати фактичні спостережувані витрати. Ви можете побачити різницю у вартості, переключивши перегляд між оцінним та фактичним. У цього безкоштовного інструменту є більше функцій, ніж у нас є час їх представити. Але оскільки це безкоштовний інструмент, можливо, ви захочете спробувати його самі.
6. dbForge Studio для SQL Server
Деварт'S dbForge Studio для SQL-сервера це все-в-одному інструмент графічного інтерфейсу SQL сервера, яким може бутивикористовується для управління SQL Server, адміністрування, розробка, звітність, аналіз, оптимізація тощо. Розробники SQL та адміністратори баз даних можуть використовувати інструмент GUI для прискорення практично будь-яких складних завдань баз даних, таких як проектування баз даних, написання коду SQL, порівняння баз даних, синхронізація схем і даних, генерація значущих тестових даних серед інших.
dbForge Studio для SQL-сервера включає в себе Інструмент плану SQL-запитів, спеціальний інструмент оптимізації запитів. Функція схеми плану виконання програми допомагає візуалізувати та налаштувати план виконання запитів шляхом точного визначення вузлів, що виконують повільно. На вкладці Статистика очікування інструменту ви можете легко виявити потенційні вузькі місця у вашому запиті, відображаючи список подій та очікувань, пов’язаних із ними. Йо також може використовувати дерево плану інструмента для отримання інформації про те, як SQL Server виконує оператор SELECT. Він покаже, де додавання індексу до таблиці або оптимізація приєднання таблиці, наприклад, може підвищити продуктивність.
Інструмент, який також відомий як Профілер запиту T-SQL, вбудований у стандартні, професійні таКорпоративні версії dbForge Studio для SQL-сервера, які оцінюються відповідно в $ 249,95, $ 499,95 і $ 699,95. Доступна безкоштовна 30-денна пробна версія всього продукту - не лише інструменту оптимізації запитів.
Коментарі