Очень короткий фон: Мы используем хранимые процедуры CLR для применения контроля доступа, используя Active Directory, в результатах запроса, чтобы ограничить то, что может видеть конечный пользователь. В двух словах это делается путем удаления строк из данных, где пользователь не удовлетворяет критериям доступа к результату (документ в этом случае).Вызов хранимой процедуры T-SQL из хранимой процедуры CLR
Эта фильтрация была ранее сделана на клиенте перед отображением результатов. SQL 2008 и гораздо более мощный сервер - это мотивация для переноса этой фильтрации доступа с клиента.
Что мне интересно, есть ли какое-либо преимущество в производительности от вызова исходной обычной хранимой процедуры T-SQL из эквивалентной эквивалентной процедуры CLR, вместо того, чтобы иметь встроенный T-SQL, переданный в объект comand (например, который в этом случае является только оригинальным T-SQL, который был сделан хранимой процедурой)? Я не могу найти нигде, где кто-то упомянул об этом (отчасти, вероятно, потому, что это было бы очень запутанным как пример CLR SP, я думаю :-)). Мне кажется, что вы могли бы, поскольку хранимый процесс T-SQL уже оптимизирован и скомпилирован?
Могу ли я подтвердить это для меня?
Надеюсь, я был достаточно ясен. Большое спасибо,
Кол.
Это имеет смысл. Я также рассмотрю настройку инструкции SQL. Возможно, я могу передать SID в сам запрос T-SQL, поскольку они уже доступны для фильтрации результатов этого запроса в CLR SP. Большое спасибо за вашу помощь. – Colm