Несомненно, между встроенными функциями SQLCLR и пользовательскими агрегатными функциями (UDA) есть некоторые прискорбные различия.Один из них должен означать, что SQLCLR не может выполнять пакетный режим.Я посмотрю, смогу ли я найти для этого авторитетную ссылку.
Другое отличие состоит в том, что UDA SQLCLR не поддерживают оператор HashAggregate , что приводит к:
Агрегат CLR выполняет дорогостоящую сортировку
Я только что снова протестировал в SQL Server 2017 CU 12 и SQL Server 2019 CTP 2.2, и это все еще проблема.Пожалуйста, ознакомьтесь с постом Боба Бочемина (в этой связанной ветке форума) в четверг, 9 декабря 2010 г., для некоторых предлагаемых обходных путей.
Пожалуйста, также поддержите запрос расширения Боба, чтобы разрешить UDA SQLCLR использовать OPTION(HASH GROUP)
:
Разрешить OPTION (HASH GROUP) с UDA SQLCLR