您可以使用SQL调整集将语句和相关元数据分组为一个对象,您可以将其用作SQL调整工具的输入。
本章包含以下主题:
- 关于SQL调优集 : 一个SQL调优集(STS)是一个数据库对象,您可以作为输入用来调节工具。
- 创建SQL调优集 : 使用中的
CREATE_SQLSET过程DBMS_SQLTUNE或DBMS_SQLSET在数据库中创建空的STS。 - 加载SQL调整集 : 要使用SQL语句加载STS,请使用或包中的
LOAD_SQLSET过程。DBMS_SQLTUNEDBMS_SQLSET - 显示SQL调优集 : 的内容要在创建和填充STS之后读取其内容,请使用或的
SELECT_SQLSET功能,可以选择使用过滤条件。DBMS_SQLTUNEDBMS_SQLSET - 修改SQL调整集 : 使用STS中的
DELETE_SQLSET过程DBMS_SQLTUNE或DBMS_SQLSET从中删除SQL语句。 - 传输SQL调整集 : 可以将STS传输到在Oracle Database 10 g第2版(10.2)或更高版本中创建的任何数据库。当使用SQL Performance Analyzer调整测试数据库上的回归时,此技术很有用。
- 删除SQL调整集 : 要从数据库中删除STS,请使用或包中的
DROP_SQLSET过程。DBMS_SQLTUNEDBMS_SQLSET
23.1关于SQL调整集
一个SQL调优集(STS)是一个数据库对象,您可以输入到调音工具使用。
数据库将SQL调优集存储在数据库提供的架构中。STS包括:
- 一组SQL语句
- 关联的执行上下文,例如用户架构,应用程序模块名称和操作,绑定值列表以及游标的 SQL编译环境
- 相关的基本执行统计信息,例如经过时间,CPU时间,缓冲区获取,磁盘读取,已处理的行,游标获取,执行次数,完整执行次数,优化器成本和命令类型
- 每个SQL语句的关联执行计划和行源统计信息(可选)
注意:
当将STS与可插入数据库一起使用时,数据可见性和特权要求可能会有所不同。请参阅《Oracle数据库管理指南》中的表,该表总结了可管理性功能如何在容器数据库(CDB)中工作。
本节包含以下主题:
- SQL调优集 : 的目的 STS使您可以将SQL语句和相关的元数据分组在单个数据库对象中,您可以使用该数据库对象满足调优目标。
- SQL调优集的概念 : 若要创建STS,必须从源将SQL语句加载到STS中。
- SQL调整集的用户界面 : 可以使用Oracle Enterprise Manager Cloud Control(云控制)或PL / SQL包来管理SQL调整集。Oracle建议使用云控制。
- SQL调整集的基本任务 :
DBMS_SQLTUNE提供了创建,使用和删除SQL调整集所需的过程。
23.1.1 SQL调整集的用途
通过STS,您可以将SQL语句和相关的元数据分组到单个数据库对象中,可以用来满足您的调整目标。
具体而言,SQL调优集可实现以下目标:
- 向性能调整顾问提供输入
您可以将STS用作多个数据库顾问程序的输入,包括SQL Tuning Advisor,SQL Access Advisor和SQL Performance Analyzer。
- 在数据库之间传输SQL
您可以将SQL调优集从一个数据库导出到另一个数据库,从而可以在数据库之间转移SQL工作负载,以进行远程性能诊断和调优。当生产数据库上发生性能欠佳的SQL语句时,开发人员可能不希望直接在生产数据库上进行调查和调整。DBA可以将有问题的SQL语句传输到测试数据库,开发人员可以在其中安全地对其进行分析和调整。
23.1.2 SQL调优集的概念
要创建STS,必须从源将SQL语句加载到STS中。
如图23-1所示,源可以是自动工作负载存储库(AWR),共享SQL区域,用户提供的自定义SQL,跟踪文件或其他STS。
图23-1 SQL调整集
SQL调整集可以执行以下操作:
- 使用应用程序模块名称和操作或任何执行统计信息过滤SQL语句
- 根据执行统计信息的任意组合对SQL语句进行排名
- 用作顾问的输入或将其传输到其他数据库
也可以看看:
Oracle Database Performance Tuning Guide,了解有关AWR的信息
23.1.3 SQL调整集的用户界面
您可以使用Oracle Enterprise Manager Cloud Control(云控制)或PL / SQL程序包来管理SQL调优集。Oracle建议使用云控制。
本节包含以下主题:
- 访问Cloud Control中
的SQL调整集页面Cloud Control中的SQL调整集页面是您可以从其中执行与SQL调整集有关的大多数操作的起始页面。 - SQL优化集
的命令行界面在命令行上,您可以使用DBMS_SQLTUNE或DBMS_SQLSET程序包来管理SQL优化集。
23.1.3.1访问Cloud Control中的SQL调整集页面
Cloud Control中的“ SQL调整集”页面是起始页面,您可以从中执行与SQL调整集有关的大多数操作。
要访问“ SQL优化集”页面,请执行以下操作:
- 使用适当的凭据登录到Cloud Control。
- 在“ 目标”菜单下,选择“ 数据库”。
- 在数据库目标列表中,选择要管理的Oracle数据库实例的目标。
- 如果提示您输入数据库凭据,则输入您打算执行的任务所需的最低凭据。
- 从“ 性能”菜单中,选择“ SQL”,然后选择“ SQL Tuning Sets”。
出现“ SQL Tuning Sets”页面,如图23-2所示。
图23-2 SQL调整集
也可以看看:
23.1.3.2命令行接口与SQL调整集
在命令行上,您可以使用DBMS_SQLTUNE或DBMS_SQLSET程序包来管理SQL调整集。
您必须具有ADMINISTER SQL TUNING SET管理您拥有的SQL调整集的ADMINISTER ANY SQL TUNING SET系统特权,或者具有管理任何SQL调整集的系统特权。
用于管理SQL调整集的传统软件包是DBMS_SQLTUNE,它需要Oracle调整包。在启动Oracle数据库18c中,您可以执行与相同的任务DBMS_SQLSET,这并没有要求Oracle调整包。在大多数情况下,中的子程序DBMS_SQLSET的名称与中的等效子程序的名称相同DBMS_SQLTUNE。下表仅显示名称不同的子程序。
表23-1 SQL调整集子程序的命名差异
| DBMS_SQLTUNE | DBMS_SQLSET |
|---|---|
ADD_SQLSET_REFERENCE | ADD_REFERENCE |
CAPTURE_CURSOR_CACHE_SQLSET | CAPTURE_CURSOR_CACHE |
CREATE_STGTAB_SQLSET | CREATE_STGTAB |
PACK_STGTAB_SQLSET | PACK_STGTAB |
REMAP_STGTAB_SQLSET | REMAP_STGTAB |
REVOVE_SQLSET_REFERENCE | REMOVE_REFERENCE |
UNPACK_STGTAB_SQLSET | UNPACK_STGTAB |
也可以看看:
Oracle Database PL / SQL软件包和类型参考,以了解DBMS_SQLTUNE和DBMS_SQLSET
23.1.4 SQL调优集的基本任务
DBMS_SQLTUNE 提供创建,使用和删除SQL调整集所需的过程。
注意:
或者,您可以使用中的相应子程序DBMS_SQLSET。在大多数情况下,子程序具有相同的名称。
下图显示了基本的工作流程。
图23-3 SQL调整集API
通常,您按以下顺序执行STS操作:
也可以看看:
“ SQL调整集的命令行界面 ”,用于等效DBMS_SQLSET子程序 的名称




