您可以从SQL计划基准中删除部分或全部计划。在测试SQL计划管理时,此技术有时很有用。
使用该DBMS_SPM.DROP_SQL_PLAN_BASELINE功能放置计划。此函数返回已删除计划的数量。下表描述了输入参数。
表28-11 DROP_SQL_PLAN_BASELINE参数
| 功能参数 | 描述 |
|---|---|
| SQL语句标识符。 |
| 特定计划的名称。Default |
本节说明如何从命令行删除基线。在Cloud Control中,从SQL Plan Baseline子页面中选择一个计划,然后单击Drop。
本教程假定您要删除以下SQL语句的所有计划,从而有效地删除SQL计划基准:
SELECT /* repeatable_sql */ COUNT(*) FROM hr.jobs;
删除SQL计划基准:
- 使用适当的特权将SQL * Plus连接到数据库,然后在数据字典中查询计划基准。
以下语句查询
DBA_SQL_PLAN_BASELINES(包括示例输出):SQL> SELECT SQL_HANDLE, SQL_TEXT, PLAN_NAME, ORIGIN, 2 ENABLED, ACCEPTED 3 FROM DBA_SQL_PLAN_BASELINES 4 WHERE SQL_TEXT LIKE 'SELECT /* repeatable_sql%'; SQL_HANDLE SQL_TEXT PLAN_NAME ORIGIN ENA ACC -------------------- -------------------- ------------------------------ -------------- --- --- SQL_b6b0d1c71cd1807b SELECT /* repeatable SQL_PLAN_bdc6jswfd303v2f1e9c20 AUTO-CAPTURE YES YES _sql */ count(*) fro m hr.jobs - 删除该语句的SQL计划基线。
以下示例使用SQL handle删除计划基准
SQL_b6b0d1c71cd1807b,并返回删除的计划数。使用计划名称(plan_name),SQL句柄(sql_handle)或任何其他计划条件指定计划基准。该table_name参数是强制性的。DECLARE v_dropped_plans number; BEGIN v_dropped_plans := DBMS_SPM.DROP_SQL_PLAN_BASELINE ( sql_handle => 'SQL_b6b0d1c71cd1807b' ); DBMS_OUTPUT.PUT_LINE('dropped ' || v_dropped_plans || ' plans'); END; / - 确认计划已删除。
例如,执行以下查询:
SELECT SQL_HANDLE, SQL_TEXT, PLAN_NAME, ORIGIN, ENABLED, ACCEPTED FROM DBA_SQL_PLAN_BASELINES WHERE SQL_TEXT LIKE 'SELECT /* repeatable_sql%'; no rows selected
也可以看看:
Oracle Database PL / SQL软件包和类型参考以了解该DROP_SQL_PLAN_BASELINE功能
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




