OMG*_*ies 13
假设问题是关于非物化视图 - 实际上取决于视图所基于的查询,以及正在对其执行的操作.有时,谓词可以被优化器推送到视图查询中.如果没有,那么它就不如表格本身那么好.视图建立在表格之上 - 为什么你会期望性能会更好?
分层视图,您在另一个视图上构建一个视图,是一种不好的做法,因为在运行时之前您不会知道问题.使用分层视图也不太可能发生谓词推送.
视图也可以更新 - 如果有人对基础表具有INSERT/UPDATE/DELETE权限,则它们不是限制对资源的访问的可靠方法.
物化视图与表格一样好,但在它们支持的内容方面却是出了名的限制.
你没有解释你在视图中做了什么?表格的1:1听起来就像你使用的视图更像是同义词而不是视图.IOW,是views ="SELECT*FROM table",那么除了硬解析之外你不会看到任何性能损失.
如果你要加入其他表或在其中放置过滤子句来阻止谓词推送,那么你有时会看到一个重大的打击.
我对视图的唯一痛苦是通过数据库链接进行分布式查询.本地优化器获取有关远程对象的一些详细信息,但视图不会告诉它任何索引,因此您可以获得一些怪异的计划.
我听说有些地方使用它作为标准,因为它们可以轻松地"重新排序"视图中的列.YMMV在我看来并不是一个很大的好处