我很熟悉SQL服务器编入索引的意见(或Oracle具体化的意见)我们使用他们在我们的OLAP应用程序。他们很酷的功能是能够取代一个执行计划和映射它的索引视w/出具有改变现有的代码。

IE。我是说我有一个SPROC这是一个真正昂贵的加入。

选择[某些列]
从表1内加入Table2[详细信息]
内加入Table3[堆更加] ...

如果我写了一个索引的看法,即举行一个类似的结果设定随后的查询的优化将非常有可能发送SPROC我的编制索引视为反对的基础表格和我得到一个很大的性能增加。

现在说,我想到使用索引的景色中 只读!? 我的意思是大多数OLTPs(喜欢这个网站)都比较阅读沉重,如果他们昂贵的加入,然后我们可以加速达一吨,并有可能减少锁争(http://www.codinghorror.com/blog/archives/001166.html).甚至更好的是你就不会改变任何代码,只作者索引图。

但这也意味着数据库中获取更大,因为我们需要保持一个复制这些数据在编制索引视...

有没有人使用索引的意见解决争或速度的问题在读?我怎么从来没有看到这一使用?

有帮助吗?

解决方案

具体化的意见,可以用于报告只读,尤其是大量行汇总以获得的结果。空间要求完全依赖于数据的多少要保存。认为它作为一个高速缓存。

棘手的平衡之间如何最近的数据需要的报告,并且如果一个打你可以只读性能。如果有些过时的数据是确定的,则可以安排更新的观点过时系统的活动是较低的。

这一次我不能,并需要非常当前的数据,我结束了在使用的一些定义的发展。每次更新对基地表发射了一个触发其中写道:记录一事表。看看着一个缓存的集合体,再加上三角洲存在的交易表。作为系统的资源允许,该交易已应用于汇总表作为三角交易。这让我的第二个数据、良好的业绩报告(仅有的聚集情况的发生是最近的交易)和相当小的负荷数据库(只有加倍的大小的每一个编写,未重新计算一个巨大的聚合每一个时间)。

不幸的是,它是复杂的维持,并没有采用简单的建造工具。如果你可以待在你的报告数据,这往往是最好的使用建立在具体化的意见和推迟的刷新。

其他提示

我们使用具体化的意见,以加速东西,我的工作。最经常报告对以禁系统。我们的许多报告,从运行一个数据库,但由于我们的刷新的仓库过夜,直到数据的有来自以禁表。

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