本教程介绍如何使用 Enterprise Manager (EM) Database (DB) Console 监视 SQL 语句。
大约 30 分钟
本教程讨论以下主题:
| 概述 | ||
| 前提条件 | ||
| 设置长时间运行的语句 | ||
| 查看监视的 SQL 执行情况 | ||
| 查看监视的 SQL 执行详情 | ||
| 查看其他页面:Report、Session 和 SQL | ||
| 清理 | ||
| 总结 | ||
将光标置于此图标上可以加载和查看本教程的所有屏幕截图。(警告:因为此操作会同时加载所有屏幕截图,所以网速较慢时,响应时间可能会比较长。)
注:此外,您还可以在下列步骤中将光标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。可以通过单击各个屏幕截图将其隐藏。
在 Oracle 数据库 11gR2 中,SQL 监视特性有一个新的图形界面。该图形界面不仅可用于 Grid Control,还可用于 EM DB Control。默认情况下,当某个 SQL 命令并行运行时,或者当单次执行已使用至少五秒 CPU 或 I/O 时间时,会自动启动 SQL 监视。
启动监视后,在 V$SQL_MONITOR 动态性能视图中会添加一个条目。该条目跟踪为该次执行收集到的关键性能指标,包括已用时间、CPU 时间、读写次数、I/O 等待时间及各种其他等待时间。随着命令的执行,这些统计信息以近似实时的方式进行刷新,一般每秒刷新一次。
执行完毕后,监视信息不会立即删除,而是在 V$SQL_MONITOR 视图中保存至少一分钟的时间。最终,当系统要监视新的命令时,会删除该条目以便可收回其占用的空间。
开始学习本教程之前,您应该先完成以下步骤:
| 1. | 确保 EM DB Console 已启动并且可通过 Web 浏览器访问。您可在一个终端窗口中,以 oracle 操作系统用户身份输入以下命令:emctl status dbconsole
请记下主机名和端口。稍后会用到。 |
|
| 2. | 下载 sqlmonitor.zip 文件(其中包含了完成本教程所需文件)并将其解压缩到您的工作目录。 |
|
在本教程中,我们需要创建 MONI_TBS 表空间 (100 MB)、MONI DBA 用户和 MONI_TEST 表。
注:在本练习中,为了专注于练习的目标而不会分神,我们使用简单易记的口令。在实际开发和生产环境中,请按照 Oracle 数据库安全指南 中的指示使用强口令。本练习中,SYS 用户的口令为 oracle,MONI 用户的口令为 moni。
执行以下步骤:
| 1. | 转到您的工作目录。打开 SQL*Plus。以 sys 用户身份登录,然后执行 moni_setup.sql 脚本。 sqlplus / as sysdba @moni_setup
在此 SELECT 语句运行的同时继续进行本教程其余部分。 |
|
注:您的时间可能与这些屏幕截图的时间不同。
要通过 EM DB Control 界面查看长时间运行的 SQL 语句,执行以下步骤:
| 1. | 启动 Web 浏览器,按以下格式输入 URL:
在 Oracle 的课堂环境中,您也许会收到一个有关网站证书的安全警告,发出该警告是由于为您提供了一个新安装的服务器。请接受该证书(如果可能,请永久接受),如果系统询问的话,将其添加到您的例外网站中。实际出现的消息(及窗口的数量)取决于您使用的浏览器。 |
| 2. | 在 Database Login 页面上,在 User Name 域中输入 SYS,在 Password 域中输入自己的口令,从 Connect As 下拉列表中选择 SYSDBA,然后单击 Login。
|
| 3. | 要查看长时间运行的 SQL 语句,执行以下步骤: a. 单击 Performance 选项卡式页面。
b. 您将看到系统活动。您的图形将略有不同。
c. 滚动到该页面底部,单击 Additional Monitoring Links 部分中的 SQL Monitoring。
d. 显示 Monitored SQL Executions 页面。
|
要查看有关 SQL 执行的详细信息,执行以下步骤:
| 1. | 在 Monitored SQL Execution 页面上,单击 SQL ID 链接。
|
| 2. | 显示 Monitored SQL Execution Details 页面。
在页面上部,您会看到 Overview 信息。在右上视图中,可看到 IO and Wait Statistics 信息。
|
| 3. | Details 部分至少有两个选项卡式页面:Plan Statistics 和 Activity。如果并行执行多个查询,还会有一个 Parallel 选项卡式页面。
在右侧,您会看到 Plan Statistics 页面的更多详情。
|
| 4. | 单击 Activity 选项卡式页面。
在此图中,可以看到 SELECT 语句当前占用了全部的 CPU 资源。
|
要查看其他监视信息,执行以下步骤:
| 1. | 在 Monitored SQL Execution Details 页面中,单击右上方的 View Report。
|
| 2. | 将显示 SQL Monitoring Report 页面,所包括信息与您在前面的图形页面上看到信息相同。向下滚动。
|
| 3. | 在页面底部可以看到 SQL Plan Monitoring Details。单击 OK。
|
| 4. | 在 Monitored SQL Execution 页面,单击 Session 链接以显示当前用户的会话信息。
|
| 5. | 查看会话信息
这里有几个选项卡页面。查看完会话信息后,单击右侧的 SQL Monitoring 选项卡页面。
|
| 6. | 单击 SQL ID 返回 Monitored SQL Execution Details 页面。
|
| 7. | 要查看 SQL 详情,在 Monitored SQL Execution Details 页面上单击 SQL ID。
|
| 8. | 查看 SQL 详情。
完成后,单击页面右上方的 Logout。 |
要清理您的环境,执行以下步骤:
| 1. | 当您的长时间运行的查询执行完毕之后,返回到您的 SQL*Plus 会话。作为 SYSDBA 进行连接,然后执行 moni_cleanup.sql 脚本: connect / as sydba @moni_cleanup
|
在本教程中,您学习了如何使用 EM DB Control 实时查看 SQL 语句的执行情况。
将鼠标移到该图标上可以隐藏所有屏幕截图