Skip to Content

Наблюдение за базами данных MS SQL Server в приложениях .NET

В этой статье описан способ слежения за изменениями, происходящими в БД под управлением MS SQL Server, в приложениях .NET.

Рассмотрим один из примеров ситуации, когда слежение за изменениями в БД необходимо. Пусть существуют два независимых модуля программы. Первый из них — планировщик задач, который запускает различные задачи по расписанию, которое в некотором виде хранится в БД. Второй модуль — подпрограмма, реализующая пользовательский интерфейс; она имеет возможность вносить изменения в расписание, которым руководствуется первый из описанных модулей. Важно: ни один из модулей явно не связан с другим, поэтому планировщик задач может получить информацию о том, что расписание изменилось, только посредством обращения к таблице (таблицам) БД, где это расписание хранится.

Один из вариантов решения задачи слежения за изменениями в таблицах БД — это использование механизма Service Broker в MS SQL Server совместно с объектом SqlDependency из фреймворка .NET.

Читать далее

Установка SQL Server и настройка доступа по сети

В этой статье мы установим SQL Server 2012 Express на Windows Server 2008 R2 и настроим доступ по сети к этому экземпляру БД.

Основные этапы:

  1. Установка SQL Server 2012 Express
  2. Установка .NET Framework 3.5
  3. Включение TCP/IP
  4. Запуск SQL Server Browser
  5. Разрешение входящих соединений в Брандмауэре Windows
  6. Настройка свойства экземпляра в MS SQL Server Management Studio

Читать далее

Оптимизация SQL-запросов (Часть 2)

В данной статье рассматриваются рекомендации по разработке оптимальной структуры БД. В первой части статьи «Оптимизация SQL-запросов (Часть 1)» рассматриваются особенности запросов на выборку данных, виды индексов, использование планов запросов, различные подходы к оптимизации запросов.

Читать далее

Оптимизация SQL-запросов (Часть 1)

В данной статье рассматриваются особенности запросов на выборку данных, виды индексов, использование планов запросов, различные подходы к оптимизации запросов. Во второй части статьи «Оптимизация SQL-запросов (Часть 2)» рассматриваются рекомендации по разработке оптимальной структуры БД.

Введение

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

Читать далее

Расчет нарастающего итога на основе данных, запрошенных из базы

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

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

Читать далее

Таблицы файлов в SQL Server 2012

Традиционным способом хранения в БД неструктурированных двоичных файлов, таких как видео, аудио, картинки и т. п. является определение в таблице поля типа varbinary(max) или применение FILESTREAM, появившегося в SQL Server 2008. В этой статье будет рассмотрен новый подход с использованием таблиц FileTable, которые появились в SQL Server 2012. Технология FileTable основывается на функционале FileStream, при этом расширяя его возможности. В FileTable для организации структуры каталогов используется тип HierarchyId, о котором вы можете прочитать в моей предыдущей статье.

Читать далее

Хранение иерархических структур данных в Microsoft SQL Server

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

Традиционным способом хранения иерархических структур в реляционной БД является определение дополнительного поля, которое будет хранить значение первичного ключа родительской строки. Этот подход ещё называется «parent-child». Хранить иерархии в таком виде очень удобно, но неудобно обрабатывать. В данной статье мы рассмотрим альтернативный подход хранения таких структур с помощью типа данных HierarchyID, появившемся в SQL Server 2008.

Читать далее