• Поиск данных и объектов в базе данных MS SQL Server с помощью бесплатной утилиты dbForge Search

    • Tutorial

    Описание общей потребности в поиске данных и объектов в базе данных


    Поиск данных, а также хранимых процедур, таблиц и других объектов в базе данных является достаточно актуальным вопросом в том числе и для C#-разработчиков, а также и для .NET-разработки в целом.

    Достаточно часто может возникнуть ситуация, при которой нужно найти:

    1. объект базы данных (таблицу, представление, хранимую процедуру, функцию и т д)
    2. данные (значение и в какой таблице располагается)
    3. фрагмент кода в определениях объектов базы данных

    Существует множество готовых решений как платных, так и бесплатных.

    Сначала рассмотрим как можно осуществлять поиск данных и объектов в базе данных с помощью встроенных средств самой СУБД, а затем рассмотрим как это сделать с помощью бесплатной утилиты dbForge Search.
    Читать дальше →
  • Сравнение компараторов для синхронизации схем и данных баз данных MS SQL Server

    • Tutorial

    Описание общей потребности в синхронизации изменений


    При работе с базами данных часто приходится решать проблему синхронизации изменений.
    Если в компании используется всего одна промышленная среда, то в дополнение к ней требуется как минимум еще одна дополнительная среда для тестирования внесенных изменений. В этом случае возникает необходимость переноса изменений из тестовой среды в промышленную.

    С ростом компании может увеличиваться количество необходимых серверов и виртуальных сред, а также может расти количество экземпляров систем управления базами данных, тогда возникает необходимость в более сложной синхронизации.

    Как правило, разработку баз данных ведут в специально выделенной среде. Затем изменения переносят в среду тестирования для проведения различных проверок (юнит-тесты, автотесты, нагрузочные тесты и т д). И только после всех этапов разработки и проверок осуществляют перенос изменений в промышленную среду.

    При достаточно большой инфраструктуре появляется необходимость переносить изменения сразу в несколько промышленных сред. Кроме этого, разработка баз данных может быть разделена на разные среды по функционалу, и тогда необходимо периодически осуществлять перенос изменений между данными средами.

    Встречаются случаи, когда изменения были применены вне среды для разработки и их необходимо в нее перенести. Но такие ситуации нужно минимизировать, чтобы не возникала угроза для корректной работы системы.
    Читать дальше →
  • Обзор бесплатного инструмента SQLIndexManager

    • Tutorial
    Как известно индексы играют важную роль в СУБД, предоставляя быстрый поиск к нужным записям. Потому так важно их своевременно обслуживать. Об анализе и оптимизации написано достаточно много материала, в том числе и в Интернете. Например, недавно делался обзор данной темы в этой публикации.

    Существует множество как платных, так и бесплатных решений для этого. Например, есть готовое решение, основанное на адаптивном методе оптимизации индексов.

    Далее рассмотрим бесплатную утилиту SQLIndexManager, автором которой является AlanDenton.
    Читать дальше →
  • Некоторые аспекты оптимизации LINQ-запросов в C#.NET для MS SQL Server

    • Tutorial
    LINQ вошел в .NET как новый мощный язык манипуляции с данными. LINQ to SQL как часть его позволяет достаточно удобно общаться с СУБД с помощью например Entity Framework. Однако, достаточно часто применяя его, разработчики забывают смотреть на то, какой именно SQL-запрос будет генерировать queryable provider, в вашем случае — Entity Framework.
    Читать дальше →
  • Исследование быстродействия СУБД MS SQL Server Developer 2016 и PostgreSQL 10.5 для 1С

    • Tutorial

    Цели и требования к тестированию «1С Бухгалтерии»


    Основной целью проводимого тестирования является сравнение поведения системы 1С на двух разных СУБД при прочих одинаковых условиях. Т.е. конфигурация баз данных 1С и первоначальная заполненность данными должны быть одинаковыми при проведении каждого тестирования.

    Основными параметрами, которые должны быть получены при тестировании:

    • Время выполнения каждого теста (снимается отделом Разработки 1С)
    • Нагрузка на СУБД и серверное окружение во время выполнения теста снимается- администраторами СУБД, а также по серверному окружению системными администраторами

    Тестирование системы 1С должно выполняться с учетом клиент-серверной архитектуры, поэтому необходимо произвести полноценную эмуляцию работы пользователя или нескольких пользователей в системе с отработкой ввода информации в интерфейсе и сохранением этой информации в базе данных. При этом, необходимо, чтобы большой объем периодической информации был разнесен по большому отрезку времени для создания итогов в регистрах накопления.

    Для выполнения тестирования разработан алгоритм в виде скрипта сценарного тестирования, для конфигурации 1С Бухгалтерия 3.0, в котором выполняется последовательный ввод тестовых данных в систему 1С. Скрипт позволяет указать различные настройки по выполняемым действиям и количеству тестовых данных. Детальное описание ниже по тексту.

    Описание настроек и характеристик тестируемых сред


    Мы в компании Fortis решили перепроверить результаты, в том числе с помощью известного теста Гилева.

    Также нас подстегнуло к тестированию в том числе и некоторые публикации по результатам изменения производительности при переходе от MS SQL Server к PostgreSQL. Такие как: 1С Батл: PostgreSQL 9,10 vs MS SQL 2016.
    Читать дальше →
  • Некоторые аспекты мониторинга MS SQL Server. Рекомендации по настройке флагов трассировки

    • Tutorial

    Предисловие


    Довольно часто пользователи, разработчики и администраторы СУБД MS SQL Server сталкиваются с проблемами производительности БД или СУБД в целом, поэтому весьма актуальным является мониторинг MS SQL Server.

    Данная статья является дополнением к статье Использование Zabbix для слежения за базой данных MS SQL Server и в ней будут разобраны некоторые аспекты мониторинга MS SQL Server, в частности: как быстро определить, каких ресурсов не хватает, а также рекомендации по настройке флагов трассировки.

    Для работы следующих приведенных скриптов, необходимо создать схему inf в нужной базе данных следующим образом:

    Создание схемы inf
    use <имя_БД>;
    go
    create schema inf;
    Читать дальше →
  • Исследование БД и СУБД с помощью T-SQL

    • Tutorial

    Предисловие


    Приветствую вновь тебя, уважаемый читатель Хабра!

    Когда свои реализованные идеи, опыт, а также всю ту информацию, что не дает покоя, оформляешь в публикации, рано или поздно приходит логическая точка всему ранее написанному потоку информации. Эта статья будет отличаться от всех ранее опубликованных мною своей нестрогостью и более свободным стилем изложения текста, а также она завершит изложение всего моего накопленного опыта по MS SQL Server.

    Данная статья является дополнением к статье Исследуем базы данных с помощью T-SQL, а также вкратце рассказывает о созданной базе данных по администрированию SRV и о проектах-утилитах, которые предназначены помочь в работе DBA MS SQL Server.
    Читать дальше →
  • Три аспекта оптимизации (БД и ПО)

    • Tutorial

    Предисловие


    Довольно часто пользователи, разработчики, администраторы и т д СУБД MS SQL Server встречаются с проблемами производительности БД или СУБД в целом.

    В данной статье будут даны общие рекомендации по настройке оптимизации как БД, так и всей СУБД в целом. Также будут даны основные рекомендации по взаимодействию приложения .NET и MS SQL Server. Будут даны примеры решения на большинство из приведенных ниже рекомендаций.

    В данной статье не будут рассматриваться оптимизация аппаратных ресурсов, самой ОС и использование разных встроенных фич для СУБД и ОС в целом, т к это заняло бы целую книгу.
    Читать дальше →
  • Автоматизация удаления забытых транзакций

    • Tutorial

    Предисловие


    Достаточно нередко бывают ситуации, когда транзакция в MS SQL Server бывает забытой тем, кто ее запустил. Самый частый пример этому — запуск скрипта в SSMS, где явно открывается транзакция инструкцией begin tran, затем происходит ошибка, а вот commit или rollback tran не происходит, а инициатор запуска благополучно отошел надолго от этого запроса. В результате с течением времени возникает все больше флуктуации в плане блокировок на запросы, которые запрашивают доступ к заблокированным ресурсам (таблицам, ресурсам сервера (ОЗУ, ЦП, система ввода-вывода).

    В данной статье будет разобран пример автоматизации удаления забытых транзакций.
    Читать дальше →
    • +19
    • 4,7k
    • 8
  • Пример реализации автоматизированного процесса резервного копирования и восстановления баз данных встроенными средствами

    • Tutorial

    Предисловие


    В Интернете можно найти достаточно много примеров по созданию резервных копий баз данных, а также по их восстановлению. Приведем еще один пример встроенными средствами в MS SQL Server.

    В данном примере будут собраны сразу несколько подходов-от проверки целостности базы данных перед созданием резервной копии до восстановления этой базы по уже созданной ранее резервной копии.
    Читать дальше →
    • +10
    • 8,3k
    • 2
  • Пример реализации общего индикатора производительности MS SQL Server

    • Tutorial

    Предисловие


    Часто возникает потребность в создании такого индикатора производительности, который бы показывал состояние СУБД относительно предыдущего периода или конкретного дня. В статье Реализация индикатора производительности запросов, хранимых процедур и триггеров в MS SQL Server. Автотрассировка был предложен пример по реализации такого индикатора. Здесь же опишем еще один более простой способ, который ко всему прочему позволяет посмотреть исторически не просто за сколько выполнился запрос, но и как выполнился, а также получить планы выполнения на каждый момент времени.

    Данный способ особенно полезен при предоставлении ежедневных отчетов выше стоящему руководству, т к его можно не только автоматизировать, но и вывести в отчет с минимальными техническими подробностями.

    В данной статье будет рассмотрен пример реализации такого общего индикатора, где в качестве меры будет браться все время выполнения запросов (Total Elapsed Time).
    Читать дальше →
  • Реализация отказа в MS SQL Server 2017 Standard

    • Tutorial

    Предисловие


    Достаточно нередко можно встретить задачу об обеспечении отказоустойчивости СУБД MS SQL Server. Еще интереснее становится, когда нет лицензии Enterprise, а только Standard.

    Сразу отметим, что рассматриваться лицензия Express не будет, т к по данному экземпляру есть существенные ограничения. Да, некоторые из них можно обойти. Например, максимальный размер БД в 10 ГБ легко решается путем декомпозиции большой БД на более маленькие (например, по какому-то признаку создавать новую БД, а в главной БД в представлениях объединять выборки из одних таблиц разных БД). Но отказоустойчивость в Express будет достигаться либо силами системного администратора, либо использованием собственно разработанного (или стороннего) ПО.

    В данной статье будут вкратце разобраны все существующие стандартные технологии отказоустойчивости для MS SQL Server 2017 и будет рассмотрен пример реализации отказа наиболее подходящего унифицированного из них в лицензии Standard.
    Читать дальше →
  • Перенос заданий и расписаний с одного экземпляра MS SQL Server на другой средствами T-SQL

    • Tutorial

    Предисловие


    Довольно часто бывает необходимо перенести задания Агента на другой экземпляр MS SQL Server. Восстановление базы данных msdb невсегда именно то решение, которое подойдет, т к нередки случаи, когда нужно перенести именно только задания Агента, а также при переходе на более новую версию MS SQL Server. Так как же можно перенести задания Агента без восстановления базы данных msdb?

    В данной статье будет разобран пример реализации скрипта T-SQL, который копирует задания Агента с одного экземпляра MS SQL Server на другой. Данное решение было опробовано при переносе заданий Агента с MS SQL Server 2012-2016 на MS SQL Server 2017.
    Читать дальше →
  • Отправка запроса на все базы данных всех указанных серверов на примере MS SQL Server и C#.NET

    • Tutorial

    Предисловие


    Нередко необходимо послать запрос всем БД (базам данных) всем указанным серверам. Многие DML-запросы можно сделать встроенными средствами. Например, так. Но как быть с DDL-запросами?

    В данной статье будет разобран пример реализации приложения, которое отправляет запрос всем базам данных всех указанных серверов, используя MS SQL Server и C#.NET.
    Читать дальше →
  • 13-я статья о типичных ошибках DBA MS SQL Server

    • Tutorial

    Предисловие


    В данной сжатой статье будет приведен обзор ошибок, последствия которых были весьма ощутимыми и с которыми мне приходилось сталкиваться.

    Статья написана с целью неповторения данных ошибок. И, как говорится, отрицательный опыт — это тоже опыт и порой даже ценнее положительного.
    Читать дальше →
  • Автоматизация по сбору данных о росте таблиц и файлов всех баз данных MS SQL Server

    • Tutorial

    Предисловие


    Часто возникает потребность контролировать рост всех таблиц и файлов всех баз данных.

    В данной статье будет рассмотрен пример того, как можно автоматизировать сбор данных о росте таблиц и файлов баз данных.
    Читать дальше →
  • Использование Zabbix для слежения за базой данных MS SQL Server

    • Tutorial

    Предисловие


    Часто возникает потребность в режиме реального времени сообщать администратору о проблемах, связанных с БД (базой данных).

    В данной статье будет описано, что необходимо настроить в Zabbix для слежения за базой данных MS SQL Server.

    Обращаю внимание на то, что подробно как настраивать приводиться не будет, однако формулы и общие рекомендации, а также подробное описание по добавлению пользовательских элементов данных через хранимые процедуры будут приведены в данной статье.
    Также здесь будет рассмотрены только основные счетчики производительности.
    Читать дальше →
    • +14
    • 29,6k
    • 9
  • Регламентные работы с базой данных информационной системы 24x7 в MS SQL Server

    • Tutorial

    Предисловие


    В данной статье будут разобраны основные регламентные работы с базой данных информационной системы 24x7 (т е у которой нет простоя) и подходы к их выполнению в MS SQL Server. Также прошу заметить, что эта статья будет кратким обзором, т е не все работы будут достаточно детализированы. Однако, данной информации достаточно, чтобы при необходимости изучить более детально ту или иную регламентную работу.

    Буду очень признателен, если в комментариях появятся поправки и дополнения к этой статье.
    Читать дальше →
  • Полезные возможности dbForge для администрирования баз данных MS SQL Server

    • Tutorial

    Предисловие


    В данной статье будут разобраны полезные возможности dbForge, которые помогают в администрировании баз данных MS SQL Server. Также прошу заметить, что не все возможности будут разобраны.

    Буду очень признателен, если в комментариях появятся альтернативные решения, а также дополнения к этой статье.
    Читать дальше →
  • Настройка почтовых уведомлений в MS SQL Server

    • Tutorial

    Предисловие


    Часто возникает потребность каким-либо способом сообщать администраторам о проблемах, возникших на сервере. Причем уведомления в большинстве своем делятся на 2 типа:


    1) реального времени, т. е. те, которые должны приходить сразу при возникновении проблемы
    2) отложенного времени, т. е. те, которые приходят через достаточно продолжительное время (более 1 часа) после возникновения проблемы.


    В моей работе было необходимо расширить функционал обычного Database Mail.


    В данной статье будет рассмотрен пример того, как формировать уведомления в HTML-таблицы с последующей отправкой по почте администраторам.


    Читать дальше →