何时以及为什么有人决定他们需要在他们的数据库中创建一个View?为什么不运行正常的存储过程或选择?
我正在使用性能较慢的Oracle数据库,因为在某些表上连接以获得结果.我正在考虑创建一个存储这些数据的新表,以便可以快速检索它而无需执行连接.另一种方法是为我正在执行的连接创建一个视图,然后始终查询视图以获取数据.使用新表与创建视图之间的性能折衷是什么?我认为一个视图仍然需要运行连接,因此它不会提供与新表一样好的性能.
有关Oracle数据库视图的信息,请访问:http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_8004.htm - Oracle中的View是什么?
根据以下回复进行澄清.查询大部分已经过优化,因此我不想进行优化.更喜欢新表或物化视图,但想知道哪个可能更好.我对表演很感兴趣.编写更多代码以使新表与旧表保持同步不是问题.我只会在对旧表进行修改的地方添加修改语句.如果它比添加新表慢,我不想使用物化视图.
不同之处在于数据刷新对于物化视图还是新表更有效.对于新表,基本上我将在旧表更新的地方添加更新语句.因此,当用户查询新表时,数据已经存在(不需要进一步处理).但是对于物化视图,如果视图仅在用户查询视图时刷新自身,那么这可能会更慢.