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

Oracle 19C 用于数据库操作监视的用户界面

原创 Asher.HU 2021-02-04
1490


实时SQL监视是Oracle数据库调整包的功能。CONTROL_MANAGEMENT_PACK_ACCESS初始化参数设置为DIAGNOSTIC+TUNING(默认)时,启用数据库操作

本节包含以下主题:

 

21.1.4.1Cloud Control中的监控的SQL执行页面

Cloud Control中的“受监视的SQL执行”页面(也称为SQL Monitor)显示SQL执行的详细信息。建议使用SQL Monitor作为报告数据库操作的界面。

执行计划每一步的统计信息都通过关键性能指标进行跟踪,包括经过时间,CPU时间,读写次数,I / O等待时间以及各种其他等待时间。这些度量使DBA能够深入分析SQL执行,并为受监视的SQL语句确定最合适的调整策略。

SQL Monitor活动报告提供了基于Flash的交互式报告,使您可以将数据保存在HTML文件中。您可以保存此文件并离线查看。

本节包含以下主题:


21.1.4.1.1访问受监视的SQL执行页面

监视的SQL执行显示诸如SQL ID,数据库时间和I / O请求之类的信息。

要访问“监视的SQL执行”页面:

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

    将显示“监视的SQL执行”页面。

    图21-2监视的SQL执行



21.1.4.2 DBMS_SQL_MONITOR软件包

所述DBMS_SQL_MONITOR包定义的开始和复合数据库操作的结束,并且生成的数据库操作的一个报告。

表21-1 DBMS_SQL_MONITOR

子程序描述

BEGIN_OPERATION

此函数在当前会话中启动数据库操作。

此功能将会话与数据库操作关联。Oracle Database 12c第2版(12.2)开始,您可以使用session_idsession_num指示要开始监视的会话。

END_OPERATION

该函数在当前会话中结束数据库操作。如果指定的数据库操作不存在,则此功能无效。

REPORT_SQL_MONITOR

此功能使用SQL语句,PL / SQL块或数据库操作的监视信息构建详细的报告。

对于每个操作,它都会提供关键信息和相关的全局统计信息。使用此功能可获取有关数据库操作的详细监视信息。

该报告的目标数据库操作可以是:

  • Oracle Database监视的最后一个数据库操作(默认,无参数)。
  • 在指定会话中执行并由Oracle Database监视的最后一个数据库操作。该会话由其会话ID和可选的序列号(-1当前会话)标识
  • 由标识的特定数据库操作的最后一次执行sql_id
  • 数据库操作的一个具体的执行中识别由所述组合sql_idsql_exec_startsql_exec_id
  • 由标识的特定数据库操作的最后一次执行dbop_name
  • 由组合标识的数据库操作的具体执行dbop_namedbop_exec_id

使用type参数指定输出类型:TEXT(默认), ,HTMLACTIVEXML

REPORT_SQL_MONITOR_XML

此函数与函数相同REPORT_SQL_MONITOR,除了返回类型为XMLType

REPORT_SQL_MONITOR_LIST

此功能为Oracle Database监视的所有或部分数据库操作生成报告。

REPORT_SQL_MONITOR_LIST_XML

此函数与函数相同REPORT_SQL_MONITOR_LIST,除了它返回XMLType


也可以看看:

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语言参考以了解MONITORNO_MONITOR提示

 

21.1.4.5用于监视和报告数据库操作的视图

您可以使用V$和数据字典视图获取数据库操作的统计信息

下表总结了这些视图。

表21-2用于数据库操作监视的视图

视图描述

DBA_HIST_REPORTS

此视图显示有关在自动工作量存储库(AWR)中捕获的XML报告的元数据。每个XML报告都包含有关组件某些活动的详细信息。例如,SQL Monitor报告包含有关特定数据库操作的详细报告。

重要的列包括:

  • REPORT_SUMMARY列包含报告的摘要。
  • COMPONENT_NAME列接受值sqlmonitor
  • REPORT_ID列提供报告的ID,您可以在生成报告时RID参数中指定该ID DBMS_AUTO_REPORT.REPORT_REPOSITORY_DETAIL
  • KEY1列是语句的SQL ID。
  • KEY2列是该语句的SQL执行ID

AWR控制SQL Monitor报表的保留期。输入的每个SQL Monitor报告DBA_HIST_REPORTS都与AWR关联SNAP_ID请注意,在导出或导入相应的AWR数据时,不会导出或导入SQL Monitor报告。

DBA_HIST_REPORTS_DETAILS

此视图显示有关在AWR中捕获的每个报告的详细信息。每个报告的元数据都显示在DBA_HIST_REPORTS视图中,而实际报告在DBA_HIST_REPORTS_DETAILS视图中可用

V$SQL_MONITOR

该视图包含有关简单和组合数据库操作的全局,高级信息。

对于简单的数据库操作,监视统计信息不会在多个执行中累积。在这种情况下,其中一个条目V$SQL_MONITOR专用于一次执行SQL语句。如果数据库监视同一SQL语句的两次执行,则每个执行在中都有一个单独的条目V$SQL_MONITOR

对于简单的数据库操作,V$SQL_MONITOR对于并行执行协调器进程有一个条目,对于每个并行执行服务器进程有一个条目。每个条目在中都有相应的条目V$SQL_PLAN_MONITOR因为分配给SQL语句的并行执行的过程正在合作为相同的执行,这些条目共享相同的执行键(的组合SQL_IDSQL_EXEC_STARTSQL_EXEC_ID)。

对于复合数据库操作,每一行都包含一个操作,该操作的统计信息是作为操作的一部分在同一会话中运行的SQL语句和PL / SQL子程序上累积的。主键是列DBOP_NAME的组合DBOP_EXEC_ID

V$SQL_MONITOR_SESSTAT

该视图包含数据库操作中涉及的所有会话的统计信息。

大多数统计数据都是累积的。数据库以XML格式存储统计信息,而不是为每个统计信息使用每一列。该视图主要供报表生成器使用。Oracle建议您使用V$SESSTAT而不是V$SQL_MONITOR_SESSTAT

V$SQL_PLAN_MONITOR

该视图包含受监视的SQL语句的执行计划中每个步骤的监视统计信息。

V$SQL_PLAN_MONITOR执行SQL语句时,数据库每秒更新一次统计信息V$SQL_PLAN_MONITOR每个受监视的SQL语句都有多个条目每个条目对应于语句执行计划中的一个步骤。

您可以将前面的V$视图与下面的视图结合使用,以获取有关受监视执行的其他信息:

  • V$ACTIVE_SESSION_HISTORY
  • V$SESSION
  • V$SESSION_LONGOPS
  • V$SQL
  • V$SQL_PLAN

也可以看看:

Oracle数据库参考,以了解V$用于数据库操作监视视图

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

评论