2

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

Но может ли кто-то сравнить эти две вещи: объект TSQL и объект CLR в смысле производительности, преимуществ и т. Д.

Каковы реальные ситуации для использования объектов CLR?

Есть ли какие-либо рекомендации по их применению?

+0

Вы прочитали http://stackoverflow.com/q/439859/21567? –

+0

Хорошая статья, но я не вижу слов о производительности. Есть ли дополнительные накладные расходы в SQL Server, если он работает с объектами CLR? – veljasije

+1

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

ответ

0

Каковы реальные ситуации для использования объектов CLR?

SQL Server не имеет агрегатную функцию конкатенации. Этот причудливый надзор ведет ко всему сложному обходу.

Создание и использование пользовательской функции совокупного CLR является чистым решением этой проблемы, и это на самом деле ссылка пример, приведенный в статье MSDN на тему пользовательских функций агрегатных:

http://msdn.microsoft.com/en-us/library/ms131056.aspx

Performance

Там в статье MSDN, что дает в LEA й теоретический (без метрик) Обзор:

http://msdn.microsoft.com/en-us/library/ms131075.aspx

А вот более практичный пост (с метриками) от AboutSqlServer.com:

http://aboutsqlserver.com/2013/07/22/clr-vs-t-sql-performance-considerations/

1

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

  1. С точки зрения функциональности & преимуществ, я написал статью (часть серии по теме SQLCLR), который смотрит на то, что использует в SQLCLR являются «соответствующие», в основном, глядя на то, что он может сделать это не может быть сделано иначе или не делается почти так же легко. Эта статья «Stairway to SQLCLR Level 1: What is SQLCLR?» (требуется бесплатная регистрация), и она суммируется в ответе на вопрос, который был связан в комментарии по вопросу, Advantage of SQL SERVER CLR.

  2. С точки зрения производительности, я опубликовал исследование несколько лет назад (июль 2011 г.), в котором подробно описаны различные сценарии и протестирован необработанный SQL, этот SQL в функции T-SQL и этот алгоритм в CLR-based функция. Я тестировал как скалярные функции, так и табличные функции. Эта статья «CLR Performance Testing» (регистрация не требуется). Имейте в виду, что тестирование было выполнено на SQL Server 2008, и в SQL Server 2012 были улучшены показатели производительности, связанные с детерминированными скалярными CLR-функциями. Смысл, результаты работы функций CLR были бы лучше, если повторять те тесты, по крайней мере, SQL Server 2012, если не более новую версию. Но вывод, даже на SQL Server 2008 без с этими улучшениями, заключается в том, что он зависит от многих факторов, а иногда и CLR быстрее, а иногда и T-SQL быстрее.Но чаще всего формула, которая может быть выражена в простом и умеренном T-SQL как часть запроса, а не абстрагирована на функцию любого типа, на сегодняшний день является самой быстрой.

Смежные вопросы