Plan_Cache 中该 SQL 的执行计划加载为基线计划报错

Plan_Cache 中该 SQL 的执行计划加载为基线计划报错

–查询
select QUERY_SQL,FIRST_LOAD_TIME,LAST_ACTIVE_TIME,PLAN_HASH,SQL_ID,EVOLUTION,EVO_EXECUTIONS from oceanbase.GV$OB_PLAN_CACHE_PLAN_STAT where query_sql like ‘%select%tb1%c2<10%’;
±--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------±---------------------------±---------------------------±---------------------±---------------------------------±----------±---------------+
| QUERY_SQL | FIRST_LOAD_TIME | LAST_ACTIVE_TIME | PLAN_HASH | SQL_ID | EVOLUTION | EVO_EXECUTIONS |
±--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------±---------------------------±---------------------------±---------------------±---------------------------------±----------±---------------+
| select * from tb1 where c2<10 | 2026-01-03 21:17:02.241314 | 2026-01-03 21:17:02.240662 | 11109518166002977656 | 06D43A2A1597166414DBD13B5B7FB7B9 | 0 | 0 |
| SELECT sql_id, plan_hash, statement
FROM oceanbase.GV$OB_PLAN_CACHE_PLAN_STAT
WHERE statement like ‘%select%tb1%c2<10%’ | 2026-01-03 21:17:21.510962 | 2026-01-03 21:17:21.512154 | 2205174570288151559 | 86C83A67AA848F0F0AC2DDC887046F16 | 0 | 0 |
| select query_Sql,usec_to_time(request_time),sql_id from oceanbase.gv$ob_Sql_audit where query_sql like ‘%select%tb1%c2<10%’ | 2026-01-03 21:17:30.114488 | 2026-01-03 21:17:30.116439 | 5860791581494507320 | E56D1220E38EB89484062473F2B18B2B | 0 | 0 |
| select QUERY_SQL,FIRST_LOAD_TIME,LAST_ACTIVE_TIME,PLAN_HASH,SQL_ID,EVOLUTION,EVO_EXECUTIONS from oceanbase.GV$OB_PLAN_CACHE_PLAN_STAT where query_sql like ‘%select%tb1%c2<10%’ | 2026-01-03 21:17:39.246969 | 2026-01-03 21:17:44.367138 | 2205174570288151559 | F3464903E9E1ECC2A2A224C6325D954F | 0 | 0 |
±--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------±---------------------------±---------------------------±---------------------±---------------------------------±----------±---------------+
4 rows in set (0.008 sec)
— --将 Plan_Cache 中该 SQL 的执行计划加载为基线计划
DBMS_SPM.LOAD_PLANS_FROM_CURSOR_CACHE (
→ database_name ‘lab4spm’,
→ sql_id ‘06D43A2A1597166414DBD13B5B7FB7B9’,
→ plan_hash_value 11109518166002977656,
→ is_fixed ‘NO’,
→ enabled ‘YES’
→ ) RETURN DECIMAL;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near 'DBMS_SPM.LOAD_PLANS_FROM_CURSOR_CACHE (
database_name ‘lab4spm’,
sql_id ’ at line 1
obclient(root@obmysql)[lab4spm]>
想问问为啥报错?试了好多次了,总说错误。

2 个赞

看报错是OB版本导致的语法错误,啥版本呢

1 个赞

用过4.2社区,也用过V4的企业版,都报错。

1 个赞

select dbms_spm.load_plans_from_cursor_cache(‘lab4spm’,‘SQL_ID’,‘plan_hash’,‘NO’,‘YES’) from dual;

dbms_spm.load_plans_from_cursor_cache是一个函数,不能直接调用

3 个赞

学习了

1 个赞

再研究研究

1 个赞

使用示例方法调用

3 个赞

语法错误啊

学习了

谢谢来轩老师,帮我解决了一个困扰好久的问题。

1 个赞