要查看存储在SQL计划基线中的特定语句的计划,请使用DBMS_XPLAN.DISPLAY_SQL_PLAN_BASELINE函数。此功能使用存储在计划历史记录中的计划信息来显示计划。
下表描述了该DBMS_XPLAN.DISPLAY_SQL_PLAN_BASELINE功能的相关参数。
表28-4 DBMS_XPLAN.DISPLAY_SQL_PLAN_BASELINE参数
| 功能参数 | 描述 |
|---|---|
| 语句的SQL处理。通过在列上连接 |
| 声明计划的名称。 |
本节说明如何从命令行在基线中显示计划。如果使用Cloud Control,则从图28-1所示的“ SQL计划基准”子页面显示计划基准。
要在SQL计划基线中显示计划:
- 使用适当的特权将SQL * Plus连接到数据库,然后获取要显示其计划的查询的SQL ID。
例如,假定
SELECT具有SQL ID 的语句存在SQL计划基线31d96zzzpcys9。 - 通过SQL ID查询计划。
以下查询显示具有SQL ID的语句的执行计划
31d96zzzpcys9:SELECT PLAN_TABLE_OUTPUT FROM V$SQL s, DBA_SQL_PLAN_BASELINES b, TABLE( DBMS_XPLAN.DISPLAY_SQL_PLAN_BASELINE(b.sql_handle,b.plan_name,'basic') ) t WHERE s.EXACT_MATCHING_SIGNATURE=b.SIGNATURE AND b.PLAN_NAME=s.SQL_PLAN_BASELINE AND s.SQL_ID='31d96zzzpcys9';示例查询结果如下:
PLAN_TABLE_OUTPUT --------------------------------------------------------------------------- --------------------------------------------------------------------------- SQL handle: SQL_513f7f8a91177b1a SQL text: select * from hr.employees where employee_id=100 --------------------------------------------------------------------------- --------------------------------------------------------------------------- Plan name: SQL_PLAN_52gvzja8jfysuc0e983c6 Plan id: 3236529094 Enabled: YES Fixed: NO Accepted: YES Origin: AUTO-CAPTURE --------------------------------------------------------------------------- Plan hash value: 3236529094 ----------------------------------------------------- | Id | Operation | Name | ----------------------------------------------------- | 0 | SELECT STATEMENT | | | 1 | TABLE ACCESS BY INDEX ROWID| EMPLOYEES | | 2 | INDEX UNIQUE SCAN | EMP_EMP_ID_PK | -----------------------------------------------------结果表明,SQL ID计划
31d96zzzpcys已命名SQL_PLAN_52gvzja8jfysuc0e983c6并被自动捕获。
也可以看看:
- “ SQL管理基础 ”
- Oracle Database PL / SQL软件包和类型参考,以了解该
DISPLAY_SQL_PLAN_BASELINE函数 使用的其他参数
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




