暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 19C 关于SQL调整集

原创 Asher.HU 2021-02-04
1520

 

您可以使用SQL调整集将语句和相关元数据分组为一个对象,您可以将其用作SQL调整工具的输入。

本章包含以下主题:

 

23.1关于SQL调整集

一个SQL调优集(STS)是一个数据库对象,您可以输入到调音工具使用。

数据库将SQL调优集存储在数据库提供的架构中。STS包括:

  • 一组SQL语句
  • 关联的执行上下文,例如用户架构,应用程序模块名称和操作,绑定值列表以及游标的 SQL编译环境
  • 相关的基本执行统计信息,例如经过时间,CPU时间,缓冲区获取,磁盘读取,已处理的行,游标获取,执行次数,完整执行次数,优化器成本和命令类型
  • 每个SQL语句的关联执行计划和行源统计信息(可选)

注意:

当将STS与可插入数据库一起使用时,数据可见性和特权要求可能会有所不同。请参阅《Oracle数据库管理指南》中的表,该表总结了可管理性功能如何在容器数据库(CDB)中工作。

本节包含以下主题:

 

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建议使用云控制。

本节包含以下主题:

 

23.1.3.1访问Cloud Control中的SQL调整集页面

Cloud Control中的“ SQL调整集”页面是起始页面,您可以从中执行与SQL调整集有关的大多数操作。

要访问“ SQL优化集”页面,请执行以下操作:

  1. 使用适当的凭据登录到Cloud Control。
  2. 在“ 目标”菜单下,选择“ 数据库”
  3. 在数据库目标列表中,选择要管理的Oracle数据库实例的目标。
  4. 如果提示您输入数据库凭据,则输入您打算执行的任务所需的最低凭据。
  5. 从“ 性能”菜单中,选择“ SQL”,然后选择“ SQL Tuning Sets”

    出现“ SQL Tuning Sets”页面,如图23-2所示

    图23-2 SQL调整集



也可以看看:

Oracle数据库2天+性能调整指南

 

23.1.3.2命令行接口与SQL调整集

在命令行上,您可以使用DBMS_SQLTUNEDBMS_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_SQLTUNEDBMS_SQLSET
ADD_SQLSET_REFERENCEADD_REFERENCE
CAPTURE_CURSOR_CACHE_SQLSETCAPTURE_CURSOR_CACHE
CREATE_STGTAB_SQLSETCREATE_STGTAB
PACK_STGTAB_SQLSETPACK_STGTAB
REMAP_STGTAB_SQLSETREMAP_STGTAB
REVOVE_SQLSET_REFERENCEREMOVE_REFERENCE
UNPACK_STGTAB_SQLSETUNPACK_STGTAB

也可以看看:

Oracle Database PL / SQL软件包和类型参考,以了解DBMS_SQLTUNEDBMS_SQLSET

 

23.1.4 SQL调优集的基本任务

DBMS_SQLTUNE 提供创建,使用和删除SQL调整集所需的过程。

注意:

或者,您可以使用中的相应子程序DBMS_SQLSET在大多数情况下,子程序具有相同的名称。

下图显示了基本的工作流程。

图23-3 SQL调整集API


通常,您按以下顺序执行STS操作:

  1. 创建一个新的STS。                                    “ 创建SQL优化集 ”描述了此任务。
  2. 使用SQL语句和关联的元数据加载STS。    “ 加载SQL优化集 ”描述了此任务。
  3. (可选)显示STS的内容。                         “ 显示SQL调整集的内容 ”描述了此任务。
  4. (可选)更新或删除STS的内容。               “ 修改SQL调整集 ”描述了此任务。
  5. 使用STS作为输入来创建调整任务。
  6. (可选)将STS传输到另一个数据库。          “ 传输SQL优化集 ”描述了此任务。
  7. 完成后放下STS。                                           “ 删除SQL优化集 ”描述了此任务。 

也可以看看:

 SQL调整集的命令行界面 ”,用于等效DBMS_SQLSET子程序 的名称


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论