摘要:
一、引言: 今天在测试绑定变量的时候,发现使用绑定变量时,用autotrace看的执行计划有误,由此想到autotrace和explain plan是否可以反映真实的执行计划? 实验环境: 操作系统:rhel 5.4 x32 数据库:oracle 11g r2二、实验内容: 在这里以autotrace为例子: ----创建一张jack_tab表,其中表里面的数值只有2个值,id=99只有1条记录,剩下的全部等于1---- 1 SQL> create table jack_tab as select 1 id,a.* from dba_objects a; 2 3 Table crea.. 阅读全文
摘要:
一、解释OLTP必须要求变量绑定的原因: 在OLTP系统中,SQL语句大多是比较简单或操作的结果集都很小。比如拿银行的ATM系统来说,尽管用户操作的表可能非常大(银行的用户非常多),但是用户操作的记录数可能只有1行(或者几行),如果再这张表上创建了索引,那么这种极小结果集的操作使用索引最适用,并且几乎所有SQL的执行计划中的索引都会毫无悬念地被选择,因为在这种情况下,索引可能只需要扫过几个数据块就可以定位到数据,而全表扫描将会相当费资源。因此,在这种情况下,即使每个用户的谓词条件不一样,执行计划也是一样的,就是统统使用索引来访问数据,几乎不大可能出现走全表扫描的情况。在这种执行计划几乎是唯一的 阅读全文