linq-to-sql - 如何在 Linq to SQL 中使用 NOEXPAND 提示?

标签 linq-to-sql indexed-view query-hints

我有一个索引 View ,我需要为其指定 noexpand 提示以使其合理执行。不幸的是,关于从 NOLOCK 提示修改 Linq to SQL 生成的 T-SQL 查询,似乎没有简单的方法可以直接利用这些提示,还是有?

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

最佳答案

我找到了一种解决方法,它似乎可行,但需要为每个想要使用 NOEXPAND 提示的 SQL View 创建第二个 View 。在第二个 View 中,只需从原始 View 中选择所有字段并添加 NOEXPAND 提示。任何需要使用 NOEXPAND 提示的 Linq to SQL 查询现在都可以只定位包装原始 View 的 View 。

更多详情请见 this MSDN post .

创建依赖 View 时要考虑的一个缺点是您必须确保以正确的依赖顺序应用创建脚本

有人有更好的选择吗?我宁愿不必创建额外的 SQL View 来支持这个必要的优化器提示的使用。

关于linq-to-sql - 如何在 Linq to SQL 中使用 NOEXPAND 提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3135669/

相关文章:

Oracle 将 Select Union All 转换为 Parallel Select

sql - 我应该使用快速查询提示 number_rows/FASTFIRSTROW 吗?

c# - LINQ to SQL 转换为自定义方法的 SQL

sql-server - 调用表值函数时添加查询提示

c# - 在单个 ListView 中显示多个模型

mysql - MySQL View 是否总是进行全表扫描?

sql - 索引 View 更新时

sql-server-2008 - 更改索引 View 的架构时,为什么删除索引?

c# - 使用 LINQ 从列表中删除未包含的所有项目

c# - 使用LINQ2SQL插入大量记录