首批通过分布式安全可靠测评,为关键业务系统打造
FLUSH PLAN CACHE
更新时间:2026-04-10 11:58:01
描述
该语句用来清除指定 Database 和 SQL ID 的计划缓存。
语法
ALTER SYSTEM FLUSH PLAN CACHE
[
[SQL_identifier] [database_list] tenant_list
] [GLOBAL]
database_list:
databases ='database_name, database_name...'
tenant_list:
TENANT = 'tenant_name, tenant_name....'
参数解释
| 参数 | 描述 |
|---|---|
| tenant_list | 用于指定租户范围。指定 SQL_identifier 和 database_list 参数时一定要指定 tenant_list,将操作限定在租户范围内。
说明只有系统租户 |
| SQL_identifier | 用于指定 SQL,格式为 sql_id = 'xxx'。如果不指定该参数,表示清空所有 SQL 的计划缓存。
说明在系统租户 sys 下使用 |
| database_list | 用于指定 Database。如果不指定该参数,表示清除所有计划缓存。
说明在系统租户 sys 下使用 |
| GLOBAL | 为可选字段。如果不指定该参数,表示清空本机的计划缓存。反之,则表示清空该租户所在的所有服务器上的计划缓存。 |
示例
清除所有计划缓存。
obclient> ALTER SYSTEM FLUSH PLAN CACHE; Query OK, 0 rows affected清除 MySQL 和 Oracle 租户的计划缓存。
obclient> ALTER SYSTEM FLUSH PLAN CACHE TENANT = 'MySQL','Oracle'; Query OK, 0 rows affected在 sys 租户下删除指定的计划缓存。
obclient> ALTER SYSTEM FLUSH PLAN CACHE sql_id='B601070DFC14CB85FDA3766A69A9E1B3' databases='myob1' tenant='tenant1' GLOBAL; Query OK, 0 rows affected普通租户登录 DBA 清除自己的计划缓存。
obclient> ALTER SYSTEM FLUSH PLAN CACHE sql_id='B601070DFC14CB85FDA3766A69A9E1B3' databases='myob1' GLOBAL; Query OK, 0 rows affected