我有一个声明(简单,我们可以看到这样的:)的Oracle SQL - 避免全表扫描(如果)
Select * from VIEW where View.target='alpha'
视图是使用多个表 - 表X,Y,Z例如,目标将在X中。该视图返回一个包含20亿行的数据集,通过该查询,数据库将加载所有这些数据集并搜索目标等于'alpha'的位置。现在有没有可能使这个查询更快?
也许有可能使视图从中加载一点点(?)我认为当我可以在视图中使'target ='alpha'语句变小时,视图会变小真正帮助......但我想,当我在视图中做此声明的问题是相同的,因为这样的观点会做同样的(我说得对不对?)
在结束这将是更好的时候才能有现实的观点并且在新的陈述中做这项工作,但是如果有人在改变视图的时候会有一个想法,那么这也可以完成。
谢谢!
查询执行的优化是为什么数据库管理员存在的理由之一。你的问题太笼统了。如果不知道所有表的背后,它们的统计数据,索引和索引统计信息,针对它们发出的查询的类型,它们如何填充,更改或分区等,则无法进行优化。询问你的DBA。他有知识去做。如果您想了解如何做到这一点,你就可以开始在这里https://docs.oracle.com/cd/E11882_01/server.112/e41573/perf_overview.htm#PFGRF94083 – Mottor
http://tkyte.blogspot.de/ 2005/06/how-to-ask-questions.html –