我已了解了索引视图是但我不知道当垫层表(S)的数据已经改变到底发生了什么? 被丢弃整个视图缓存OD只是更改的行?

我有在其上用于搜索酒店可用性(+ 100k的记录)和IMHO索引视图可能显著提高性能多个表(5)非常复杂的查询。 但数据(几行)经常改变(房出售,免费客房管理ATC改变。),如果认为是当每次只有一个行被改变的时间重建,将是我的应用瓶颈。

或者任何想法如何 “缓存” 非常coplex查询?

感谢您。

有帮助吗?

解决方案

从TechNet文档:

  

不同于普通的索引,单排   插入任何参与的   表可能导致多个行更改   在索引视图。这是因为   单列可以与多个加盟   另一个表的行。同样是   真正的更新和删除。   因此,维修的   索引视图可能更昂贵   比维持在一个索引   表

来源:

http://technet.microsoft.com/en-us /library/cc917715.aspx#XSLTsection124121120120

即。它听起来好像行被更新酌情而不必更新/重建完整的视图。

其他提示

我假设你正在运行的SQL Server。 100K +行也不是很多。如果要加入5ish表我会建议你做肯定有你考虑实施索引视图之前加入的列覆盖索引。使用查询分析器直接找到查询中的瓶颈。如果您有在这么小的表的性能问题有可能是讨厌的表扫描在那里。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top