Преимущества использования управляемого кода для создания объектов баз данных
Обновлен: Ноябрь 2007
Можно использовать языки .NET в дополнение к языку программирования Transact-SQL для создания объектов базы данных и извлечения и обновления данных в базах данных Microsoft SQL Server 2005. В проектах Visual Basic, Visual C# или Visual C++ можно создать хранимые процедуры, триггеры, статистические выражения, пользовательские функции и пользовательские типы.
Примечание. |
---|
По умолчанию функция интеграции среды выполнения 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 и объектов баз данных