2012-05-07 36 views
1

在Oracle数据库中,可以创建物化视图,该视图可以在特定时间间隔自动刷新。这怎么可以在SQL Server中使用索引视图或其他技术来实现? 底层表非常大,基表中的变化非常频繁。创建在特定时间自动编译的索引视图

回答

1

据我所知,索引视图将始终返回当前结果。无需安排更新,因为如果底层数据发生变化,DBMS将自动刷新视图。

如果您不想承担维护索引视图的开销,可以在不需要时删除它,然后在使用它之前重新创建(例如在每日/每周/每月报表运行之前)。

+0

如果底层表非常庞大,该怎么办 – kinkajou

+1

基准索引视图创建开销和时间。 Oracle允许的定期更新肯定比MSSQL提供的选项更灵活(总是会产生一点开销,以使索引视图保持最新状态,或者定期承担全部开销以根据需要重新创建)。 MSSQL不提供增量式的选项来定期更新索引视图。如果你真的需要这样做,一种选择是使用一个你定期更新的表格,例如通过调度存储过程。 –

+0

让我试一下,非常感谢您的帮助:) – kinkajou

0

我认为这可以通过使用脚本和SQL Server代理作业的组合来实现。一旦在索引中编写了重新组织/重新构建操作,就可以使用相同的脚本插入SQL Server代理作业以按计划运行。

另一种选择是查看数据库维护计划。根据基础表的大小,您可以尝试创建分区索引,以便索引维护变得轻松一些。