非常简要背景: 我们正在使用CLR存储过程来应用访问控制,使用Active Directory,对查询结果来限制哪些最终用户可以据此看到。简而言之,这是通过从用户不满足访问结果条件(本例中为文档)的数据表中移除行来完成的。T-SQL存储过程
这种过滤先前显示结果之前在客户端完成。 SQL 2008和更强大的服务器是将此访问过滤从客户端移出的动机。
我想知道的是,从CLR存储过程的等价物中调用原始的常规T-SQL存储过程是否有任何性能优势,而不是将“内联”T-SQL传递给命令对象在这种情况下,它就是原来的T-SQL,它是一个存储过程)?我无法找到任何有人提到过的地方(部分原因可能是因为CLR SPs的例子会让人感到困惑,我猜:-))。 在我看来,你可能,因为T-SQL存储过程已经被优化和编译?
是任何人都可以证实这一点给我吗?
希望我已经清楚。非常感谢,
科尔姆。
这很有道理。我会研究调整SQL语句。也许我可以将SID传递给T-SQL查询本身,因为它们已经可用于CLR SP中查询结果的筛选。非常感谢您的帮助Marc。 – Colm 2011-12-17 21:16:20