如何使用Linq to SQL的NOEXPAND提示?

jpi*_*son 6 query-hints indexed-view linq-to-sql

我有一个索引视图,我需要指定noexpand提示,以便它合理地执行.不幸的是,从NOLOCK提示中修改Linq to SQL生成的T-SQL查询时,似乎没有简单的方法可以直接利用这些提示或存在?

我的想法是允许通过使用属性或通过dbml声明性地定制这些东西是有意义的.此外,由于Linq to SQL似乎只针对SQL Server,因此只有我们能够利用这些高级功能(如果它们存在)才有意义.无论实施如何,虽然我对解决这个问题的任何创造性方法感兴趣.

jpi*_*son 10

我找到了一个似乎有效的解决方法,但是需要为每个想要使用NOEXPAND提示的SQL视图创建第二个视图.在第二个视图中,只需从原始视图中选择所有字段,然后选择NOEXPAND提示.任何需要使用NOEXPAND提示的Linq to SQL查询现在只能定位包装原始视图的视图.

更多细节可以在这篇MSDN帖子中找到.

在创建依赖视图时要考虑的另一个缺点是,您必须确保以适当的依赖顺序应用创建脚本

有没有人有更好的选择?我宁愿不必创建额外的SQL视图只是为了支持使用这个必要的优化器提示.