使用DBMS_SPM,您可以将一组现有计划的大容量加载到SQL计划基准中。
本节包含以下主题:
- 关于加载SQL计划基准
该DBMS_SPM软件包使您可以从多个来源加载计划。 - 从AWR加载计划
本主题说明如何使用PL / SQL从AWR加载计划。 - 从共享SQL区域加载计划
本主题说明如何使用PL / SQL从共享SQL区域(也称为游标缓存)加载计划。 - 从SQL调整集装载计划
甲SQL调整集(STS)是一个数据库对象,其包括一个或多个SQL语句,执行统计数据,和执行上下文。本主题说明如何从STS加载计划。 - 从登台表加载计划
您可能需要将最佳计划从源数据库传输到其他目标数据库。
28.4.1关于加载SQL计划基准
该DBMS_SPM软件包使您可以从多个来源加载计划。
此任务的目标是从以下来源加载计划:
- AWR
从自动工作负载存储库(AWR)快照中加载计划。您必须指定快照范围的开始和结束。(可选)您可以应用过滤器以仅加载符合指定条件的计划。默认情况下,优化器在数据库下次执行SQL语句时使用加载的计划。
- 共享SQL区
直接从SGA共享池中的共享SQL区域加载语句计划。通过在模块名称,模式或SQL ID上应用过滤器,您可以识别要捕获的SQL语句或一组SQL语句。优化器在数据库下次执行SQL语句时使用计划。
当使用提示手动调整了应用程序SQL时,直接从共享SQL区域加载计划非常有用。因为您可能无法更改SQL以包括提示,所以填充SQL计划基准可确保应用程序SQL使用最佳计划。
- SQL调整集(STS)
将SQL工作负载的计划捕获到STS中,然后将计划加载到SQL计划基线中。优化器在数据库下次执行SQL语句时使用计划。从STS批量加载执行计划是防止数据库升级后计划退化的有效方法。
- 登台表
使用该
DBMS_SPM包定义一个临时表,DBMS_SPM.PACK_STGTAB_BASELINE将基准复制到一个临时表中,并使用Oracle Data Pump将表传输到另一个数据库中。在目标数据库上,用于DBMS_SPM.UNPACK_STGTAB_BASELINE从登台表中解压缩计划并将基线放入SMB。用例是从新的应用程序模块向数据库中引入新的SQL语句。供应商可以提供带有新SQL的SQL计划基线的应用程序软件。这样,新SQL使用已知的计划在标准测试配置下可以提供最佳性能。或者,如果您内部开发或测试应用程序,请从测试数据库导出正确的计划,然后将其导入生产数据库。
- 存储的大纲
将存储的大纲迁移到SQL计划基线。迁移后,您可以保持与使用存储大纲相同的计划稳定性,同时可以使用SQL计划管理提供的更高级的功能,例如计划演变。请参阅。
也可以看看:
- “将存储的大纲迁移到SQL计划基准 ”
- Oracle Database PL / SQL软件包和类型参考,以了解该
DBMS_SPM.PACK_STGTAB_BASELINE函数




