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

Обновлен: Ноябрь 2007

Можно использовать языки .NET в дополнение к языку программирования Transact-SQL для создания объектов базы данных и извлечения и обновления данных в базах данных Microsoft SQL Server 2005. В проектах Visual Basic, Visual C# или Visual C++ можно создать хранимые процедуры, триггеры, статистические выражения, пользовательские функции и пользовательские типы.

k2e1fb36.alert_note(ru-ru,VS.90).gifПримечание.

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Безопасность   При использовании объектов базы данных, созданных в Visual Basic, Visual C# или Visual C++, безопасность доступа к коду этих языков сочетается с пользовательскими разрешениями в SQL Server.

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

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

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

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

Функции

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

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

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

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

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

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

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

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

См. также

Задачи

Практическое руководство. Создание проекта SQL Server

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

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

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

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

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

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

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

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

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

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

Шаблоны элементов для проектов SQL Server

Ссылки

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

Другие ресурсы

Отладка баз данных SQL в среде CLR