我熟悉SQL Server索引视图(或Oracle物化视图),我们在我们的OLAP应用程序中使用它们。它们具有非常酷的功能,能够篡夺执行计划并将其重新映射到索引视图,无需更改现有代码。OLTP中的索引视图?
IE。假设我有一个非常昂贵的SPROC连接。
SELECT [某些列]
FROM表1 INNER JOIN表2 [详情]
INNER JOIN表3 [一批更多JOINS] ...
如果我撰写这举行的索引视图类似的结果集,那么查询优化器很可能会将SPROC发送到我的索引视图,而不是基表,并且性能会有很大提升。
现在说我想在OLTP!中使用索引视图!?我的意思是大多数OLTP(如本站点)相对较重,如果它们的连接费用很高,那么我们可以加快它们的速度并可能减少锁定争用(http://www.codinghorror.com/blog/archives/001166.html)。更好的是,你不必更改任何代码,只需编写索引视图即可。
但是,这也意味着数据库变得更大,因为我们需要保持这些数据的副本索引视图...
有没有人使用索引视图解决在OLTP争或速度的问题?我怎么从未见过这种使用?
在OLTP中创建了这些物化视图还是将它们存储在别处?如果它们是在OLTP中创建的,它是如何影响数据库大小和性能的。这些OLTP在**实体化视图被放下之前是否有重负载**? – Tyler 2008-09-11 19:51:04