Данните са всичко и, следователно, SQL енавсякъде. Структурираният език за заявки се превърна в най-използвания език на заявките и се поддържа от повечето съвременни системи за управление на релационни бази данни. Всъщност неговото използване е толкова разпространено, че често наричаме сървърите на бази данни като SQL сървъри. Езикът определя как могат да се формират заявки, за да се извлече от база данни точните данни, които са необходими. Като се има предвид множеството съвременни бази данни сдесетки съединени таблици, SQL заявките могат да бъдат доста сложни. С допълнителна сложност идва намалена производителност. Оптимизацията на SQL заявки позволява да се прецизират заявки, така че да върнат правилните данни възможно най-бързо, Оптимизирането на SQL заявки може да се извърши ръчно, но съществуват инструменти, които да подпомогнат оптимизирането им. Предстои да разгледаме някои от най-добрите инструменти, които намерихме.
Тъй като искаме всички да са на една и съща страницапреглеждаме най-добрите продукти, ще започнем, като обсъдим какво и срамежливото оптимизиране на SQL заявки. След това ще обсъдим основните характеристики на инструментите за оптимизация на SQL заявки. Различните инструменти предлагат различни функции, както предстои да видите. Ще направим всичко възможно да подредим основните функции, които трябва да търсите, когато избирате най-добрия инструмент за вашите конкретни нужди. И накрая, ще прегледаме най-добрите инструменти, които бихме могли да намерим.
Оптимизация на SQL заявки, какво и защо
Просто казано, SQL оптимизацията на заявки е актът наанализ на SQL заявки и определяне на най-ефективния механизъм за изпълнение. Често това е процес на изпробване и грешка, при който се тестват различни заявки, за да се види коя от тях предлага най-добрата ефективност, като все пак връща търсените данни. Оптимизаторите на заявки понякога са вградени в системи за управление на бази данни, но често се смята, че външните инструменти на трети страни предлагат по-добри резултати. Типичният оптимизатор на заявки ще генерира един или повече заявки за всяка заявка, всяка от които е механизъм, използван за изпълнение на заявката. Измерва се ефективността (т.е. времето за изпълнение) на всяка от тях и се избира най-ефективният план за заявки и се използва за изпълнение на заявката. Докато някои инструменти за оптимизиране на SQL заявки са по-прости помощни приложения, които изискват много човешка помощ, най-добрите системи вършат по-голямата част от работата си на заден план.
Ето кратък пример за оптимизация на заявките. Ако потребителят изпълни заявка, която избира приблизително половината данни от таблицата в момент, в който сървърът има голяма задача с множество едновременни връзки. В такава ситуация оптимизаторът на заявки може да реши да използва план за заявки, който използва индексите на таблиците, за да задоволи заявката въз основа на ограничени ресурси. По този начин можете да намалите изтичането на заявката върху сървърните ресурси. Ако потребителят изпълни същата заявка в друг момент, когато бяха налични повече сървърни ресурси, оптимизаторът на заявки можеше да определи, че ограничаването на ресурсите не е проблем и да не използва индексите на таблицата, зареждайки пълната таблица в паметта.
Основни характеристики на инструментите за оптимизация на SQL заявки
Както установихме, основната функция на SQLИнструментът за оптимизиране на заявки е да се опитате да определите най-добрия начин за изпълнение на заявката чрез анализ на различни планове за заявки. Всички прегледани тук инструменти ще са поне на това, но някои предлагат много повече функционалност. Нека разгледаме някои от основните функции, често срещани в инструментите за оптимизация на SQL заявки.
Основна настройка на SQL
Това е основната функционалност на SQL QueryИнструменти за оптимизация. Това е процесът на пренаписване на SQL изявления по различен начин с цел подобряване на производителността на заявката, като все пак получаване на един и същ резултат в резултат на това. Инструментът работи, като измерва времето за изпълнение на заявката на различните версии на заявката (планове за заявки) и избира тази, която се изпълнява най-бързо.
Поддръжка на бази данни на двигателя
Повечето инструменти поне ще поддържат най-често срещанитедвигатели на бази данни като Microsoft SQL, Oracle, MySQL, PostgreSQL и MariaDB. Други ще подкрепят по-широк избор, а други ще подкрепят само един. Важно е да изберете инструмент, който да поддържа всички двигатели, които използвате,
Поддръжка на база данни в облак
Някои инструменти за оптимизиране на SQL заявки са в състояние даанализирайте и оптимизирайте базирани в облак бази данни като Microsoft SQL Azure или AWS RDS. Облачната поддръжка варира значително от инструмент до инструмент. Отново е важно да изберете този, който поддържа това, което имате. Имайте предвид, че повечето инструменти, поддържащи облачни бази данни, също ще поддържат локални такива.
Най-добрите инструменти и софтуер за оптимизация на SQL заявки
Най-накрая дойде време да разкрием - ипреглед - най-добрите инструменти за оптимизация на SQL заявки и софтуер, които можем да намерим. В нашия списък има много различни видове инструменти, всеки от които носи свой обрат на оптимизация. Основните ни критерии за включване бяха, че всеки продукт поне помогна ръчно за оптимизиране на SQL заявки - повечето го правят автоматично - и че те работят като рекламирани. Не бихме искали да ви губим време за продукти, които няма да правят това, което трябва.
1. Анализатор на производителността на база данни SolarWinds (Безплатен пробен период)
Първият ни продукт е от компания SolarWindsкойто се радва на отлична репутация за създаването на едни от най-добрите инструменти за управление на мрежи и системи за по-голямата част от двадесет и иш години от съществуването си. Неговият водещ продукт, наречен SolarWinds Network Performance Monitor, се разглежда от мнозина като един от най-добрите софтуерни мрежи за наблюдение на честотната лента. Някои от славата на SolarWinds също произхождат от многото безплатни инструменти, които предлага. Те са по-малки инструменти, всеки от които адресира конкретна задача на мрежовите администратори. Два отлични примера за тези инструменти са Advanced Subnet Calculator и Kiwi Syslog Server.
За оптимизация на SQL заявки обаче е нужно това Анализатор на производителността на бази данни SolarWinds (DPA), инструмент за управление на база данни, изграден за SQL заявкамониторинг, анализ и настройка на ефективността. Той следи и анализира вашите случаи на SQL база данни и използва метода за анализ на времето за реакция, който поставя основния фокус върху времето между заявките на заявка и съответния отговор от базата данни, анализира видовете чакане и събития, за да определи точните места в базите данни.

- БЕЗПЛАТЕН ПРОБЕН ПЕРИОД: Анализатор на производителността на база данни SolarWinds
- Линк за изтегляне: https://www.solarwinds.com/database-performance-analyzer
Инструментът, който също е чудесен за отстраняване на проблемиразполага с лесен за използване интерфейс, който ще ви помогне да намерите проблеми бързо и лесно. Основният екран ще ви позволи да преглеждате случаи на база данни, време за изчакване, съвет за запитвания, CPU (с предупреждения и критични сигнали), памет, диск и сесии.
Когато пробивате надолу, таблото за тенденции на aконкретен екземпляр на база данни ви показва в графичен формат общото време за изчакване (или вашият избор на средни или типични дни за изчакване на деня) за потребителите в продължение на месец. На тази графика всеки цвят представлява индивидуален SQL оператор, който ви предоставя визуално привлекателно представяне на това, което операцията отнема най-дълго.
Въпреки че този продукт не е истинска SQL заявкаинструменти за оптимизация, някои от функциите му могат да ви помогнат за това. Например, той може да наблюдава и измерва времето за изпълнение на заявките и също така ще предостави някои съвети за настройка, въпреки че е по-скоро свързан с конфигурацията на базата данни, а не с кода на заявката.
Цената за Анализатор на производителността на база данни SolarWinds започва от $ 1 995 и варира в зависимост отброй и вид на екземплярите на базата данни, които да се наблюдават. Ако искате да изпробвате продукта преди да го закупите, е налична напълно функционална 14-дневна пробна версия.
2. SQL тунер за заявки за SQL Diagnostic Manager
Най- SQL Diagnostic Manager е един от най-добрите налични инструменти за мониторинг на базата данни. Но когато го допълвате с SQL тунер за заявки, това, което получавате, е едно от най-добрите SQL заявкиинструменти за оптимизация. Предимствата му са многобройни. Той идентифицира проблемните SQL заявки чрез профилиране на база данни за анализ на времето на изчакване. Освен това може да ви даде автоматично генерирани препоръки за настройка с помощта на съветника за настройка на SQL заявки. Инструментът ще провери ефективността на SQL заявките чрез тестване на натоварването в симулирани производствени среди.
Най- SQL тунер за заявки бързо и лесно ще идентифицира SQL заявки, коитопричиняват лоша производителност на базата данни чрез профилиране на базата данни и показват графична визуализация на анализа на времето за изчакване. Той ще следи цял източник на данни в рамките на конфигурируем период от време с непрекъснато профилиране. Като aresult, вие ще получите по-добро разбиране за това как SQL Server планира да изпълнява SQL заявки и различните разходи за производителност.

Този инструмент ще се представи автоматично генериранпредложени решения със съветника за настройка на SQL заявки, които осигуряват основен контекст за настройка на SQL заявки. Той включва цветово кодиран анализ на индекси на използвани, не използвани и липсващи индекси с препоръки за оптимална ефективност. Можете да генерирате възможни случаи и да намерите най-добрата алтернатива на даден SQL оператор, като включите SQL заявки за пренаписване и намеци за инжекции.
Най- SQL тунер за заявки разполага с уникални визуални диаграми за настройка на заявкикоито ви позволяват да разберете въздействието на SQL операторите върху базата данни с помощта на диаграмите вместо сложни планове за изпълнение. Индексите и ограниченията на таблиците и изгледите се показват със статистически данни на таблиците, а присъединенията, използвани в SQL оператор (като декартови присъединения, подразбиращи се декартови присъединения и връзки много към много) с диаграмите.
Проверете ефективността на съществуващите иалтернативни SQL заявки към базата данни чрез тестване на натоварването. Конфигурирайте SQL заявките да се изпълняват няколко пъти паралелно и да наблюдавате как те реагират на симулирани производствени среди, без риск от реално тестване в производството. Използвайки този инструмент, можете да настроите лошо изпълняващите SQL заявки за SQL Server от интуитивен интерфейс.
Най- SQL тунер за заявки е добавка към SQL Diagnostic Manager, Вече не притежавате този продукт, и двата могат да бъдат закупени заедно като SQL Diagnostic Manager Pro за 2 156 долара на лиценз е налична и безплатна, не изискваща кредитна карта 14-дневна пробна версия от доставчика на продукта
3. Студио за управление на SQL Server
Ако сървърът на вашата база данни е Microsoft SQL Server, може би собственият инструмент на 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 база данни. Може да не е най-удобният за употреба инструмент, но предвид цената му, може би си струва да разгледаме.
4. EverSQL
EverSQL е интересно, тъй като е един от малкото онлайн инструменти за SQL оптимизация. Администраторите могат да използват този инструмент за получаване на препоръки за настройка на заявки и предложения за подобряване на индексирането. Поддръжка на база данни в EverSQL е донякъде ограничен. Той обаче поддържа най-популярните платени и безплатни и с отворен код двигатели на бази данни, включително MSSQL, Oracle, MySQL, MariaDB и PerconaDB. Всъщност, тъй като това е офлайн инструмент, който няма връзка с вашата база данни, той теоретично би могъл да оптимизира и SQL заявка, но ще свърши по-добра работа, ако знае какъв тип двигател на базата данни ще обработва оптимизираната заявка.

Използването на инструмента е супер просто. Свързвате се със сайта, избирате типа и версията на вашата база данни и поставяте кода за SQL заявка. За да получите препоръки за индексиране и да позволите на инструмента да прилага разширени трансформации на заявки, можете по желание да качите структурата на схемата на вашата база данни. Щракнете върху „Напред“ и след секунди получавате оптимизираната версия на вашето запитване, заедно с някои препоръки за индексиране.
EverSQL не само прави оптимизации на заявки. Предлагат се и няколко други безплатни и полезни онлайн инструменти. Има например SQL Query Syntax Check & Validator, Minifier за заявки за SQL изявления и формат на заявките.
Ценовата структура на EverSQL е просто. Имате избор на безплатен план, който ви дава една безплатна оптимизация на заявки на ден в продължение на 30 дни. Това е опитният план. На следващо място, имате Основен план на $ 29 / месец, който включва 10 месечни оптимизации и план Plus на $ 135 / месец с 30 оптимизации на месец и поддръжка на чат на живо. Персонализирани планове също могат да бъдат организирани, за да отговарят на вашите специфични нужди.
5. SentryOne Plan Explorer
Plan Explorer е безплатен инструмент от SentryOne, Това е един от най-добрите SQL заявки за анализ иинструменти за оптимизация. Този инструмент може да ви помогне бързо да стигнете до основата на най-трудните проблеми със заявките към SQL Server. Изработена е от няколко модула. Индексният анализ използва алгоритми за оценяване, за да ви помогне да определите най-добрия индекс, за да поддържате дадена заявка. Можете лесно да преглеждате препоръчителни индекси, да създавате и променяте индекси, както и да откривате и актуализирате стари статистически данни.
Модулът за анализ на статистиката ви показвавлияние на компилираните параметри и параметрите на заявката върху изпълнението. Това ви позволява бързо да забележите изкривяване на данни, което може да допринесе за проблеми с подслушването на параметри, да визуализирате потенциални възходящи ключови проблеми и да идентифицирате възможностите за филтрирани индекси.

Профилиране и възпроизвеждане на ефективността на заявкатамодул ще преиграва заявки и ще получи достъп до техните статистически данни на живо. Използвайки този инструмент, можете да възпроизвеждате профила на заявката, за да видите точно кои оператори добавят най-много на системните ресурси. Не е необходимо да стартирате заявката отново.
Въпреки че повечето оптимизатори на SQL заявки използват прогнозна цена на плана, Plan Explorer може да показва действително наблюдаваните разходи. Можете да видите разликата в цената, като превключите изгледа между прогнозно и действително. В този безплатен инструмент има повече функции, отколкото имаме време да ги представим. Но тъй като е безплатен инструмент, може би ще искате да го опитате и да се убедите сами.
6. dbForge Studio за SQL Server
Devart'с dbForge Studio за SQL сървър е универсален GUI инструмент за SQL сървър, който може да бъдеизползва се за управление, администриране, разработка, отчитане на данни, анализ, оптимизация на SQL Server и др. Разработчиците на SQL и администраторите на бази данни могат да използват GUI инструмента, за да ускорят почти всякакви сложни задачи на база данни, като проектиране на бази данни, писане на SQL код, сравняване на бази данни, синхронизиране на схеми и данни, генериране на значими тестови данни, между другото.

dbForge Studio за SQL сървър включва Инструмент за план за SQL заявки, специален инструмент за оптимизиране на заявки. Функцията на нейната схема на план за изпълнение помага да се визуализира и настрои планът за изпълнение на заявките, като се посочат бавно изпълняващите възли. Разделът „Изчакване на статията“ на инструмента ви позволява лесно да откривате потенциални затруднения във вашата заявка, като показва списък на събития и чакания, свързани с тях. Йо може също да използва дървото на плана на инструмента, за да получи информация за това как SQL Server изпълнява SELECT оператор. Той ще ви покаже къде добавянето на индекс към таблица или оптимизирането на присъединяването на таблица може например да увеличи производителността.
Инструментът, който също е известен като T-SQL Query Profiler, е вграден в Standard, Profesional иКорпоративни версии на dbForge Studio за SQL сървър, които са на цена съответно $ 249.95, $ 499.95 и $ 699.95. Налична е безплатна 30-дневна пробна версия на целия продукт - не само инструментът за оптимизиране на заявките.
Коментари