Преимущество CLR SQL-СЕРВЕРА

Вы можете использовать понимание списка , которое берет максимум для каждого подсписка l:

b = [[1, 3, 45, 6, 8], [2, 4, 56, 7]]
c = [max(l) for l in b]

print(c)

Вывод

[45, 56]

Вышеупомянутое понимание списка эквивалентно следующему для цикла:

c = []
for l in b:
    c.append(max(l))

12
задан Anthony Potts 13 January 2009 в 17:09
поделиться

3 ответа

Я дам один хороший пример: CLR имеет созданный в объекте RegEx, которому очень недостает SQL Server. Теперь это тривиально для записи функций, чтобы сделать находящиеся в regex ограничения/восстановления проверки.

17
ответ дан 2 December 2019 в 04:34
поделиться

Различные цели. Хранимая процедура CLR полезна для вещей, где написание очень процессуального кода или использование системных средств, не доступных от T-SQL, имели бы выгоду. Хотя нет никакой свойственной причины, почему нельзя записать приложение sprocs против него, обычно Вы не были бы представление CLR sprocs как просто другой язык для записи приложения sprocs. Как правило, большая часть использования CLR sproc была бы в системных целях, а не компонентах приложения, хотя это ни в коем случае не жесткое правило.

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

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

Можно также использовать интеграцию CLR для определения функций, которые доступны для кода T-SQL. В некоторых случаях они могут быть быстрее и больше памяти, эффективной, чем функции T-SQL. Книга нажатия Wrox по интеграции CLR обсуждает это в некоторой глубине.

8
ответ дан 2 December 2019 в 04:34
поделиться

Вы можете также, например, назвать внешний Веб-сервис из метода SQLCLR - не точно возможным в T-SQL :-)

Marc

6
ответ дан 2 December 2019 в 04:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: