Microsoft sql server 2012 data tier app framework что это

Обновлено: 07.07.2024

Создание приложений слоя данных для SQL Server 2008 R2

Взаимодействие разработчиков и администраторов БД (АБД) всегда было проблемой для жизненного цикла разработки приложения. Visual Studio 2005 Database Edition и Visual Studio 2008 Database Edition GDR во многом ликвидировали этот разрыв, но им все еще не хватало гибкости и простоты сотрудничества между разработчиком и АБД при развертывании приложений. При использовании этих продуктов разработчик и АБД должны были тесно взаимодействовать при развертывании; хотя разработка и упростилась, развертывание оставалось проблемой из-за того, что оно по своей природе интерактивно и требует выполнения многих шагов вручную.

В SQL Server 2008 R2 и Visual Studio 2010 появилась новая возможность - Data-Tier Applications (приложения слоя данных, DAC), существенно упростившие разработку, развертывание и управление приложениями. Первая версия DAC нацелена на уровень отдела (то есть относительно небольших приложений), но в будущем планируется поддержка приложений уровня предприятия.

При создании и сборке проекта Data Tier Application (он имеет то же расширение, что и проекты БД, т.е. dbproj) создается самодостаточный модуль развертывания, DAC-пакет (с расширением dacpack), в котором содержатся объекты экземпляра SQL Server, ассоциированные с БД, объектами БД и условиями развертывания. Другими словами, разработчик БД может спланировать и создать БД и передать готовый DAC-пакет АБД для развертывания. АБД просто разворачивает DAC-пакет на нужном экземпляре SQL Server или автоматизирует этот процесс с помощью PowerShell.

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

  • Visual Studio 2010 в случае новой или существующей БД.
  • SQL Server 2008 R2 Management Studio в случае уже существующей БД.
  • PowerShell в случае уже существующей БД.

Приложения слоя данных могут использоваться на SQL Server 2000 и более поздних версиях, но DAC-пакеты можно развертывать только на SQL Server 2008 SP2, SQL Server 2008 R2 и SQL Azure.

Создание Data Tier Applications с помощью Visual Studio 2010

Создавать Data Tier Applications позволяют версии Visual Studio 2010 Professional, Premium и Ultimate.

Чтобы создать Data Tier Application, откройте Visual Studio 2010 и создайте новый проект, как показано на рисунке 1. На странице New Project Template выберите узел SQL Server в ветке Database слева, и шаблон SQL Server Data Tier Application – справа. Затем укажите имя проекта и место, где вы хотите его создать.

После нажатия на кнопку ОК будет создан новый проект Data Tier Application. Структура проекта будет аналогична показанной на рисунке 2. Проект можно просмотреть в Solution Explorer или Schema View.



Рисунок 1. Шаблон проекта Data Tier Application



Рисунок 2. Data Tier Application в Solution Explorer

Пока что мы создали пустое Data Tier Application; оно пока не содержит никаких объектов. Далее у нас есть три пути.

Приложение уровня данных (DAC) является логической сущностью управления базой данных, которая определяет все объекты SQL Server, например таблицы, представления и объекты экземпляров, в том числе имена для входа, связанные с базой данных пользователя. Приложение уровня данных — это автономная единица развертывания базы данных SQL Server, которая позволяет разработчикам уровня данных и администраторам базы данных группировать объекты SQL Server в переносимый артефакт, называемый пакетом приложения уровня данных или пакетом DAC.

Пакет BAC — это связанный артефакт, который инкапсулирует схему базы данных и данные, хранящиеся в базе данных.

Преимущества приложений уровня данных

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

Приложение уровня данных — это средство управления жизненным циклом базы данных и производительностью, обеспечивающее декларативную разработку базы данных для упрощения развертывания и управления. Разработчик может создавать базу данных в проекте базы данных SQL Server Data Tool, а также в пакете DAС для передачи администратору баз данных. Администраторы базы данных могут разворачивать приложение уровня данных с помощью среды SQL Server Management Studio на тестовый или производственный экземпляр SQL Server или База данных SQL Azure. Кроме того, администратор базы данных может использовать пакет DAC для обновления ранее развернутой базы данных при помощи среды SQL Server Management Studio. Для завершения жизненного цикла администратор может извлечь базу данных в пакет DAC и передать ее разработчику для выполнения тестирования или производственных настроек или для выполнения изменений схемы базы данных в ответ на изменения в приложении.

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

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

Основные понятия DAC

Приложение уровня данных упрощает разработку, развертывание и управление элементами уровня данных, которые поддерживают приложение.

Приложение уровня данных (DAC) является логической сущностью управления базой данных, которая определяет все объекты SQL Server, например таблицы, представления и объекты экземпляров, в том числе имена для входа, связанные с базой данных пользователя. Это автономная единица развертывания базы данных SQL Server, которая позволяет разработчикам уровня данных и администраторам базы данных группировать объекты SQL Server в переносимый артефакт, называемый пакетом приложения уровня данных или файлом DACPAC.

В общем средства приложения уровня данных можно использовать для чтения файлов пакета DAC, созданных средствами приложения уровня данных в предыдущих версиях SQL Server, а также для развертывания пакетов DAC в предыдущих версиях SQL Server. Однако средства приложения уровня данных более ранних версий не могут читать файлы пакета DAC, созданные средствами приложения уровня данных более поздних версий. В частности:

Операции приложения уровня данных появились в SQL Server 2008 R2. Наряду с базами данных SQL Server 2008 R2, эти средства поддерживают создание файлов пакета DAC в базах данных SQL Server 2008, SQL Server 2005 и SQL Server 2000.

Наряду с базами данных SQL 2016 эти средства, поставляемые в составе SQL Server 2016, могут читать файлы DACPAC, созданные средствами приложения уровня данных, входящими в состав SQL Server 2008 R2 или SQL Server 2012. В том числе базы данных SQL Server 2014, 2012, 2008 R2, 2008 и 2005, но не SQL Server 2000.

Средства приложения уровня данных в SQL Server 2008 R2 не могут читать файлы DACPAC, созданные средствами из SQL Server 2012 (11.x) или SQL Server.

Пакет DAC — это файл Windows с расширением DACPAC. Этот файл имеет открытый формат, состоящий из нескольких XML-разделов, которые отображают сведения об исходном объекте пакета DAC, объектах базы данных и других характеристиках. Опытный пользователь может распаковать файл с помощью служебной программы DacUnpack.exe, которая входит в состав продукта для подробного исследования каждого раздела.

Для создания базы данных, в том числе с помощью развертывания пакета DAC, пользователь должен быть членом роли dbmanager или иметь разрешения CREATE DATABASE. Для удаления базы данных пользователь должен быть членом роли dbmanager или иметь разрешения DROP DATABASE.

Средства приложения уровня данных

Файл DACPAC может свободно использоваться в нескольких средствах, поставляемых с SQL Server. Эти средства удовлетворяют потребности различных пользователей с помощью пакета DAC в качестве единицы взаимодействия.

Могут использовать проект базы данных SQL Server Data Tools для проектирования базы данных. Успешное построение такого проекта приводит к созданию пакета DAC, который содержится в файле DACPAC.

Могут импортировать файл DACPAC в проект базы данных и продолжить проектирование базы данных.

Средства SQL Server Data Tools также поддерживают локальные базы данных для изолированной разработки приложений баз данных на стороне клиента. Разработчик может сделать моментальный снимок этой локальной базы данных для создания пакета DAC, содержащегося в файле DACPAC.

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

Администраторы базы данных:

Могут использовать среду SQL Server Management Studio для извлечения файла DACPAC из существующей базы данных, а также для выполнения других операций приложения уровня данных.

Кроме того, для операций приложения уровня данных администратор базы данных База данных SQL может использовать портал Azure.

Независимые поставщики программного обеспечения:

  • Службы размещения и другие продукты управления данными SQL Server могут использовать API-интерфейс DACFx для операций приложения уровня данных.
  • Системные интеграторы и ИТ-администраторы могут использовать программу командной строки SqlPackage.exe для операций приложения уровня данных.

Операции приложения уровня данных

Приложение уровня данных поддерживает следующие операции:

ИЗВЛЕЧЕНИЕ — пользователь может извлечь базу данных в DACPAC.

РЕГИСТРАЦИЯ — пользователь может зарегистрировать базу данных в качестве приложения уровня данных.

Пакет BAC

Пакет BAC (BACPAC) — это файл Windows с расширением BACPAC, который инкапсулирует схему базы данных и данные. В основном файлы BACPAC используются для перемещения базы данных с одного сервера на другой или с локального сервера на облачный, а также для архивации существующих баз данных в открытом формате.
Подобно DACPAC, формат файла BACPAC является открытым — содержимое схемы BACPAC идентично содержимому схемы DACPAC. Данные в BACPAC хранятся в формате JSON.

Пакеты DAC и BAC похожи, но предназначены для разных сценариев. Пакет DAC осуществляет захват и развертывание схемы, включая обновление существующей базы данных. В основном файлы DACPAC используются для развертывания четко определенной схемы сперва в средах проектирования и тестирования, а затем в рабочих средах. Справедливо и обратное: захват рабочей схемы и применение ее в средах тестирования и разработки.

С другой стороны, BACPAC выполняет захват схемы и данных, поддерживая две основные операции:

ЭКСПОРТ — пользователь может экспортировать схему и данные из базы данных в BACPAC.

ИМПОРТ — пользователь может импортировать схему и данные в новую базу данных на основном сервере.

Обе эти возможности поддерживаются средствами управления базами данных: средой SQL Server Management Studio, порталом Azure и API DACFx.

Разрешения

Для создания базы данных, в том числе с помощью развертывания пакета DAC, пользователь должен быть членом роли dbmanager или иметь разрешения CREATE DATABASE. Для удаления базы данных пользователь должен быть членом роли dbmanager или иметь разрешения DROP DATABASE.

Всё необходимое для установки можно найти на странице загрузки в Data Developer Center. Выбрав необходимую версию вы сможете без труда установить инструменты на свой компьютер и описывать это не вижу смысла. После установки в окне создания нового проекта у вас появится новый тип проекта:


Создав новый проект вы увидите следующее:


На панели SQL Server Object Explorer (меню View -> SQL Server Object Explorer) мы видим нечто очень похожее на Object Explorer в SQL Server Management Studio, из которого убрано всё, что не имеет большого смысла на этапе разработки базы данных.
Подключившись к существующей базе, можно производить разработку базы данных в так называемом Connected режиме. Это мало чем отличается от классического подхода используемого в SQL Server Management Studio и в данной статье рассматриваться не будет.

Disconnected режим

Этот режим разработки нам наиболее интересен, т.к. именно он позволяет получить основные преимущества использования SSDT.
В основе работы лежит очень простая идея – позволить разработчикам хранить все скрипты создания объектов БД (tables, views, store procedures и т. д.) в проекте специального типа в составе имеющегося или нового решения (solution). На основе скриптов, Visual Studio может сгенерировать DACPAC файл, который по сути является zip архив со всеми t-sql скриптами. Имея DACPAC файл можно будет произвести публикацию (publish) на требуемом экземпляре базы данных, путём сравнения схемы описанной в DACPAC и схемы в целевой базе данных. В ходе публикации, специальные механизмы производят сравнения, в результате чего автоматически создаются миграционные скрипты для применения изменений без потери данных.
Для того что увидеть это в действии, предлагаю посмотреть следующие примеры.
Начнём с возможности импорта. Вызываем контекстное меню проекта и видим 3 возможных варианта:

  • Script (*.sql) – добавляет один или несколько *.sql файлов из заданного расположения в структуру проекта;
  • Data-tier Application (*.dacpac) – добавляет *.sql файлы, а так же различные настройки базы данных из специального DACPAC файла, описанного выше; может содержать не только схему базы, но так же данные и различные настройки базы;
  • Database… — аналогичен предыдущему варианту, но источником данных служит существующая база

После завершения импорта мы увидим крайне похожую картину, с тем единственным различием, что структура базы будет представлена в Solution Explorer в качестве *.sql файлов.

Так же мы всегда можем добавить новые элементы воспользовавшись диалоговым окном Add New Item, в котором перечислены все возможные объекты базы данных:

Добавим таблицу TestTable. Новый файл-скрипт TestTable.sql будет добавлен в корень проекта и для удобства мы его перенесём в папку Tables.

Для создания схемы таблицы мы можем использовать как панель дизайнера, так и панель T-SQL. Все изменения сделанные на одной панели будут сразу же отображены в другой.
Так же мы можем изменять существующие скрипты. Visual Studio для этого предоставляет удобный и любимый всеми IntelliSense. Так как мы не подключены к физической базе данных, Visual Studio для корректной работы IntelliSence парсит все скрипты в проекте, что позволяет ей мгновенно отражать последние изменения сделанные в схеме базы данных.

Хочу обратить внимание на то, что мы не должны заботиться об инкрементных изменениях нашей базы. Вместо этого мы всегда создаём скрипты так, как если бы объекты создавались заново. При публикации DACPAC пакета миграционные скрипты будут сгенерированы автоматически, путём сравнения DACPAC файла и схемы в целевой базе (target Database).
Как уже упоминалось, DACPAC содержит не только схему и данные, но ещё и ряд полезных настроек, для просмотра/редактирования которых мы можем воспользоваться окном свойств нашего проекта.

На закладке Project Settings, мы можем задать настройки базы данных, нажав на кнопку Database Settings. Нажав на неё мы увидим диалог с настройками, аналогичные тем, что мы привыкли видеть в SQL Server Management Studio:

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

Публикация DACPAC файла (publishing)

После того, как все настройки заданы и *.sql скрипты добавлены/обновлены мы можем применить изменения к целевой базе (target database). Для этого идём в меню Build->Publish или же выбираем аналогичный пункт в контекстном меню проекта.

В появившемся диалоговом окне задаём строку подключения к базе назначения (target database) и если необходимо — дополнительные настройки, нажав на кнопку Advanced:

Большинство настроек понятны без дополнительного описания, поэтому не будем на них останавливаться подробно, но рекомендую с ними ознакомиться, что бы в случае невозможности успешно «запаблишить» проект, вы знали в чём может быть проблема.

Если требуется производить публикацию в целевую базу данных более одного раза, то настройки можно сохранить в publish профиль, нажав на кнопку Create Profile. Это добавит в наш проект файл с расширением *.publish.xml и в дальнейшем мы сможем произвести публикацию без необходимости вводить настройки ещё раз. Если же какой-то из профилей публикации должен быть использован по умолчанию, то можно в контекстном меню файла публикации выбрать пункт Set As Default Publish Profile. Этот профиль будет автоматически загружаться в диалог Publish.

Data Seeding

В нашем проекте создадим папку DataSeeding (имя не имеет значения) и в неё добавим новый скрипт.

По сути все типы в разделе User Script являются обычными *.sql скриптами и отличаются лишь значением свойства “Build Action” у вновь созданного файла.

Логика из файла PostDeployment.sql будет выполнена после применения всех изменений схемы базы данных. В случае создания PreDeployment.sql — логика выполнится перед применением изменений схемы.
Значение свойства Build Action для файлов созданных через шаблон Script (Not in Build) будет установлено в «None». Они полезные для удобного структурирования команд в отдельных файлах, которые вызываются из Pre или Post Deployment скриптов.
Файлы созданные через шаблон Script имеют значение Build Action равное «Build», и их содержимое добавляется к результирующему скрипту, который выполняется при publish’e DACPAC файла в момент изменения схемы базы.
В виду того, что в проекте может быть только один Post Deployment script и его размер может быстро вырасти, рекомендуется логику вставки данных выносить в отдельные скрипты. Именно поэтому мы добавим файл типа Script (Not in Build), а в Post Deployment script добавим ссылку на него. Вот как это будет выглядеть:

Теперь при публикации нашего проекта, в базе всегда будут вставлены 2 записи в таблицу Employees.

Tools -> SQL Server

На ряду с возможностью создания Database проекта, установка SSDT добавляет ряд полезных инструментов, доступных из меню Tools.

Думаю, что из названия и так понятно, что каждый из пунктов делает. Как пример, покажу удобный графический инструмент сравнения схем. В качестве источника и целевого объекта можно выбрать один из трех вариантов:

Мы сравним наш проект с локальной базой данных. Результат сравнения будет выглядеть следующим образом:

В результирующем окне мы можем применить различные способы группировки (по схеме, по типу объектов и по требуемому действию) для более удобного просмотра предлагаемых изменений и выбрать те объекты, которые требуется обновить. Для того, что бы применить миграционный скрипт необходимо нажать кнопку Update – это приведёт Target DB к состоянию нашего проекта.

Refactoring

Это моя любимая фича. Для примера, покажем как переименовать колонку LastName в таблице Employees. Для этого открываем скрипт создания таблицы, в редакторе таблицы выделяем колонку LastName и в меню SQL -> Refactor выбираем пункт Rename:


Задаём новое имя:


Просматриваем последствия переименования и применяем предложенные изменения:


В результате все скрипты будут изменены и после первого рефакторинга в проект будет добавлен специальный файл *.refactoring. В нём будут сохраняться все изменения схемы в историческом порядке в формате XML документа. Эти данные будут полезны при генерации миграционного скрипта и позволят более правильно мигрировать схему и данные.

Unit testing

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

В появившемся диалоговом окне у нас будет возможность выбрать дополнительные объекты (если они есть) и задать тип и имя тестового проекта и имя класса, содержащего код юнит теста:


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


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

Наша задача сводится к тому, что бы написать необходимый Sql скрипт и задать требуемые условия проверки, которые будут произведены после выполнения кода скрипта. Проверки могут быть разные: время исполнения, количество возращённых строк, Checksum возвращённых данных и т.п. Полный список проверок можно найти в выпадающем меню под текстом скрипта и над таблицей проверок. Для каждой проверки можно задать ряд настроек через стандартную панель Properties. Для её вызова необходимо в контекстном меню конкретной проверки выбрать пункт Properties.
Например, вот так будет выглядеть проверка возвращаемого количества строк:


А вот так можно проверить Checksum:

По сути эта проверка выполняет наш скрипт (получает 2 строки из таблицы Employees) и на полученных данных находит Checksum. Наша задача на этапе создания теста, найти эталонные данные, на них посчитать Checksum и в дальнейшем с этим значением будет производиться сверка полученного результата. Иными словами, это удобный способ убедиться, что результат хранимой процедуры не меняется. Для получения контрольного значения Checksum, необходимо воспользоваться кнопкой в окне Properties, которая позволит выбрать эталонную базу и получить эталонное значение Cheсksum:


Вот несколько последних строк ActivityLog.xml, одного из самых загадочных файлов журнала, которые я когда-либо читал:

Вот что я сделал, чтобы попытаться решить эту проблему:

  • Отключены все плагины / расширения
  • Проверены и применены все обновления для всех расширений и VS 2013, включая обновление 1.
  • Выполнена ли полная ремонтная операция VS 2013

VS 2013 теперь включает инструменты SSDT в VS 2013, поэтому я не могу ничего скачать и установить, предположительно, он уже работает. Нет, если кто-то не знает другого трюка.

У меня нет идей, и я довольно много искал об этом, большая часть из них относилась к VS 2012. Если у кого-то есть хорошие предложения, это было бы здорово.

  • где эта программа добавления / удаления ?? @ Jen
  • @Daniel, я нашел там 4 программы с похожим названием вроде Micr . Tools - enu, Micr . Tools - RUS, Micr . Tools - Build Utilities - enu, Micr . Tools build utilities - RUS)) Wtf? это нормально?
  • @DinavAhire, начните> приложения и функции. Или просто Панель управления> Программы> Программы и компоненты

И на всякий случай, если ничего из этого не сработает, вы можете перейти к Загрузить последние версии инструментов данных SQL Server Сама страница Microsoft. В нем перечислены версии набора инструментов для каждой версии Visual Studio.

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

  1. Удаление Sql Server Data Tools из панели управления
  2. Переход к расширениям и обновлениям
  3. Перейдите на вкладку Updates -> Update Visual Studio
  4. Вы должны получить приглашение включить дополнительные функции, выберите SSDT
  5. Дождитесь долгого процесса установки, при необходимости перезапустите.

Исправлено для меня

В VS после 2012 года его нет. Попробуйте по этой ссылке, установите отдельно

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

Особенности реляционного ядра базы данных

Ядро реляционной базы данных SQL Server 2012 включает многочисленные улучшения и новые возможности, затрагивающие вопросы доступности данных, производительности, безопасности, управляемости, а также изменения в языке T-SQL. Рассмотрим основные изменения в каждой из этих областей.

Доступность. В системе SQL Server 2012 реализованы новые возможности AlwaysOn, обеспечивающие высокую доступность данных и предоставляющие возможность аварийного восстановления. Механизмы AlwaysOn позволяют настраивать до четырех зеркал данных, которые сгруппированы в так называемые группы доступности AlwaysOn Availability Groups. Вы можете выбрать скорость зеркального отображения почти так же, как это делается в системе SQL Server 2008 R2. Новшество заключается в том, что решение построено на основе отказоустойчивости кластеров Windows, поэтому сервер использует виртуальные сетевые имена и виртуальные IP-адреса. Это позволяет клиентам подключаться к виртуальным именам и IP-адресам и не зависеть от кодирования доступных партнерских серверов в строке соединения. Такой подход значительно сокращает время перехвата управления вторичными серверами при отказе.

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

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

Определение вторичных реплик в мастере New Availability Group
Экран 1. Определение вторичных реплик в мастере New Availability Group

Использование обозревателя объектов для просмотра реплик, баз данных и слушателей AlwaysOn
Экран 2. Использование обозревателя объектов для просмотра реплик, баз данных и слушателей AlwaysOn

Операционные системы в режиме Windows Server Core официально поддерживаются, то есть вы сможете запускать экземпляры SQL Server на серверах без установленного графического интерфейса Windows. Эта возможность должна уменьшить количество необходимых обновлений и операций перезагрузки для системы Windows и позволить вашему процессору и оперативной памяти сосредоточиться на выполнении серверных задач. Тем не менее, учтите, что только 64-разрядная версия Windows Server 2008 R2 SP1 поддерживает установку в режиме Server Core. Кроме того, некоторые функции SQL Server 2012 — такие как служба Master Data Services, службы Data Quality Services, а также графический интерфейс — в версии Server Core не поддерживаются.

Производительность. Новый индекс ColumnStore, усовершенствованный механизм секционирования и более быстрый полнотекстовый поиск — наиболее важные улучшения производительности в системе SQL Server 2012. Если у вас есть данные «только для чтения», вы можете создавать индексы ColumnStore для столбцов, к которым часто обращаетесь, для значительного снижения времени обработки запроса. Возможности индекса ColumnStore могут использоваться лишь при обработке данных с атрибутом «только для чтения». Механизм секционирования был расширен и теперь поддерживает до 15 000 секций в одной таблице. При постоянном росте количества данных, которые хранят организации, такое улучшение должно повысить детализацию хранения и помочь использовать данные журнала. Хотя возможности полнотекстового поиска в SQL Server 2012 очень похожи на те, что были в системе SQL Server 2008 R2, производительность и масштабируемость данного механизма значительно возросли.

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

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

Управляемость. Новая функция Distributed Replay в SQL Server 2012 будет исключительно полезна в процессах тестирования, обновления и настройки. Как и функция SQL Server Profiler, Distributed Replay позволяет «повторить» захваченные рабочие нагрузки. В отличие от Profiler, функция Distributed Replay позволяет повторить захваченные рабочие нагрузки в нескольких системах, имитируя более реалистичный набор рабочих нагрузок сервера SQL Server.

Среда SSMS имеет ряд усовершенствований, в том числе переделанное диалоговое окно Restore Database. Разработчики SQL Server 2012 улучшили не только его основные возможности, но и графический интерфейс. Предусмотрены новая функция восстановления страницы и усовершенствование логики. Так, теперь служба SSMS гораздо лучше определяет порядок, в котором необходимо выполнять восстановление из ваших полных, дифференциальных копий и резервных копий журнала. Диалоговое окно Restore Database включает понятные уведомления о состоянии при открытии окна и действительно полезную визуальную временную шкалу, используемую при восстановлении базы данных из нескольких резервных копий.

Поддержка Windows PowerShell в системе SQL Server 2012 была расширена. Утилита sqlps теперь встроена в среду PowerShell 2.0, а не является собственной мини-оболочкой PowerShell 1.0. Это изменение станет значительным шагом вперед в области интеграции управляющих механизмов Windows и SQL Server.

Новые функции PARSE, TRY_CONVERT и TRY_PARSE, служащие для преобразования чисел, дат и времени, выглядят многообещающе, особенно для программистов, работающих в международных или многоязычных проектах. Я рад появлению данных функций, потому что работа с датами и временем может представлять определенную сложность.

Предложение OVER было усовершенствовано и теперь поддерживает функции Windows. Если вы работаете с набором строк и хотите применить функции к этим наборам — данная возможность для вас. Ицик Бен-Ган прилагал усилия к ее реализации в течение нескольких лет. Ознакомьтесь, например, с его блогом «Window Functions (OVER Clause) — Help Make a Difference».

Наконец, в T-SQL был добавлен ряд аналитических функций. Они позволяют новым механизмам хранения данных работать в системе SQL Server более гладко.

Возможности служб SSAS

Единая семантическая модель бизнес-аналитики (BISM) влияет на количество компонентов в блоке бизнес-аналитики (BI), включающем службы SQL Server Analysis Services (SASS). Внесены изменения во многие функции служб SSAS для реализации поддержки BISM. Например, вы обнаружите ряд изменений в библиотеке объектов Analysis Management Objects и в протоколе XML for Analysis.

Разработчики реализовали целый ряд новых возможностей в службах SSAS, в том числе:

• новый режим установки сервера SSAS – режим Tabular; используется ядро VertiPaq, которое ранее применялось только в PowerPivot;

• новые статистические, табличные и поисковые функции;

• новые функции и возможности защиты на уровне строк.

Управляемость SSAS была усовершенствована во всех областях. Например, для управления службами SSAS и PowerPivot теперь можно использовать команды PowerShell. А пакет инструментов SQL Server Data Tools получил обновленный внешний вид (об этом я расскажу чуть ниже).

Возможности службы SSRS

Службы отчетов SQL Server (SSRS) теперь включают новую возможность Data Alerts – оповещения, управляемые данными. С помощью Data Alerts вы можете отправлять электронные письма конкретным людям, в зависимости от изменений в отчетах или на основе определенного набора аварийных ситуаций.

Построение отчетов службой SSRS было преобразовано, в том числе удален целый ряд имевшихся ранее ограничений. Теперь вы можете построить отчет в виде документа Microsoft Excel (Excel 2007 и выше) или документа Microsoft Word (Word 2007 и выше).

Интеграция службы SSRS в среду SharePoint также была усовершенствована. Администраторы по достоинству оценят возможность полностью настраивать интеграцию SSRS в SharePoint с помощью утилит SharePoint, либо посредством оболочки PowerShell. Пользователей сервисов SharePoint в свою очередь порадует Power View — новый интерфейс для отображения и визуализации данных служб SSRS. Инструмент Power View, который является дополнением, а не заменой генератора отчетов (Report Builder), использует новый формат отчетов (.rdlx).

Возможности служб SSIS

Обновленный обозреватель зависимостей может расширить возможности служб SQL Server Integration Services (SSIS) в области анализа пакетов и отладки. Обозреватель зависимостей поможет изучить зависимости объектов прямо из консоли SSMS. Он имеет ряд отладочных представлений, хранимых процедур и функций, способных помочь в устранении проблем с пакетом. Пользовательский интерфейс был модернизирован и внесены некоторые изменения, которые должны повысить удобство использования.

При открытии существующего пакета SSIS запускается мастер Package Upgrade, который поможет преобразовать ваш пакет в формат SQL Server 2012. Мастер перенаправит вас в окно Upgrade Advisor, где вы получите информацию о потенциальных проблемах, которые могут возникнуть при обновлении. Я расскажу подробнее об Upgrade Advisor чуть позже.

После того как ваш пакет будет преобразован, вы увидите новую среду разработки с обновленным внешним видом, которая показана на экране 3. Я нахожу эту среду интуитивно более понятной, чем Business Intelligence Development Studio (BIDS) 2008 R2.

Возможности служб Master Data Services

Службы Master Data Services также имеют ряд улучшений, в том числе в дополнении Excel для служб Master Data Services и в интерфейсе веб-приложения Multiple Data Management. Механизмы безопасности были упрощены, а также усовершенствовано взаимодействие веб-интерфейса с оболочкой SharePoint.

Средства разработки

После добавления новых средств для разработки реляционных проектов баз данных SQL Server Data Tools (ранее известных как Juneau) в состав системы SQL Server 2012 пакет SQL Server BIDS был переименован в SQL Server Data Tools. В процессе открытия приложения Visual Studio для создания нового проекта вы увидите привычные шаблоны проектов Business Intelligence, которые можно использовать для создания проектов SSAS, SSIS и SSRS. Если в меню перейти к разделу Database и раскрыть его, вы увидите категорию SQL Server (экран 4). Выберите эту категорию, и вы сможете просмотреть доступные шаблоны для создания и редактирования проектов SQL Server 2005 и SQL Server 2008, приложений SQL Server уровня данных, а также других типов проектов баз данных.

Использование шаблонов проекта SQL Server 2012 Business Intelligence
Экран 4. Использование шаблонов проекта SQL Server 2012 Business Intelligence

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

Службы Data Quality Services

Версии пакета

Немало изменений было внесено и в редакции продукта. Редакция Datacenter Edition, используемая для системы SQL Server 2008 R2, была преобразована в Enterprise Edition. Редакции Workgroup и Small Business (доступные ранее только для OEM-производителей), больше не используются. Процессор Itanium более не поддерживается, поэтому порт для IA64 не предоставляется. В модель лицензирования внесены существенные изменения.

Как я уже упоминал ранее, редакция Business Intelligence является новшеством системы SQL Server 2012. Эта версия — хороший выбор для тех, кто хочет использовать дополнительные возможности служб SSAS и SSRS, дополнительные службы, такие как Data Quality Services, Master Data Services, режим Tabular и службу PowerPivot для взаимодействия с SharePoint, но не нуждается в поддержке большого числа ядер процессора.

Издание SQL Server Express LocalDB, которое заменяет редакцию SQL Server Express (в настоящее время устаревшую), порадует многих разработчиков приложений. Это облегченная версия пакета, устанавливающая только ядро базы данных. Работа с данной версией, что достаточно логично, не требует управления службами и обслуживания учетных записей. Пакет SQL Server Express LocalDB полностью совместим с SQL Server, и в тоже время предлагает разработчикам приложений простую процедуру установки и удобные механизмы работы.

Редакции SQL Server Enterprise, Standard, Evaluation, Developer и Compact по-прежнему доступны. Версия Web Edition будет предоставляться только провайдерам веб-хостинга по специальному лицензионному соглашению.

Системные требования и процесс обновления

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

• Необходимо использовать операционные системы Windows Server 2008 R2 SP1, Windows Server 2008 SP2, Windows 7 SP1 или Windows Vista SP2.

• Требуются системы SQL Server 2008 R2 SP1 (или более новые пакеты обновления, если они доступны для соответствующей редакции), SQL Server 2008 SP2 либо SQL Server 2005 SP4.

Если вы используете более старые версии систем SQL Server или Windows, то необходимо перейти на поддерживаемые версии перед обновлением до SQL Server 2012.

Для использования SQL Server 2012 также требуется, чтобы были установлены оболочка PowerShell 2.0 и оба пакета Microsoft. NET Framework 3.5 SP1 и Microsoft. NET Framework 4.0. В отличие от версии SQL Server 2008 R2, система SQL Server 2012 не установит необходимое программное обеспечение в процессе развертывания.

Технология Hyper-V полностью поддерживается в системах версии Windows Server 2008 SP2 и выше. Браузер Microsoft Internet Explorer (IE) версии 7.0 или выше требуется для работы служб SQL Server Data Tools, SSMS и генератора отчетов SSRS. Для использования инструментов с графическим интерфейсом экран должен поддерживать разрешение 1024 на 768. Хотя версии SQL Server 2012, работающей с процессором Itanium, не существует, 32- и 64-разрядные версии SQL Server 2012 доступны.

Чтобы убедиться, что ваша среда готова к обновлению, вы можете запустить утилиту SQL Server Upgrade Advisor. Можно установить Upgrade Advisor с главной страницы программы установки пакета SQL Server. После установки вы можете запустить утилиту, выбрав пункт Launch Upgrade Advisor Analysis Wizard в меню Start.

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

Запущенная утилита Upgrade Advisor
Экран 5. Запущенная утилита Upgrade Advisor

Для серверных компонентов процесс обновления будет сравнительно простым. Тем не менее, я рекомендую вам сначала прочитать о процессе обновления в документе SQL Server 2012 BOL и поискать дополнительные указания в файлах readme. Для установки некоторых клиентских компонентов, таких как PowerPivot for Excel, необходимо удалить старую версию системы SQL Server перед установкой пакета SQL Server 2012. Стандартное предупреждение для компаний, использующих репликацию, — необходимо тщательно планировать процесс развертывания и соблюдать ограничения согласно рекомендациям из документа SQL Server 2012 BOL.

Изменения в программе установки

В SQL Server 2012 в процесс установки были внесены некоторые изменения из-за добавления новых возможностей, в частности, компонентов BI. Однако если вы используете SQL Server 2008 R2 или SQL Server 2008, то будете чувствовать себя как рыба в воде, так как процессы установки этих систем очень похожи. Тем не менее, меня немного сбивало с толку, что программа установки постоянно закрывает окна, а затем открывает новые. Так что запаситесь терпением и не думайте, что программа установки перестала работать, если окно настройки временно исчезло.

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

Выбор и установка компонентов SQL Server 2012
Экран 6. Выбор и установка компонентов SQL Server 2012

Действуйте!

Это еще далеко не все особенности SQL Server 2012, и я надеюсь, что вы не станете медлить.

Читайте также: