专用 Exadata 基础结构上的自治 AI 数据库中的高性能功能

本文介绍了专用 Exadata 基础结构上的自治 AI 数据库中的主要性能优化功能。

请注意,在本节中,术语“您”广泛用于指组织中负责执行某些任务的任何用户。在某些情况下,这是应用程序 DBA,在另一些情况下,它是应用程序开发人员。

自治 AI 数据库包含多项功能,可自动监视、分析和优化数据库的性能。有关 Oracle Autonomous AI Database 的 SQL 优化和性能管理功能的完整列表以及如何使用这些功能的说明,请参阅 Oracle Database 19c SQL Tuning GuideOracle Database 26ai SQL Tuning Guide

您可以查看下面描述的自治 AI 数据库的主要性能优化功能的广泛分类。

插图 hp_features.svg 的说明

预定义的数据库服务

应用如何连接到数据库以及如何对数据库进行 SQL 调用编码,从而确定应用事务处理和报告操作的整体性能。

与自治 AI 数据库建立连接时,应用与数据库的交互性能取决于您连接到哪个数据库服务。自治 AI 数据库提供多组数据库服务,供您连接到数据库时使用。这些连接服务旨在支持不同类型的数据库操作,如 Predefined Database Service Names for Autonomous AI Databases 中所述。

提示:确保查看预定义数据库服务的关键特征,以及根据这些特征比较不同数据库服务集的表,以决定哪个数据库服务更适合应用程序的性能要求。

连接池

与自治 AI 数据库建立连接时,您可以使用连接池来减少重复创建和销毁单个连接的性能开销。这是对应用程序与数据库交互的性能有重大影响的另一个因素。

通常,只有在设计或增强应用程序以提供持续可用性时才会考虑使用连接池。但是,使用连接池而不是单个连接几乎可以使每个事务处理应用程序受益。连接池具有以下优点:

特殊用途连接功能

Oracle Net Services(以前称为 SQL*Net)提供了各种连接功能,可以提高特定连接方案的性能。Oracle Database 19c Net Services Administrator’s GuideOracle Database 26ai Net Services Administrator’s Guide 中介绍了这些功能。

SQL 性能优化功能

出色的应用程序从编写良好的 SQL 开始。Oracle Autonomous AI Database 提供多种功能,可帮助您构建高性能应用并验证 SQL 和 PL/SQL 代码。下面列出了其中一些功能:

在开发应用程序时,您可以使用 Oracle Database Actions(内置在自治 AI 数据库中)和 Oracle SQL Developer(在开发系统上安装的免费应用程序)提供的 SQL 工作表,快速了解这些功能如何影响编写的 SQL 代码,从而改进代码。

SQL 跟踪

当应用程序操作花费的时间比预期长时,获取在此操作过程中执行的所有 SQL 语句的跟踪信息,以及该 SQL 语句在语法分析、执行和提取阶段花费的时间等详细信息,将有助于您确定和解决性能问题的原因。您可以在自治 AI 数据库上使用 SQL 跟踪来实现此目的。

在自治 AI 数据库中,SQL 跟踪默认处于禁用状态。您必须启用它才能开始收集 SQL 跟踪数据。有关启用和使用 SQL 跟踪的详细说明,请参阅在自治 AI 数据库上使用 SQL 跟踪

优化程序统计信息

自治 AI 数据库会自动收集优化程序统计信息,这样您就不必手动执行此任务,这有助于确保统计信息是最新的。自动统计信息收集在自治 AI 数据库中启用,并在标准维护窗口中运行。

注:有关维护窗口时间和自动优化程序统计信息收集的详情,请参阅 Oracle Database 19c Administrator’s GuideOracle Database 26ai Administrator’s Guide 。有关优化程序统计信息的更多信息,请参阅 Oracle Database 19c SQL Tuning GuideOracle Database 26ai SQL Tuning Guide

优化程序提示

优化程序提示是 SQL 语句中的特殊注释,用于将指令传递给优化程序。优化程序使用提示为语句选择执行计划,除非被某些条件阻止。

优化程序的自治 AI 数据库默认值和 PARALLEL 提示因工作负载而异:

自动索引

自动索引可自动执行自治 AI 数据库中的索引管理任务。默认情况下,自治 AI 数据库中的自动索引功能处于禁用状态。

手动创建索引需要深入了解数据模型、应用和数据分布。过去,DBA 负责选择要创建的索引,有时 DBA 不会随着条件的变化而修改其选择或维护索引。因此,改进的机会丧失了,使用不必要的指数可能成为履约责任。

Autonomous AI Database 中的自动索引功能可监视应用工作负载,并自动创建和维护索引。

提示:对于演示这些说明的“试用”替代方案,请在 Oracle Autonomous AI Database Dedicated for Developers and Database Users Workshop 中运行 Lab 14:Automatic Indexing

启用自动索引

禁用自动索引

使用 DBMS_AUTO_INDEX.CONFIGURE 过程可禁用自动索引。例如,执行下面的语句将禁用数据库中的自动索引,以免创建新的自动索引。但是,现有的自动索引仍处于启用状态。

EXEC DBMS_AUTO_INDEX.CONFIGURE('AUTO_INDEX_MODE','OFF');

有关详细信息,请参阅 Oracle Database 19c Administrator’s GuideOracle Database 26ai Administrator’s Guide 中的 Managing Auto Indexes

快速摄取

快速摄取可优化数据库中的高频率单行数据插入的处理。快速摄取使用大型池在将插入写入磁盘之前缓冲插入,以提高数据插入性能。

快速查询的目的是支持生成大量信息数据的应用程序,这些数据在聚合中具有重要价值,但这并不一定需要完整的 ACID 保证。物联网 (Internet of Things,IoT) 中的许多应用都具有快速的“触发和遗忘”类型工作负载,例如传感器数据、智能电表数据甚至交通摄像头。对于这些应用程序,数据可能会以大量形式收集并写入数据库,以供日后分析。

快速摄取与通常的 Oracle AI Database 事务处理非常不同,在事务处理中记录数据,并且一旦“写入”数据库(即提交)就不会丢失数据。为了实现最大摄取吞吐量,会绕过普通的 Oracle 事务处理机制,应用程序有责任检查是否所有数据都已写入数据库。已添加特殊 API,可以调用这些 API 来检查是否已将数据写入数据库。

有关快速摄取的概述以及使用此功能所涉及的步骤,请参阅 Using Fast Ingest in Oracle Database 19c Performance Tuning GuideOracle Database 26ai Performance Tuning Guide

要将快速摄取与自治 AI 数据库结合使用,您必须:

使用 Oracle Scheduler 预定义的作业类

自治 AI 数据库包括要与 Oracle Scheduler 一起使用的预定义 job_class 值。通过这些作业类,可以将具有共同特征和行为的作业分组到更大的实体中,以便通过控制分配给每个类的资源来在这些类之间确定优先级。

通过预定义的作业类,您可以确保关键作业具有优先级和足够的资源来完成。例如,对于要加载数据仓库的关键项目,您可以将所有数据仓库作业组合到一个类中,并通过分配高百分比的可用资源来将其优先于其他作业。您还可以为作业类中的作业分配相对优先级。

预定义的 job_classTPURGENTTPHIGHMEDIUMLOW 映射到相应的使用者组。这些作业类允许您使用 DBMS_SCHEDULER.CREATE_JOB 指定作业运行的使用者组。

DBMS_SCHEDULER.CREATE_JOB 过程支持自治 AI 数据库中 job_type 参数的 PLSQL_BLOCKSTORED_PROCEDURE 作业类型。

例如:使用以下命令创建要在 HIGH 使用者组中运行的单个常规作业:

BEGIN
   DBMS_SCHEDULER.CREATE_JOB (
     job_name => 'update_sales',
     job_type => 'STORED_PROCEDURE',
     job_action => 'OPS.SALES_PKG.UPDATE_SALES_SUMMARY',
     start_date => '28-APR-19 07.00.00 PM Australia/Sydney',
     repeat_interval => 'FREQ=DAILY;INTERVAL=2',
     end_date => '20-NOV-19 07.00.00 PM Australia/Sydney',
     auto_drop => FALSE,
     job_class => 'HIGH',
     comments => 'My new job');
END;
/

Oracle Scheduler 的注释:

有关 Oracle Scheduler 和 DBMS_SCHEDULER.CREATE_JOB 的更多信息,请参见 Scheduling Jobs with Oracle Scheduler in Oracle Database 19c or Oracle Database 26ai

有关作业属性的信息,请参阅 Oracle Database 19cOracle Database 26ai 中的 SET_ATTRIBUTE Procedure

性能监视和优化工具

诸如工作负载变化、应用和数据库服务器的资源限制,或者简单的网络瓶颈等几种情况会导致应用性能问题。Oracle 提供了各种工具来帮助您监视性能、诊断性能问题以及优化应用或数据库以解决问题。下面列出了其中一些:

工具 详细资料
性能中心 Oracle Cloud Infrastructure (OCI) 控制台中提供的功能丰富的工具。Performance Hub 还内置了 Oracle Database Actions 和 Oracle Enterprise Manager。

有关更多详细信息,请参阅使用性能中心监视数据库性能
自治 AI 数据库度量 自治 AI 数据库度量可帮助您衡量有用的定量数据,例如 CPU 和存储利用率、成功和失败的数据库登录次数以及连接尝试次数、数据库操作、SQL 查询和事务处理等。您可以使用度量数据来诊断自治 AI 数据库资源的问题并进行故障排除。

有关其先决条件、使用情况以及专用 Exadata 基础结构上自治 AI 数据库可用的度量列表等详细信息,请参阅监视具有自治 AI 数据库度量的数据库
自动工作量资料档案库 (Automatic Workload Repository,AVR) 和自动数据库诊断监视器 (Automatic Database Diagnostic Monitor,ADDM) 另外两个常用的工具是自动工作量资料档案库 (Automatic Workload Repository,AWR) 和自动数据库诊断监视器 (Automatic Database Diagnostic Monitor,ADDM)。

AWR 存储 Oracle 数据库的性能相关统计信息,而 ADDM 是一种诊断工具,可以定期分析 AWR 数据,查找任何性能问题的根本原因,提供更正问题的建议,并确定系统的非问题区域。由于 AWR 是历史性能数据的存储库,因此 ADDM 可以在事件发生后分析性能问题,这通常会节省重现问题的时间和资源。

有关使用这些工具的说明以及有关数据库性能监视和调优的详细信息,请参阅 Oracle Database 19c Performance Tuning GuideOracle Database 26ai Performance Tuning Guide

性能中心还提供 AWR 和 ADDM。有关详细信息,请参阅使用性能中心监视数据库性能

有关数据库性能监视和调优的快速介绍,请参阅 Oracle Database 19c 2 Day + Performance Tuning GuideOracle Database 26ai 2 Day + Performance Tuning Guide