驱动表是sql执行路径中用来最先查询的表,比如本例中第一句sql用explain plan来看执行路径的化,应该是先搜索D表,然后根据D表中记录和WHERE条件去搜索别的表,那样就需要搜索30万次(如果WHERE条件中没有对D的确定值限制)。而第二句SQL就会以A表作为驱动,那样搜索的次数就大大减小了。
但是这种情况只有在采用的RULE-BASED优化器或者采用了COST-BASED优化器而相关表没有STATISTICS的时候才会出现的。
如果采用了COST-BASED优化器而且对所有的表都进行了分析的话,ORACLE就能自动根据COST值来确定优化路径,那样表的顺序就不是很有关了。所以定期地对大的、更新频繁的表作分析是非常重要的。