题
我已了解了索引视图是但我不知道当垫层表(S)的数据已经改变到底发生了什么? 被丢弃整个视图缓存OD只是更改的行?
我有在其上用于搜索酒店可用性(+ 100k的记录)和IMHO索引视图可能显著提高性能多个表(5)非常复杂的查询。 但数据(几行)经常改变(房出售,免费客房管理ATC改变。),如果认为是当每次只有一个行被改变的时间重建,将是我的应用瓶颈。
或者任何想法如何 “缓存” 非常coplex查询?
感谢您。
解决方案
从TechNet文档:
不同于普通的索引,单排 插入任何参与的 表可能导致多个行更改 在索引视图。这是因为 单列可以与多个加盟 另一个表的行。同样是 真正的更新和删除。 因此,维修的 索引视图可能更昂贵 比维持在一个索引 表
来源:
http://technet.microsoft.com/en-us /library/cc917715.aspx#XSLTsection124121120120
即。它听起来好像行被更新酌情而不必更新/重建完整的视图。
其他提示
我假设你正在运行的SQL Server。 100K +行也不是很多。如果要加入5ish表我会建议你做肯定有你考虑实施索引视图之前加入的列覆盖索引。使用查询分析器直接找到查询中的瓶颈。如果您有在这么小的表的性能问题有可能是讨厌的表扫描在那里。
不隶属于 StackOverflow