Использование сборок .net в SQL Server 2005 - PullRequest
3 голосов
/ 02 сентября 2008

Недавно я обнаружил, что можно размещать сборки .net на серверах SQL Server> = 2005, чтобы можно было вызывать функции .net в инструкциях T / SQL.

Мне было интересно, что использует найденных людей для этих целей и как они работают?

Ответы [ 5 ]

3 голосов
/ 02 сентября 2008

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

Для детерминированных пользовательских функций я нашел поддержку SQL CLR очень производительной.

0 голосов
/ 17 июля 2009

Оппозиционер, я с тобой согласен. Сборки прекрасно подходят для всех тех вещей, которые совсем не достижимы или едва достижимы в T-SQL (с помощью хакерских методов).

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

  1. Использование сборки создает проблемы конфигурации доверия / безопасности / разрешений.

Сборка должна быть определена в базе данных. Если сборка не подписана, база данных должна будет разрешить НЕПРАВИЛЬНЫЙ код. Этот параметр базы данных сбрасывается при отсоединении / повторном подключении базы данных.

  1. Использование сборки влияет на конфигурацию SQL Server (не только на базу данных).

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

  1. Для функций сборок не забывайте быть осторожными с манипуляциями с данными; особенно на занятых столах.

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

0 голосов
/ 02 сентября 2008

Интеграция CLR с SQL 2005 особенно полезна для пользовательских функций / хранимых процедур, написанных на .NET, а также для пользовательских типов данных. например Вы можете написать сверхмощный тип данных, который позволяет SQL определять объекты и ссылочные свойства. Например, вы можете написать какой-нибудь суперский вариант даты и времени.

0 голосов
/ 02 сентября 2008

Обычно это используется, если вам нужно каким-либо образом взаимодействовать с операционной системой, например, чтобы поместить сообщение в MSMQ или записать в файл. Это также полезно, если у вас есть сложные математические или финансовые вычисления, которые уже реализованы в .NET, и вы не хотите переписывать их в T-SQL.

0 голосов
/ 02 сентября 2008

Я нашел это очень полезным.

Я использовал эту возможность для расширения функций, связанных с XML MSSQL2005.

Если я правильно помню, вы даже можете ввести свои собственные типы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...