MS SQL Server далеко не редкость в сети организаций, поскольку часто идет «в нагрузку» к бизнес-приложению. Штатные инструменты обычно большинство разработчиков и администраторов устраивают далеко не полностью. Поэтому неудивительно, что на сегодня доступно большое количество утилит, приложений и аддонов, в том числе и бесплатных, на порядок упрощающих использование MS SQL.

 

Idera SQL check

Бесплатный инструмент мониторинга, позволяющий получать базовую информацию о производительности сервера. Собирает около двадцати показателей: операции чтения/записи, кеш, транзакции, компиляция и перекомпиляция запросов, загрузка CPU и прочие. Результат выводится в виде различных графиков производительности и интуитивно понятной визуализации открытых соединений и транзакций. Бесплатная версия ограничена одним сервером и отображает рекламу коммерческих продуктов той же компании. Поддерживает все версии от SQL Server 2000 SP4. Дистрибутив на сайте будет доступен после простой регистрации, после чего на указанный email придет ссылка для закачки. Установка стандартна, по окончании следует настроить подключение к SQL-серверу. После этого можем увидеть обзорные графики производительности, размещенные в нескольких вкладках. Нажав на кнопку возле графика, получим более подробную информацию. Настроек у программы немного, единственное, на что стоит обратить внимание, — это установка во вкладке Option других интервалов обновления графиков.

У Idera есть еще много полезных бесплатных инструментов для диагностики работы MS SQL, с которыми следует познакомиться: профайлер, анализ фрагментации, просмотр SQL, агрегатор статистики, резервного копирования, модуль и сценарии PowerShell и другие.

Результат мониторинга в Idera SQL check
Результат мониторинга в 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
Панель управления 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
Создание запроса в 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 — основной инструмент DBA MS SQL Server

В отличие от своего ближайшего конкурента SSMS Tools Pack, предлагающего только платную лицензию с демопериодом 60 дней, SSMS Boost можно использовать бесплатно. Для активации необходимо получить код в Extras-About/License-User/Machine и заполнить форму. Функциональных различий между Free и коммерческой Professional нет. Единственный нюанс: придется каждые 120 дней устанавливать новую версию программы (без повторной активации). Установка без сюрпризов, после чего следует перезапустить SSMS, в котором появится новый пункт в меню и в контекстном меню некоторых объектов.

Настройка автозамены в SSMS Boost
Настройка автозамены в 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
Окно SQL Sentry Plan Explorer
 

Вывод

Любому из описанных решений можно легко найти замену, и, конечно, это далеко не весь список приложений, которые пригодятся администраторам и разработчикам, использующим MS SQL Server. Очень много связанных проектов предлагает codeplex.com, также поиск в интернете по ключевым словам SSMS add-in выдаст список еще несколько десятков полезных, в том числе и бесплатных решений.

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии