Поделиться через


Преимущества использования управляемого кода для создания объектов баз данных

Помимо языка программирования Transact-SQL можно использовать языки .NET Framework для создания объектов базы данных и извлечения и обновления данных в базах данных SQL Server. В проектах Visual Basic или Visual C# можно создать хранимые процедуры, триггеры, статистические выражения, пользовательские функции и пользовательские типы. Объекты базы данных, написанные в управляемом коде, называются объектами SQL Server со средой CLR или объектами SQL CLR.

Примечание

По умолчанию функция интеграции среды CLR в SQL Server отключена.Для использования элементов проекта SQL Server необходимо включить интеграцию со средой CLR.Для этого используйте параметр clr enabled хранимой процедуры sp_configure.Дополнительные сведения см. в разделе Параметр clr enabled на веб-сайте корпорации Майкрософт.

В следующем списке приводится сводка преимуществ использования языка .NET Framework вместо Transact-SQL.

  • Расширенная модель программирования. Языки .NET Framework предлагают конструкции и возможности, ранее недоступные для разработчиков SQL Server.

  • Расширенная безопасность   Управляемый код выполняется в общеязыковой среде выполнения, размещенной в ядре базы данных. Это делает объекты базы данных платформы .NET Framework более безопасными по сравнению с расширенными хранимыми процедурами в более ранних версиях SQL Server. При использовании объектов базы данных, созданных в Visual Basic или Visual C#, управление доступом для кода в этих языках сочетается с пользовательскими разрешениями в SQL Server.

  • Пользовательские типы и статистические выражения. Пользовательские типы и пользовательские статистические выражения — это два управляемых объекта базы данных, расширяющие возможности SQL Server по хранению и построению запросов.

  • Общая среда разработки   Разработка баз данных интегрирована в среду разработки Microsoft Visual Studio. Разработчики используют для разработки и отладки объектов баз данных и скриптов те же средства, что и для написания компонентов и служб платформы .NET Framework промежуточного или клиентского уровня.

  • Более высокая производительность. Некоторые функции, например выполняющие математические операции над каждой строкой в базе данных, могут выполняться эффективнее, если они представляют собой скомпилированные сборки, построенные из проекта Visual Basic или Visual C#, чем если они написаны на языке Transact-SQL, который представляет собой интерпретируемый код. Например, будет повышена производительность функций, особенно тех, которые выполняют целочисленные операции. Однако хранимые процедуры, осуществляющие только доступ к данным, не будут выполняться эффективнее.

  • Набор операторов языка.   Visual Basic или Visual C# предоставляют возможности, недоступные в Transact-SQL, такие как массивы, обработка сложных исключений и повторное использование кода.

  • Повторное использование кода. Библиотека управляемых сборок может создаваться и распространяться легче, чем скрипт Transact-SQL.

  • Расширение использование Visual Basic или Visual C# можно создать два объекта базы данных, которые не могут быть созданы с помощью Transact-SQL: статистические выражения и определяемые пользователем типы.

  • Совершенствование существующих навыков   Можно использовать и повышать свои навыки в использовании языков и среды разработки, в работе с которыми пользователь уже имеет опыт, для создания объектов базы данных.

  • Обширный опыт разработки. При разработке объектов базы данных с помощью шаблона проекта SQL Server имеет место полная интеграция с системой проектов. Сюда входят построение, отладка и развертывание на нескольких серверах.

  • Стабильность и надежность. Объекты базы данных, создаваемые с помощью Visual Basic или Visual C#, являются более безопасными, стабильными и надежными, чем расширенные хранимые процедуры, которые могут вызывать утечки памяти или другие проблемы, снижающие производительность и надежность сервера. При запуске хранимых процедур, созданных в Visual Basic или Visual C#, управление памятью и работа с потоками хранимой процедурой не выполняются и, таким образом, обрабатываются более надежно.

Хранимые процедуры и триггеры

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

Триггер — это особый тип хранимой процедуры, которая активируется при изменении данных в указанной таблице с помощью одной или нескольких операций изменения данных: UPDATE, INSERT или DELETE. Также можно создать триггеры уровня базы данных, срабатывающие в ответ на операторы языка DDL. Такие триггеры можно использовать для выполнения задач администрирования базы данных, таких как аудит и упорядочивание операций в базе данных. Дополнительные сведения о триггерах см. в документации по SQL Server.

Разработка хранимых процедур и триггеров была улучшена за счет набора операторов языков Visual Basic и Visual C#, особенно при реализации сложной процедурной логики, необходимой для применения бизнес-правил. Кроме того, платформа.NET Framework содержит множество библиотек. Особый интерес представляют те, которые позволяют использовать многочисленные средства криптографии, обширные математические библиотеки и внешний доступ к веб-службам, файлам и коммуникационным системам типа "бизнес-бизнес".

Функции

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

Как и в случае с хранимыми процедурами и триггерами, разработка функций улучшена за счет набора операторов языков Visual Basic и Visual C# и доступа к многочисленным библиотекам, содержащимся в платформе .NET Framework.

Статистические выражения

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

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

Пользовательские типы

Типы указывают на природу данных. Дополнительные сведения о наборе системных типов данных, поставляемых вместе с SQL Server, см. в документации по SQL Server.

С помощью Visual Basic и Visual C# можно определить новые типы, чтобы пользователь больше не был ограничен предопределенными типами, поставляемыми вместе с SQL Server. Можно создавать простые типы, например почтовые коды, или более сложные типы для разбора сведений, возвращаемых из транзакции над кредитными картами. Кроме того, при работе с пользовательскими типами данные могут интерпретироваться и обрабатываться как на SQL-клиенте, так и на SQL Server. С помощью ADO.NET можно загрузить сборку, содержащую определение типа, с сервера SQL Server и использовать ее для проверки данных на SQL-клиенте.

См. также

Задачи

Практическое руководство. Создание проекта для объектов базы данных, использующих интеграцию SQL Server со средой CLR

Практическое руководство. Создание и запуск хранимой процедуры SQL Server при помощи интеграции со средой CLR

Практическое руководство. Создание и запуск триггера SQL Server при помощи интеграции со средой CLR

Практическое руководство. Создание и запуск статистического выражения SQL Server при помощи интеграции со средой CLR

Практическое руководство. Создание и запуск пользовательской функции SQL Server при помощи интеграции со средой CLR

Практическое руководство. Создание и запуск пользовательского типа SQL Server при помощи интеграции со средой CLR

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

Практическое руководство. Отладка хранимой процедуры SQL CLR

Ссылки

Атрибуты проектов баз данных SQL в среде CLR и объектов баз данных

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

Введение в интеграцию SQL Server со средой CLR (ADO.NET)

Преимущества использования управляемого кода для создания объектов баз данных