查看NOEXPAND停止扩展

时间:2011-10-11 13:40:34

标签: sql sql-server-2008

我有一个大型数据库,对于其中一个表我想创建一个noexpand视图,它将过滤表中的一些记录 - 从10 000 000条记录必须只显示10万条但是执行创建的视图持续时间超过10分钟,并且未创建视图。

如何在SQL背景中填充视图或使脚本执行超过10分钟?

SQL Server位于其他计算机上,我只有管理员访问SQL而不是在机器上修改machine.config。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您没有足够的访问权限可以使用SQL Server进入该远程计算机并设置所需的视图/索引? 但是你有足够的权限从代码中动态执行创建视图吗?

如果您想要从10M中过滤掉那些100k行,我建议您创建一个索引视图,其中包含精确选定的列,仅包含您需要的列,并过滤掉您可能没有的所有行需要。

例如,您希望仅使用今年的日期,并且数据库中有10年的数据。

您可以使用 WITH SCHEMABINDING 选项创建视图,这样您就可以在该视图上添加群集索引。

完成后,您可以自由调用新视图(可能在SELECT中使用 WITH(NOEXPAND)选项),这样您只需搜索100k行要求。

现在,由于您无法直接访问该服务器上的SQL Manager,只需编写您的create视图并创建索引SQL并从代码中执行它。你会这样做一次,它会永久地粘在你的服务器上。

希望我的设置很好,否则我可能会完全忽视这一点。 :) 但是,如果您想要过滤掉不需要的数据,那么索引视图就是最佳选择。