想问一下社区版的执行计划有问题怎么处理

目前我们有一个SQL一直走一个很慢的执行计划。这个sql随便改一下sql的格式化执行都没有问题
ALTER SYSTEM FLUSH PLAN CACHE sql_id=‘xxxx’ databases=‘xxx’;
执行这个后再执行sql 还是用的这个计划sql_id也没变

select DBMS_SPM.DROP_SQL_PLAN_BASELINE(‘database_name’,‘sql_id’) from dual;
执行这个,社区版好像也不支持

还有什么办法清这个计划吗想让他重新生成新计划。

1 个赞

SQL_ID本身也不会变吗,变的是plan_id

1 个赞

SQL文本变了SLQ_ID才会变,你只是把plan_cache刷没了,重新生成执行计划时候plan_id会跟之前不一样,社区版应该是不支持SPM的

1 个赞

Plan Hash 也没有变。执行一下上面的然后 他执行出来 这个也没变。

1 个赞

查询下gv$ob_plan_cache_plan_stat

1 个赞

ob是哪个版本 执行计划的基线社区是没有的查询一下这个视图GV$OB_PLAN_CACHE_PLAN_STAT

1 个赞

SELECT * FROM oceanbase.GV$OB_PLAN_CACHE_PLAN_STAT where sql_id = ‘DD4B6954D6AD928C98538479177F1268’

这个是有的怎么清理一下嘞

1 个赞

查询结果呢,贴个查询SQL什么意思

1 个赞

1004 192.168.48.107 2882 651 DD4B6954D6AD928C98538479177F1268 1 0 0 500536 SELECTt.eid FROM trade t WHERE IF(t.status = ‘LEFT’ AND t.lock = ‘Y’,‘N’,t.lock) = ‘N’
ND t.eid NOT IN (
,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?

ND t.status = ‘NEW’
ND t.promo IN (‘NONE’,‘PROMO’)
ND t.wh_id = ? GROUP BY t.eid ORDER BY payTime ASC LIMIT ? SELECTt.eid FROM trade t WHERE IF(t.status = ‘LEFT’ AND t.lock = ‘Y’,‘N’,t.lock) = ‘N’
ND t.eid NOT IN (
,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?

ND t.status = ‘NEW’
ND t.promo IN (‘NONE’,‘PROMO’)
ND t.wh_id = ? GROUP BY t.eid ORDER BY payTime ASC LIMIT ? NULL,45,283115520,+08:00,2,4,1,0,0,3,1,0,1,10485760,1,0,DD-MON-RR,DD-MON-RR HH.MI.SSXFF AM,DD-MON-RR HH.MI.SSXFF AM TZR,BINARY,BINARY,AL32UTF8,AL16UTF16,BYTE,FALSE,1,100,64,200,0,13,NULL,1,1,1,1,1,0,0,0,1000,BLOOM_FILTER,RANGE,IN,1,17180067073,17180067073,1,2,0,45,0,0,

1 个赞

1 个赞

ALTER SYSTEM FLUSH PLAN CACHE sql_id=‘B601070DFC14CB85FDA3766A69A9E1B3’
databases=‘myob1’ tenant=‘tenant1’ GLOBAL; 执行下这个命令,把相关信息修改下,如果业务租户执行不用加 tenant

image


昨天 也是执行这个清的。但 再执行 还是很慢。版本 4.3.5.1 版本

为什么要清理执行计划缓存 缓存的计划有问题么?清理完以后 在执行变快了么?ob的版本号是4351么?

image
你看这个 第一个执行了10多秒呐
第三个sql只是格式和他不一样。换行之类的。但毫秒级。所以想清理他。看不能能重新生成

执行完清理 还是慢 还是 那个18秒。 版本号是4351

感觉不一定是清理缓存的问题
两个语句的xplan计划
SELECT DBMS_XPLAN.DISPLAY_CURSOR(plan_id, ‘all’, ‘svr_ip’,svr_port, tenant_id) FROM DUAL;

能否发一下 或者用obdiag 收集一下sql_monitor的信息 根据trace_id信息
obdiag gather plan_monitor --trace_id YB420BA2D99B-0005EBBFC45D5A00-0-0 --env"{db_connect=’-hxx -Pxx -uxx -pxx -Dxx’}"

说了一大堆,加个hint不走plan cache不就完了??还 是说社区版不支持这种搞法?

他应该是想 第一次解析是硬解析 缓存以后 还要命中缓存 要不然硬解析也是问题

太棒了。好聪明