[Из песочницы] Бесплатные инструменты для разработчиков баз данных
После прочтения статьи о полезных и бесплатных плагинах для SSMS — TOP (10) бесплатных плагинов для SSMS, я решил поделиться своим списком бесплатных инструментов, которые могут быть очень полезны разработчикам баз данных, и не только. Некоторые инструменты, платные, однако содержат достаточно полнофункциональные бесплатные редакции, которых с головой хватает для небольших проектов.
Мощная среда разработки для SQL Server от компании Devart. Данный продукт включает в себя огромнейший набор инструментов, которые значительно ускоряют и облегчают выполнение повседневных задач: продвинутый IntelliSence, визуальные дизайнеры таблиц и запросов, диаграммы баз данных, T-SQL дебаггер, профилировщик запросов, сравнение данных и схем, генерация тестовых данных, работа с source control, поддержка unit-test — ов, создание бэкапов, и многое многое другое. Этакий швейцарский нож для разработчика.
Цена англоязычной версии данного инструмента почти 700$. Однако, существует express редакция, которая является бесплатной. Понятно, что функционал в ней урезан, и для полноценной работы его может быть недостаточно. Но не стоит расстраиваться, ведь существует русскоязычная версия продукта, которая, что называется — FULL-FEATURED. Она абсолютно бесплатна для некоммерческого использования. Если у вас open-source проект, если вы хотите работать с базами дома, если вы представляете учебное заведение — этот инструмент для вас!
Если при создании пользовательских функций используется параметр WITH ENCRYPTION, который в системном каталоге кодирует информацию, содержащую текст инструкции СREATE FUNCTION, таким образом предотвращая несанкционированный доступ к просмотру текста создания функции. То в дальнейшем, не имея исходников, и такого инструмента, просмотреть DLL объекта невозможно.
Бесплатный инструмент, который позволяет производить мониторинг и анализировать события SQL Server’а. Вы можете использовать полученную информацию для выявления и устранения многих проблем.
Бесплатный веб-сервис, который позволяет форматировать T-SQL код. Вы можете писать код прямо в редакторе, а затем отформатировать его, или подгрузить из внешнего файла.
Инструмент, который позволяет форматировать и проводить рефакторинг SQL кода. Имеет большое количество настроек. По этой ссылке можно посмотреть на примеры форматирования.
Бесплатный инструмент (плагин для SSMS), который позволяет значительно сократить время и сберечь нервы при написании T-SQL кода. Инструмент предлагает: всевозможные подсказки по объектам, авто дополнение стейтментов, сниппеты, навигацию к объектам из кода, логгирование каждого выполненного запроса, pick листы объектов, и многое другое!
Бесплатный набор из 28 must–have скриптов от экспертов компании Redgate, который поможет автоматизировать общие задачи устранения неполадок, диагностики и обслуживания. Наиболее популярные скрипты: CPU–intensive queries, SQL Server Maintenance Solution, Top resource waits, Blocking transactions, и многие другие.
Мониторинг производительности сервера в реальном времени. Инструмент позволяет отслеживать 20 ключевых метрик производительности: операции чтения/записи, кэш, транзакции, компиляция и рекомпиляция запросов, загрузка CPU и другие. Результаты отображаются в виде графиков производительности, визуализации открытых соединений и транзакций. Бесплатная версия ограничена только одним сервером. Кстати, на сайте компании есть еще целый набор полезных бесплатных инструментов.
Набор хранимых процедур от MVP Ola Hallengren для обслуживания как пользовательских, так и служебных баз данных на стороне SQL Server. Скрипты сопровождаются инструкциями и примерами. В 2010 году, этот набор скриптов был удостоен бронзовой награды Editor«s Choice Bronze Award, как самый лучший бесплатный инструмент. В 2011 получил серебро и золото от комьюнити.
Набор хранимых процедур от Brent Ozar Unlimited
sp_Blitz — хранимая процедура, для мониторинга состояния SQL Server–а и проблем производительности. При выполнении процедуры с дефолтными параметрами, вы получите список проблем для указанного экземпляра SQLсервера упорядоченный по степени важности, этакий to-do лист. Наиболее критичные моменты имеют приоритет 1, и далее по возрастанию. Для использования, необходимо запустить sp_Blits.sql, который развернет необходимые процедуры в master. Далее в новом sql документе выполняем sp_Blitz.
sp_BlitzCache — хранимая процедура, с кучей опций, которая показывает наиболее малоэффективные запросы, и многое другое. Например, следующий запрос:
EXEC sp_BlitzCache @top = 10, @sort_order = ‘duration’
Выдаст вам топ 10 запросов, выполнение которых занимает наибольшее количество времени. Например, если запрос выполняется 10 секунд, и вызывается 1000 раз, то общее время выполнения будет 10 000 секунд. В «табеле о рангах» такой запрос будет стоять выше, чем запрос, который выполняется 500 секунд, но однократно. Более подробно можно почитать тут: Using sp_BlitzCache Advanced Features
Brent Ozar:
This is the opposite of the leaderboard — this is the Suckerboard.
sp_BlitzIndex — это инструмент, который поможет вам проанализировать индексы: узнать есть ли у вас повторяющиеся индексы, или индексы, которые не используются, и многое другое.
sp_BlitzRS — процедура для поиска потенциальных проблем и анализа производительности и запросов SQL Server Reporting Services. Процедура поможет вам ответить на такие вопросы, как:
- Какие подписки были у сотрудника (например) при увольнении?
- С чем связана медленная работа сервера? Проблема в медленных запросах или запрос возвращает много данных?
- Что лучше использовать для отчёта: кэширование или снэпшот?
- Используют ли отчеты «опасные» настройки?
Процедура быстро проверит активность на SSRS и предоставит рекомендации по улучшению ситуации. Каждый пункт содержит ссылку на сайт, с подробным описанием и способами решения проблемы, что позволит лучше разобраться в ситуации. Видео о процедуре.
sp_BlitzTrace — хранимая процедура, которая позволит вам легко и быстро использовать SQL Server Extended Events. Она покажет сколько процессорных ресурсов использует тот или иной запрос, какое количество логических чтений он использует, какие временные объекты созданы и так далее.
Онлайн сервис от разработчиков популярного решения для бэкапа SQLBackupAndFTP. Инструмент позволяет создавать резервные копии MS SQL вручную или по расписанию (поддерживается полный и дифференциальный бэкап и сохранение журнала транзакций.). Так же, производится мониторинг работоспособности и производительности сервера. При обнаружении проблем, отчеты отправляются администратору по электронной почте.
Все настройки производятся в браузере, что позволяет управлять инструментом с любого устройства. На сервер необходимо установить SqlBak Client, который будет производить все операции.
В общем, инструмент платный, однако есть и бесплатный план. В этом плане вы можете работать с одним сервером и двумя базами данных. Мониторинг производится с периодичностью один раз в час, чего вполне достаточно для небольших проектов.
Значительная часть бизнес логики в крупных проектах реализовывается в хранимых процедурах и удобство управления кодом — одна из важных задач. Не все доступные инструменты позволяют удобно работать с версиями, производить мониторинг изменений, синхронизировать тестовые и рабочие среды. Для решения таких задач, вам может помочь проект SQLFuse. Это файловая система пользовательского режима, основанная на FUSE, которая отображает объекты сервера SQL на файловую систему: схемы, таблицы, представления, хранимые процедуры, функции, колонки, триггеры и др. Кроме отображения объектов SQLFuse частично поддерживает их создание, редактирование и удаление.
Все изменения в файлах накапливаются в кэше, и по счетчику производится сброс SQL-команд в базе. Если происходит сбой транзакции, то все изменения откатываются и кэш очищается.
Замечательный бесплатный фреймворк с открытым исходным кодом для проведения T-SQL unit тестов. О том, как работать с данным инструментом очень подробно изложено в следующей статье: tSqlt — модульное тестирование в Sql Server
Плагин для Visual Studio c открытым исходным кодом. Инструмент значительно расширяет среду SQL Server BI Development Studio 2005, 2008, или 2008 R2, а также SQL Server Data Tools BI 2012, 2014. Список всех доступных фич можно посмотреть в документации к продукту.
Данный инструмент позволяет работать с секционированными (партиционированными) таблицами.
Надеюсь, что данная подборка окажется вам полезной, и вы будете использовать эти инструменты в своей практике. Если есть идеи по дополнению данного списка, пожалуйста, пишите в комментариях.
Спасибо за внимание!