Oracle - SPM固定执行计划(一)
|
从前两步中可以看到该sql有两条执行计划,假如plan_hash_value为’2214001748’才是对的,而此时数据库选择的是另一条执行计划,我们可以通过执行以下function去将执行计划固定为我们想要的。 三、做个实验1. 准备测试表实验环境,使用scott账号,并给scott赋予dba权限 SQL> create table test1 as select * from dba_objects; SQL> select object_id,count(*) from test1 group by object_id; OBJECT_ID COUNT(*)
---------- ----------
1 173927
82112 1
82121 1
82118 1
82119 1
82122 1
82113 1
82114 1
82120 1
82115 1
82116 1
82117 1
? 2. 创建索引并收集统计信息SQL> create index idx_test1 on test1(object_id) online; SQL> begin ? 3. 通过修改优化器模式,模拟同样的sql产生两条不同的执行计划开启一个窗口A Execution Plan ---------------------------------------------------------- Plan hash value: 4122059633 --------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | --------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 173K| 15M| 693 (1)| 00:00:09 | |* 1 | TABLE ACCESS FULL| TEST1 | 173K| 15M| 693 (1)| 00:00:09 | --------------------------------------------------------------------------- ? (编辑:PHP编程网 - 金华站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

