浅析驱动表和leading
首先大致讲一下个人对驱动表的理解:驱动表(driving table/outer table)又称外层表,驱动表用于nested_loop join 和hash join,驱动表是用来驱动查询的,再CBO中,优化器会根据cost自动选择驱动表,并非根据表的顺序。在RBO的优化模式下,对于两个表的操作中,RBO选择最右的表作为驱动表,对于三个或三个以上的表...
oracle基础优化
ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所...
使用SPM来稳定执行计划
SQL Profile是一个稳定执行计划的的手段,但是这实际上只一个被动的技术手段,应用在那些执行计划发生了不好的变更的SQL上,即便在我们创建SQL Profile解决了目标SQL执行计划变更的问题,依然不能够保证系统后续执行得SQl的执行计划就不再发生不好的变更。这种不确定性会给oracle升级带来一系列的麻烦,因为不清楚升级之后...
Automatic的SQL Profile来稳定执行计划
我们都希望Oracle数据库的执行的SQL,CBO都能够产生正确的执行计划,但是事实上由于各种原因(例如SQL所对应的对应的统计信息不准确,或者CBO内部一些计算公式的缺陷等),导致了CBO会产生效率不高的,甚至是错误的执行计划。特别是CBO对目标SQL所产生的初始执行计划是正确的,后来由于各种原因(比如统计信息的变更),导...
STA,SAA的简单实验
STA1.创建测试用户及表SQL> grant dba to zel identified by zel;Grant succeeded.SQL> conn zel/zelConnected.SQL> create table t as select * from all_objects;2.创建调整任务SQL> declare 2 v_task_name varchar2(100); 3 v_sqltext clob; 4 begin 5 ...
索引的访问方式
(1)INDEX (UNIQUE SCAN)唯一索引扫描,即对唯一索引进行单一匹配访问。在唯一索引中,每一个非空键值只会存在一条。主键本身也是一个唯一索引。示例如下:HELLODBA.COM>exec sql_explain('SELECT * FROM T_XPL WHERE tid=:A', 'TYPICAL');Plan hash value: 3808404654-----------------------------------------...
oracle 分区表详解
oracle 分区表操作详细说明 性能优势分析