非常简短的背景:我们正在使用 CLR 存储过程来应用访问控制,使用 Active Directory 对查询结果进行限制,以相应地限制最终用户可以看到的内容。简而言之,这是通过从数据表中删除用户不满足访问结果(在本例中为文档)的标准的行来完成的。
在显示结果之前,此过滤先前已在客户端上完成。SQL 2008 和更强大的服务器是将此访问过滤移出客户端的动机。
我想知道的是,从等效的 CLR 存储过程调用原始常规 T-SQL 存储过程是否有任何性能优势,而不是将“内联”T-SQL 传递给命令对象(在这种情况下只是作为存储过程的原始 T-SQL)?我找不到有人提到这一点的任何地方(部分原因可能是因为它作为 CLR SP 的示例会非常令人困惑,我猜 :-))。在我看来,您可能会因为 T-SQL 存储过程已经被优化和编译?
有人可以为我确认吗?
希望我已经足够清楚了。非常感谢,
科尔姆。