实时SQL监视是Oracle数据库调整包的功能。将CONTROL_MANAGEMENT_PACK_ACCESS初始化参数设置为DIAGNOSTIC+TUNING(默认)时,将启用数据库操作。
本节包含以下主题:
- Cloud Control中的 : “受监视的SQL执行”页面Cloud Control中的 “受监视的SQL执行”页面(也称为SQL Monitor)显示SQL执行的详细信息。建议使用SQL Monitor作为报告数据库操作的界面。
- DBMS_SQL_MONITOR包 : 的
DBMS_SQL_MONITOR包定义开始和复合数据库操作的结束,并生成数据库操作的报告。 - 复合数据库操作 : 的属性该
DBMS_SQL_MONITOR.BEGIN_OPERATION函数定义数据库操作。 - MONITOR和NO_MONITOR提示 : 您可以使用MONITOR和NO_MONITOR提示来控制对单个语句的跟踪。
- 数据库操作的监视和报告视图 : 您可以使用
V$和数据字典视图获取数据库操作的统计信息。
21.1.4.1Cloud Control中的监控的SQL执行页面
Cloud Control中的“受监视的SQL执行”页面(也称为SQL Monitor)显示SQL执行的详细信息。建议使用SQL Monitor作为报告数据库操作的界面。
执行计划每一步的统计信息都通过关键性能指标进行跟踪,包括经过时间,CPU时间,读写次数,I / O等待时间以及各种其他等待时间。这些度量使DBA能够深入分析SQL执行,并为受监视的SQL语句确定最合适的调整策略。
SQL Monitor活动报告提供了基于Flash的交互式报告,使您可以将数据保存在HTML文件中。您可以保存此文件并离线查看。
本节包含以下主题:
- 访问“监视的SQL执行”页面
“监视的SQL执行”显示诸如SQL ID,数据库时间和I / O请求之类的信息。
21.1.4.1.1访问受监视的SQL执行页面
监视的SQL执行显示诸如SQL ID,数据库时间和I / O请求之类的信息。
要访问“监视的SQL执行”页面:
- 使用适当的凭据登录到Cloud Control。
- 在“ 目标”菜单下,选择“ 数据库”。
- 在数据库目标列表中,选择要管理的Oracle数据库实例的目标。
- 如果提示您输入数据库凭据,则输入您打算执行的任务所需的最低凭据。
- 从“ 性能”菜单中,选择“ SQL监视”。
将显示“监视的SQL执行”页面。
图21-2监视的SQL执行
21.1.4.2 DBMS_SQL_MONITOR软件包
所述DBMS_SQL_MONITOR包定义的开始和复合数据库操作的结束,并且生成的数据库操作的一个报告。
表21-1 DBMS_SQL_MONITOR
| 子程序 | 描述 |
|---|---|
| 此函数在当前会话中启动数据库操作。 此功能将会话与数据库操作关联。从Oracle Database 12c第2版(12.2)开始,您可以使用 |
| 该函数在当前会话中结束数据库操作。如果指定的数据库操作不存在,则此功能无效。 |
| 此功能使用SQL语句,PL / SQL块或数据库操作的监视信息构建详细的报告。 对于每个操作,它都会提供关键信息和相关的全局统计信息。使用此功能可获取有关数据库操作的详细监视信息。 该报告的目标数据库操作可以是:
使用 |
| 此函数与函数相同 |
| 此功能为Oracle Database监视的所有或部分数据库操作生成报告。 |
| 此函数与函数相同 |
也可以看看:
Oracle Database PL / SQL软件包和类型参考以了解该DBMS_SQL_MONITOR软件包
21.1.4.3复合数据库操作的属性
该DBMS_SQL_MONITOR.BEGIN_OPERATION函数定义了数据库操作。
复合数据库操作由以下信息唯一标识:
- 数据库操作名称
这是用户创建的名称,例如
daily_sales_report。即使作业由不同的会话或在不同的数据库上同时执行,该作业的名称也相同。数据库操作名称不位于不同的名称空间中。 - 数据库操作执行ID
可以使用相同的名称但不同的执行ID同时运行两次或多次出现的同一数据库操作。此数字ID唯一标识同一数据库操作的不同执行。
开始数据库操作时,数据库会自动创建一个执行ID。您还可以指定用户创建的执行ID。
(可选)您可以指定要在其中启动数据库操作的会话ID和会话序列号。因此,一个数据库会话可以启动在另一数据库会话中定义的数据库操作。
数据库使用以下三元组值来标识V$SQL_MONITOR视图中监视的每个SQL和PL / SQL语句,而不管该语句是否包含在数据库操作中:
- 用于标识SQL语句的SQL标识符(
SQL_ID) - 开始执行时间戳记(
SQL_EXEC_START) - 内部生成的标识符,以确保此主键是真正唯一的(
SQL_EXEC_ID)
您可以使用零个或多个其他属性来描述和识别复合数据库操作的特征。每个属性都有一个名称和值。例如,对于数据库操作daily_sales_report,您可以定义属性db_name并为其分配值prod。
相关话题
21.1.4.4 MONITOR和NO_MONITOR提示
您可以使用MONITOR和NO_MONITOR提示来控制对单个语句的跟踪。
MONITOR即使语句不是长时间运行的,该提示也会强制对查询进行实时SQL监视。仅当参数CONTROL_MANAGEMENT_PACK_ACCESS设置为时,此提示才有效DIAGNOSTIC+TUNING。以下查询强制SQL Monitor启用跟踪:
SELECT /*+ MONITOR */ prod_id, AVG(amount_sold), AVG(quantity_sold)
FROM sales
GROUP BY prod_id
ORDER BY prod_id;
NO_MONITOR即使查询长时间运行,该提示也会禁用查询的实时SQL监视。以下查询强制SQL Monitor禁用跟踪:
SELECT /*+ NO_MONITOR */ prod_id, AVG(amount_sold), AVG(quantity_sold)
FROM sales
GROUP BY prod_id
ORDER BY prod_id;
注意:
Oracle Database SQL语言参考以了解MONITOR和NO_MONITOR提示
21.1.4.5用于监视和报告数据库操作的视图
您可以使用V$和数据字典视图获取数据库操作的统计信息。
下表总结了这些视图。
表21-2用于数据库操作监视的视图
| 视图 | 描述 |
|---|---|
此视图显示有关在自动工作量存储库(AWR)中捕获的XML报告的元数据。每个XML报告都包含有关组件某些活动的详细信息。例如,SQL Monitor报告包含有关特定数据库操作的详细报告。 重要的列包括:
AWR控制SQL Monitor报表的保留期。输入的每个SQL Monitor报告 | |
此视图显示有关在AWR中捕获的每个报告的详细信息。每个报告的元数据都显示在 | |
该视图包含有关简单和组合数据库操作的全局,高级信息。 对于简单的数据库操作,监视统计信息不会在多个执行中累积。在这种情况下,其中一个条目 对于简单的数据库操作, 对于复合数据库操作,每一行都包含一个操作,该操作的统计信息是作为操作的一部分在同一会话中运行的SQL语句和PL / SQL子程序上累积的。主键是列 | |
该视图包含数据库操作中涉及的所有会话的统计信息。 大多数统计数据都是累积的。数据库以XML格式存储统计信息,而不是为每个统计信息使用每一列。该视图主要供报表生成器使用。Oracle建议您使用 | |
该视图包含受监视的SQL语句的执行计划中每个步骤的监视统计信息。 在 |
您可以将前面的V$视图与下面的视图结合使用,以获取有关受监视执行的其他信息:
V$ACTIVE_SESSION_HISTORYV$SESSIONV$SESSION_LONGOPSV$SQLV$SQL_PLAN
也可以看看:
Oracle数据库参考,以了解V$用于数据库操作监视的视图




