OceanBase统计信息PL包添加no_invalidate参数语法报错

【背景】

测试环境中,由于对表做大量update导致有一个sql的执行计划时而走merge好时而走nestedloop好,但由于收集完统计信息sql的物理执行计划由于未立即刷新plan cache导致无法立即使最优的执行计划生效,故需收集完统计信息后自动刷新plan cache。

【语法】

示例:收集 hr 下所有表的统计信息。

BEGIN 
    DBMS_STATS.GATHER_SCHEMA_STATS ('hr', degree=>64,no_invalidate=>TRUE);
END;
Query OK, 0 rows affected

【参数说明】

ownname用户名称。如果用户名设置为 NULL,会默认使用当前登录用户名。
no_invalidate收集统计信息时是否刷 Plan Cache。设置为 TRUE 表示收集统计信息时不刷 Plan Cache。
degree并行度。默认值是 NULLNULL 表示使用由 CREATE TABLE 或 ALTER TABLE 语句中的 DEGREE 子句指定的表默认值。当使用 DEGREE=>NULLDEGREE=>n 时,如果对象的大小不保证实现并行执行,则 DBMS_STATS 可能会使用串行执行。

更多参数配置见参考网址

【使用说明】

在OceanBaseV4.2.1版本,需要注意的是,对于取值为 TRUE 和 FALSE 的参数,需要在 BEGIN ... END 块中执行该过程,即需要将该PL包嵌套在事务中,而不可用call调用(实测报了语法错误)。

【参考网址】

GATHER_SCHEMA_STATS-V4.2.1-OceanBase

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值