- Зміст статті MS SQL Server далеко не рідкість в мережі організацій, оскільки часто йде «в навантаження»...
- SqlBak
- SQLFuse
- dbForge Studio for SQL Server
- tSQLt
- SSMS Boost
- SQL Sentry Plan Explorer
- висновок
Зміст статті
MS SQL Server далеко не рідкість в мережі організацій, оскільки часто йде «в навантаження» до бізнес-додатком. Штатні інструменти зазвичай більшість розробників і адміністраторів влаштовують далеко не повністю. Тому не дивно, що на сьогодні є велика кількість утиліт, додатків і аддонів, в тому числі і безкоштовних, на порядок спрощують використання MS SQL.
Idera SQL check
Безкоштовний інструмент моніторингу , Що дозволяє отримувати базову інформацію про продуктивність сервера. Збирає близько двадцяти показників: операції читання / запису, кеш, транзакції, компіляція і перекомпіляція запитів, завантаження CPU і інші. Результат виводиться у вигляді різних графіків продуктивності і інтуїтивно зрозумілій візуалізації відкритих з'єднань і транзакцій. Безкоштовна версія обмежена одним сервером і відображає рекламу комерційних продуктів тієї ж компанії. Підтримує всі версії від SQL Server 2000 SP4. Дистрибутив на сайті буде доступний після простої реєстрації, після чого на вказаний email прийде посилання для закачки. Установка стандартна, після закінчення слід налаштувати підключення до SQL-сервера. Після цього можемо побачити оглядові графіки продуктивності, розміщені в декількох вкладках. Натиснувши на кнопку біля графіка, отримаємо більш детальну інформацію. Налаштувань у програми трохи, єдине, на що варто звернути увагу, - це установка у вкладці Option інших інтервалів поновлення графіків.
У Idera є ще багато корисних безкоштовних інструментів для діагностики роботи MS SQL, з якими слід познайомитися: профайлер, аналіз фрагментації, перегляд SQL, агрегатор статистики, резервного копіювання, модуль і сценарії PowerShell і інші.
Результат моніторингу в Idera SQL check
SqlBak
SqlBak - цікаве рішення в сучасному дусі від розробників популярного рішення для бекапа MS SQL - SQLBackupAndFTP. Реалізований у вигляді онлайн-сервісу, всі налаштування і дії виробляються в веб-браузері, що дозволяє управляти ними з будь-якого місця і пристрої. На сервер при цьому встановлюється програма-клієнт SqlBak Client, що безпосередньо робить усі операції. Забезпечується виконання двох важливих завдань адміністрування. Основна - це створення резервних копій баз даних MS SQL вручну і за розкладом, відновити працездатність можна буквально одним кліком у браузері. Підтримується повний і диференційний бекап, збереження журналу транзакцій. Архіви стискаються zip або 7z. Файли копіюються в локальну або мережеву папку, зовнішній HDD, FTP. І що не менш важливо, підтримуються і хмарні сховища - Dropbox, Google Drive, OneDrive і Amazon S3. Крім цього, ведеться моніторинг працездатності і продуктивності сервера. Якщо виявлені проблеми, звіти по операціях відправляються на вказаний адміністратором email. Підтримується виконання скриптів до і після операції бекапа, генерація контрольних сум, необхідних для перевірки цілісності архіву, верифікація. Кожна база може копіюватися в окремий підкаталог. Можна завантажити архів з резервною копією або відновити на інший сервер. Адміну доступна історія резервних копій, файли яких можна відновити або зберегти.
Реалізовано три тарифні плани. У безкоштовному Free доступна робота тільки з одним сервером і двома БД, не підтримуються хмарні сховища, а моніторинг проводиться з періодичністю одну годину. Хоча цього зазвичай досить для більшості дрібних організацій, особливо з огляду на безкоштовність і можливість управління з будь-якої точки. У версії Professional вже є AES-шифрування архівів, а моніторинг йде щохвилини. Всі з'єднання у всіх тарифних планах захищаються за допомогою SSL.
Для реєстрації в SqlBak досить мати аккаунт в одній з соцмереж (Facebook, Twitter або Google). Щоб підключити агент, знадобиться ключ, який генерується за посиланням Secret Key. Клієнтська програма практично не має налаштувань, і після підключення до SqlBak можна про неї забути. Оновлюється ПО автоматично. Всі дії по конфігурації, моніторингу та відновленню виробляються виключно через веб-сайт SqlBak.com. Вкладок і параметрів трохи, і їх призначення цілком очевидно. Операції по бекапіть відображаються в Dashboard. Вибравши будь-яке завдання, можемо переглянути детальну інформацію. При створенні завдання нічого складного немає, все ті ж установки, що через SSMS. Потрібно вказати комп'ютер, ім'я SQL-сервера і облікові дані, після чого буде отримано список баз. Потім вказуємо, куди копіювати, параметри стиснення, email та інші параметри. Є і демоаккаунт, що дозволяє ознайомитися з основними можливостями без розгортання SqlBak.
Панель управління SqlBak
SQLFuse
У великих і середніх проектах значна частина бізнес-логіки реалізована в збережених процедурах СУБД, тому зручність керування кодом виходить на перший план. Доступні інструменти, навіть комерційні, не завжди дозволяють в повній мірі керувати версіями та відслідковувати зміни, зручно синхронізувати тестову і робочу інфраструктуру і здійснювати навігацію і пошук по коду. Це завдання дуже цікаво і непогано вирішує проект SQLFuse , Що відображає об'єкти SQL-сервера на файлову систему: схеми, таблиці, представлення, збережені процедури, функції, колонки, тригери і інше. Хоча в даний час створення, редагування і видалення підтримується частково. Всі вироблені в файлах зміни накопичуються в кеші, і за таймером проводиться скидання SQL-команд в БД. При збої транзакції відбувається відкат всіх зроблених змін і очищення кеша. Заснований на userspace файлової системи FUSE, використовуваної в * nix. Тому для розгортання знадобиться комп'ютер з будь-яким Linux-дистрибутивом. Збірка стандартна, після чого потрібно активувати профіль, тобто підключення до SQL-сервера у файлі sqlfuse.conf, і авторизацію (логін / пароль) в sqlfuse.auth.conf. Профілів в файлі може бути декілька, що дозволяє працювати з декількома базами. Далі просто монтуємо SQL-сервер в каталог:
$ Sqlfuse -o profilename = SQLServer ./sqlserver
Після цього можна працювати з файлами всередині каталогу стандартними утилітами * nix - vi, cat, mс і так далі. Для зручності використання в якості інструменту для deploy-сервера можна подружити SQLFuse з Git.
dbForge Studio for SQL Server
продукт , Що вийшов із самостійних інструментів і різних доповнень до SQL Server Management Studio та Visual Studio. Середовище розробки, а по суті - такий собі комбайн, який надає рішення для основних завдань DBA і дозволяє без проблем працювати зі складними проектами. Через велику кількість функцій Studio for SQL Server може спочатку здатися дуже складним, але насправді це не так. Наприклад, редактор коду містить помічник SQL Coding Assistance, що дозволяє прискорити написання SQL-коду, за рахунок автодоповнення функцій, імен і параметрів об'єктів, таблиць та іншого. Помічник аналізує контекст і по ходу набору пропонує доступні параметри - заповнити поля запиту виходить швидше, і ймовірність помилки зменшується. Відвідувачі можуть замовити готові шаблони, які можна додавати і редагувати. Доступна функція автоформатирования коду, показ структури, швидкий перехід, підказки та інші дрібниці. Є дизайнер запитів, об'єкти для побудови просто перетягуються з провідника. У редактор інтегрований відладчик T-SQL, що дозволяє знайти джерело помилок в скриптах, збережених процедурах, тригерах і функціях, спостерігаючи за їх поведінкою під час виконання. При налагодженні можливий запуск скрипта повністю, в покроковому режимі і до точок зупину. У складі два Профілювальники - запитів і подій сервера, вони дозволяють переглядати час виконання, знаходити вузькі місця і оптимізувати повільні запити за допомогою налаштувань. Швидко налаштувати потрібні операції в SQL Server Event Profiler допомагає майстер. Отриманий звіт показує список всіх подій, що відповідають обраним критеріям, додаткові параметри дозволяють виділити і контролювати найбільш цікаві події. Є ще дизайнер таблиць, який дає можливість легко створювати і пересоздавать таблиці. Діаграма виводить структуру бази даних.
Для перенесення даних SQL в нову базу даних після оновлення або створення резервної копії запропонований майстер експорту та імпорту даних, що підтримує дванадцять різних форматів (CSV, Excel, DBF, Access, XML та інші). Імпорт можливий в нові або вже існуючі таблиці, в різних режимах (Append, Update, Delete, Repopulate). Шаблони імпорту дозволяють в подальшому регулярно імпортувати дані через інтерфейс командного рядка. Гарним доповненням до функцій імпорту / експорту йде можливість створення знімка, синхронізації і порівняння даних, адміністратор при цьому отримує звіт, що дозволяє планувати подальші операції. Генератор звітів, наочно представляє дані, підтримує можливість автоматичної генерації і розсилки. За допомогою Security Manager адміністратор створює облікові записи СУБД, призначає їм ролі і привілеї.
Для закачування безкоштовної версії буде потрібно реєстрація. Установка стандартна, в процесі можна задати асоціацію з розширеннями файлів. Далі у вікні налаштовуємо підключення до SQL-сервера, і можна працювати. Інтерфейс локалізований, тому будь-яких труднощів його освоєння не представляє.
Створення запиту в dbForge Studio for SQL Server
tSQLt
фреймворк unit-тестів з відкритим вихідним кодом. Зручний тим, що під час розробки не доведеться перемикатися між різними інструментами для створення коду і тестів. Сам тест являє собою процедуру, що зберігається, ім'я якої починається зі слова test. Для зручності тести можуть об'єднуватися в класи - схеми SQL Server. Кожен клас може мати свою процедуру SetUp, яка буде викликатися перед запуском тесту. Типовий тест складається з трьох частин: підготовки оточення, виконання коду і перегляду результатів. Тести можуть ізолюватися одна від одної, ця функція реалізується за допомогою механізму транзакцій. З тестувальника при цьому знімається будь-яка робота з очищення. Кілька процедур допомагають визначити проблемні місця в тесті.
На виході отримуємо файл в текстовому або XML-форматі, тому можемо його легко інтегрувати з іншим інструментом. Для порівняння очікуваних і отриманих результатів роботи тестованого коду використовується набір процедур Assert *, що робить тест більш читабельним і схожим на звичні unit-тести. Природно, можна використовувати свій власний код для порівняння результатів і очікувань, викликаючи процедуру tSQLt.Fail з описом помилки, якщо тест не пройдений. Перевіряється код ізолюється за допомогою підроблених таблиць, уявлень і збережених процедур. При використанні tSQLt слід враховувати, що кожен тест tSQLt обертає в транзакцію, якщо в своїй збереженій процедурі вже використовуються транзакції, це може видати помилку.
Перед початком роботи з tSQLt необхідно провести ряд операцій: налаштувати екземпляр SQL Server для роботи з CLR і виконати SQL-скрипт, що йде в архіві. Параметри tSQLt дозволяють при запуску виконати всі тести всіх тестових класів, всі тести класу, конкретні тести класу або останні виконані тести.
До tSQLt є і зручний інтерфейс SQL Test, розроблений сторонньою компанією Redgate у вигляді плагіна до SSMS. Правда, він не безкоштовний.
SSMS Boost
Management Studio надається безкоштовно і покриває більшість потреб розробника. При цьому нові приємні можливості з'являються в кожній версії, проте багато питань в ньому реалізовані не зовсім вдало або не реалізовані зовсім. Це дало поштовх стороннім розробкам, і за довгий час з'явилася велика кількість різних доповнень до SSMS. Одна з них - SSMS Boost . Ця надбудова додає різні корисності, що дозволяють прискорити виконання більшості щоденних завдань, які виникають при роботі DBA. Вона забезпечує швидкий доступ до процедур, роботу з сесіями, функціями і кодом, форматування і генерацію коду для даних, вивантаження в Excel і багато іншого. Одна з найбільш затребуваних функцій - можливість збереження поточної роботи (відкритих документів і з'єднання з базами даних) в сесію і відновлення робочого оточення за потребою. При включенні комп'ютера це дозволяє відразу повернутися до того, з чим працював. Раніше для цього доводилося використовувати сплячий режим комп'ютера, що не завжди зручно. Також підтримується історія запитів і всього, що редагував у вікні SSMS. Це означає, що після невеликого пошуку можна знайти і повторити будь-яку операцію, а не складати запит повторно, якщо така необхідність виникне після певного часу.
SSMS дозволяє перемикатися тільки між базами в межах сервера, а з SSMS Boost ми можемо швидко перемикатися між декількома серверами, для цього достатньо лише заповнити список Preferred Connections. Щоб не заплутатися, в заголовку вікна SSMS відображається ім'я документа і дані з'єднання.
За допомогою SSMS Boost легко відкрити скрипт або створити об'єкт з SQL-редактора без пошуку його в дереві. Для цього достатньо вибрати ідентифікатор об'єкта і натиснути F2 або в контекстному меню клацнути по пункту Script Object. Буде виконаний пошук допустимих ідентифікаторів на місці курсору, після чого виводиться їх список. Просто відзначаємо потрібний, і все. Так само легко знаходиться об'єкт в загальному дереві (). Можливо автоматичне форматування блоку або всього коду. Реалізовано розширений пошук об'єктів по всіх або обраних серверів і баз. Передбачено створення з команд SSMS міні-макросів, які можна виконати за допомогою однієї клавіші. Для генерації скриптів доступна велика кількість опцій. Швидкий доступ можна перепризначити (в SSMS це стало можливим з 2012). Пропонується автозамена тексту на код, що настроюється через Extras-Settings. Працює вона просто: набираємо початок комбінації, потім пробіл, плагін сам допише інше. За замовчуванням список автозаміни містить шість варіантів, але при бажанні його можна доповнити своїми інструкціями. Так само легко можна згенерувати умова відбору зазначених даних (Script Data as -> Where ...).
SSMS - основний інструмент DBA MS SQL Server
На відміну від свого найближчого конкурента SSMS Tools Pack , Що пропонує тільки платну ліцензію з демоперіодом 60 днів, SSMS Boost можна використовувати безкоштовно. Для активації необхідно отримати код в Extras-About / License-User / Machine і заповнити форму . Функціональних відмінностей між Free і комерційної Professional немає. Єдиний нюанс: доведеться кожні 120 днів встановлювати нову версію програми (без повторної активації). Установка без сюрпризів, після чого слід перезапустити SSMS, в якому з'явиться новий пункт в меню і в контекстному меню деяких об'єктів.
Налаштування автозаміни в SSMS Boost
SQL Sentry Plan Explorer
Частенько буває, що деякий запит працює повільно, хоча ніби як проблем бути не повинно зовсім. В цьому випадку ситуацію необхідно досліджувати більш глибоко. SQL Profiler і Management Studio надають дуже хороший інтерфейс для вивчення запитів і планів виконання (Execution Plan), але його інформація не завжди очевидна. Тут виручає продукт SQL Sentry Plan Explorer , Який спочатку розроблявся для служби підтримки SQL Sentry, але згодом компанія вирішила зробити його доступним іншим. Дозволяє переглядати план виконання різними способами і легко перемикатися між численними запитами, оцінювати і налаштовувати запити за допомогою інтуїтивного аналізу плану виконання. Програма оцінює запит, використання ресурсів (інтенсивність I / O, CPU), визначає обсяг даних, кількість рядків, результат наочно виводиться у вигляді таблиці і схеми, яка б показала ієрархічне представлення плану запиту, де можна швидко визначити важкі запити і незбалансований розподіл потоків в паралельних операціях . Діаграма показує основні таблиці і стовпчики, визуализируя відносини між ними. Редагуючи запит, можемо аналізувати зміну, порівнюючи результат. В окремій вкладці показані вирази, які використовуються в запиті, їх аналіз дозволяє в тому числі побачити неявні перетворення, які можуть уповільнювати його виконання. Дані при необхідності можна сортувати, щоб зосередитися на важливих в даний момент.
Може встановлюватися як окремий додаток і як аддон до SSMS. Представлений в двох версіях: безкоштовної FREE і комерційної PRO. Поширюється у вигляді єдиного файлу, що включає обидві версії. Якщо після п'ятнадцяти днів чи не ввести ліцензійний ключ, можливості програми автоматично конвертуються в Free (після установки можна відразу вибрати варіант Free).
Вікно SQL Sentry Plan Explorer
висновок
Будь-якому з описаних рішень можна легко знайти заміну, і, звичайно, це далеко не весь список програм, які стануть в нагоді адміністраторам і розробникам, що використовують MS SQL Server. Дуже багато пов'язаних проектів пропонує codeplex.com, також пошук в інтернеті за ключовими словами SSMS add-in видасть список ще кілька десятків корисних, в тому числі і безкоштовних рішень.