Oracle11g 未使用Oracle基线

Oracle11g 未使用Oracle基线,oracle11g,Oracle11g,我有一个SQL_ID(1234567890abc),我试图将查询的执行绑定到基线。因此,我正在做以下工作: var v_num编号; exec:v_num:=dbms_spm.load_plan_from_cursor_cache(sql_id=>1234567890abc',plan_hash_value=>1122334455); (假设1122334455是sql_id“1234567890abc”的计划散列。我认为不必设置此值,但我还是这样做了) 因此添加了基线。我用电脑检查 从dba

我有一个SQL_ID(1234567890abc),我试图将查询的执行绑定到基线。因此,我正在做以下工作:

var v_num编号;
exec:v_num:=dbms_spm.load_plan_from_cursor_cache(sql_id=>1234567890abc',plan_hash_value=>1122334455);
(假设1122334455是sql_id“1234567890abc”的计划散列。我认为不必设置此值,但我还是这样做了)

因此添加了基线。我用电脑检查

从dba\u sql\u计划\u基线中选择*;
但是,如果我再次执行查询两到三次,则执行计划不会在注释中显示基线现在正在使用,并且表v$sqlarea中sql\u id='1234567890abc'行的sql\u plan\u baseline列为空。执行的次数是递增的

我尝试使用以下方法从共享池中清除sql\u id:

从v$sqlarea中选择地址、哈希值,其中sql\u id='1234567890abc';
执行sys.dbms_shared_pool.purge('0000000000 abcdef,0987654321','Z');
但是如果我再次发送查询,将在v$sqlarea中创建一个新行,并且表v$sqlarea的列sql\u plan\u基线再次为null

我尝试收集所有模式统计数据(使用no_invalidate=>false),甚至重新启动数据库,但没有任何更改。我还试图将基线标记为固定的,但没有用

Oracle版本为11.2.0.1.0,参数optimizer\u capture\u sql\u plan\u baselines设置为false,optimizer\u use\u sql\u plan\u baselines设置为true


我做错了什么?提前感谢。

最后,我发现企业版中有基线,我使用的是标准版