`

Oracle SQL 调优健康检查脚本

 
阅读更多

我们关注数据库系统的性能,进行数据库调优的主要工作就是进行SQL的优化。良好的数据架构设计、配合应用系统中间件和写一手漂亮的SQL,是未来系统上线后不出现致命性能问题的有力保证。

 

CBO时代,一个SQL的执行计划是多样的。影响执行计划的因素也从过去RBO时代的SQL书写规则变为综合性因素。这为我们生成更加优秀执行计划提供了基础,同时也给我们进行调优带来的很多麻烦。

 

目前我们通常的做法,是通过AWR报告或者调试手段,发现某某SQL有问题,之后从Library Cache(或者AWR)中抽取出执行计划。同时相对应的各种统计信息也需要手工收集。

 

MOS[ID 1366133.1]中,发现一个Oracle非公开使用的脚本,可以帮助我们一次性的将执行SQL相关的健康信息全部收集,并且输出为HTML格式文件。本篇就介绍这个脚本工具,也当作是一种推广。

 

1、环境准备

 

我们选择Oracle 10g作为实验环境。

 

 

SQL> select * from v$version;

 

BANNER

----------------------------------------------------------------

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod

PL/SQL Release 10.2.0.1.0 - Production

CORE   10.2.0.1.0 Production

TNS for 32-bit Windows: Version 10.2.0.1.0 - Production

NLSRTL Version 10.2.0.1.0Production

 

 

构造一个实验SQL,用来进行演示。

 

 

SQL> select /*+ demo */ emp.empno, emp.ename, dept.dname

 2 from emp, dept

 3 where emp.deptno=dept.deptno;

 

EMPNO ENAME     DNAME

----- ---------- --------------

 7369 SMITH     RESEARCH

7934 MILLER    ACCOUNTING

(篇幅原因,结果集合省略……

 

--此时,该SQL已经存在于Library Cache中;

SQL> select sql_id from v$sqlarea where sql_text like 'select /*+ demo */%';

 

SQL_ID

-------------

auurp0v54vjgc

 

 

 

2、调用脚本

 

我们从网站上可以下载到生成脚本sqlhc.sql(SQL Tuning Health-Check Script. [ID 1366133.1])。之后在sqlplus里调用。

 

 

D:\test>sqlplus /nolog

 

SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 12月 28 22:10:18 2011

 

Copyright (c) 1982, 2005, Oracle. All rights reserved.

 

SQL> conn sys/Conan2002@orcl as sysdba

已连接。

SQL> @sqlhc.sql

 

--许可证拥有标识;

Parameter 1:

Oracle Pack license (Tuning or Diagnostics) [Y|N] (required)

 

输入1 的值: N

 

PL/SQL 过程已成功完成。

 

--进行检查的SQL_ID编号;

Parameter 2:

SQL_ID of the SQL to be analyzed (required)

 

输入2 的值: auurp0v54vjgc

 

 

之后就是生成html格式报告的过程,最后会以生成文件名称的方式通知。

 

 

SQLTH file has been created:

sqlhc_orcl_ibmvs2a1bhcns0_10.2.0.1.0_auurp0v54vjgc_20111228221121.html.

Review this file and act upon its content.

 

SQL>

 

 

这样在指定目录下,我们就可以找到生成的html格式报告文件。

 

 

D:\test>dir

 驱动器 D 中的卷没有标签。

 卷的序列号是 CA23-1191

 

 D:\test 的目录

 

2011-12-28 22:11   <DIR>         .

2011-12-28 22:11   <DIR>         ..

2011-12-28 22:11          101,335 sqlhc.log

2011-12-28 21:49          109,841 sqlhc.sql

2011-12-28 22:11           10,140 sqlhc_orcl_ibmvs2a1bhcns0_10.2.0.1.0_auurp0v

54vjgc_20111228221121.html

              3 个文件       221,316 字节

2 个目录 2,439,000,064 可用字节

 

 

3、结果报告分析

 

在报告中,主要分为三个部分。

 

首先,后台环境参数设置。其中包括该SQL设计使用的优化器和相关的数据表统计量选取基准。

 

 

 

其次就是相关设计数据表、索引的统计量信息。

 

 

 

最后是使用的执行计划信息。

 

 

 

4、结论

 

使用SQL Tuning Heath-Check脚本,可以帮助我们方便的将相关SQL的执行计划和统计信息一并抽出。作为我们进行性能调试的依据。

 

但是,笔者强调的是,作为调优人员,对基础知识、原理的理解是非常重要的。工具、脚本只是帮助我们日常效率提升的一个手段而已。

 

分享到:
评论

相关推荐

    oracle数据库健康检查及调优脚本

    参加oracle原厂培训,老师给的,很好用,介绍给大家 Produces an HTML report with a list of observations based on health-checks performed in and around a SQL statement that may be performing poorly. ...

    oracle监测脚本集.tar.gz

    3. **数据库健康检查**:检查数据库的状态,如表空间使用情况、数据文件状态、回滚段状态等,确保数据库的正常运行。 4. **异常报警**:当特定的性能指标超过预设阈值时,脚本可以触发警报,提醒DBA及时处理。 5. **...

    oracle常用监控脚本

    集成的脚本可以进行全面的健康检查,检测数据库配置、性能指标和潜在风险。 在使用这些脚本时,DBA需要根据实际环境和需求进行定制和调整,确保监控内容的针对性和实用性。同时,定期分析监控结果,建立基线,对比...

    ORACLE日常监控与性能问题处理脚本

    5. **数据库健康检查**:这类脚本会定期运行,检查数据库的整体健康状况,比如检查数据文件一致性、检查表和索引的碎片情况、验证备份完整性等。 6. **性能调优**:一旦发现问题,脚本也可以用来执行性能调优,比如...

    Nacos oracle专用

    - **健康检查**:启动Nacos后,通过Nacos的Web管理界面或API接口,可以检查Nacos是否成功连接到Oracle数据库,以及服务是否正常运行。 - **性能调优**:根据实际负载情况,可能需要调整Oracle数据库的参数,如连接...

    sqlhc.zip脚本

    "sqlhc.zip脚本"是一个专门针对Oracle数据库健康检查的工具,它可以帮助管理员监控和诊断SQL查询的性能问题。以下是关于这个脚本包及其包含的文件的详细解释。 首先,`sqlhc.sql` 是主脚本,它的主要功能是执行SQL ...

    Oracle巡检脚本.pdf

    Oracle巡检脚本是一系列预先编写好的脚本程序,其目的在于自动化执行一系列检查任务,用以评估Oracle数据库及其运行环境的状态。该巡检脚本内容十分丰富,涵盖了操作系统检查、Oracle数据库检查、以及一些特定的功能...

    SQL Optimizer for Oracle - Basic.ppt

    而后者则以自动化、批量分析为特点,降低了优化成本,适用于现有数据库对象的健康检查和大量SQL语句的扫描。 在开发阶段的优化流程中,开发人员应该在编写SQL时就考虑性能因素。通过TOAD编辑SQL,然后利用SQL ...

    Oracle实用运维脚本

    5. 数据库健康检查:综合评估数据库的整体健康状况。 二、性能调优脚本 性能调优脚本用于优化数据库性能,提高查询速度,降低资源消耗: 1. SQL性能分析:找出执行时间长、资源消耗大的SQL语句,进行优化。 2. 表...

    oracle健康检查巡检与日常维护

    Oracle数据库是全球广泛使用的大型企业级关系型数据库系统,对于其健康检查和日常维护的理解与实践至关重要。健康检查(巡检)确保了数据库的稳定运行,而日常维护则关乎数据的安全性和性能优化。以下是对这两个方面...

    ORACLE DBA常用脚本

    RMAN(Recovery Manager)是Oracle提供的强大备份与恢复工具,上述脚本可用于检查归档日志状态,删除过期日志,确保备份环境的健康与高效。 综上所述,这些脚本覆盖了Oracle DBA日常管理中的多个关键领域,包括但不...

    oracle重要脚本

    8. **故障诊断脚本**(如`check_db_health.sql`):用于检查数据库的健康状况,例如检查表空间状态、检查无效的对象、监控数据库警告和错误日志等。 9. **数据装载脚本**(如`load_data.csv`):用于将大量数据从...

    oracle_manage_sql.rar_oracle

    这些脚本可能包括创建和删除用户、权限分配、表空间管理、性能调优等操作。 总的来说,有效管理和维护Oracle数据库需要对SQL有深入的理解,包括查询、操作会话、监控锁以及处理异常情况。通过掌握这些技能,数据库...

    ORACLE-DBA常用脚本.ppt

    - 索引用于加速查询,但需要定期检查其健康状况。可以通过脚本获取特定用户下的索引信息,展示索引名称、表名、唯一性等属性。 - 索引碎片可能降低查询效率。通过检查索引碎片,可以识别需要重组或重建的索引,...

    Oracle常用数据字典说明及常用脚本

    Oracle数据库是世界上广泛使用的商业关系型数据库管理系统之一,它提供了丰富的数据字典视图以及动态...这些脚本和视图的使用有助于DBA及时诊断和解决数据库的性能问题,是维护Oracle数据库健康和稳定运行的关键工具。

    数据库巡检脚本及操作手册.zip_oracle_oracle巡检_oracle数据库巡检文档_oracle运维_巡检

    "Oracle_DB_Check.sql"是一个可能包含各种SQL查询的巡检脚本,用于检查数据库的状态、配置、指标和日志等信息。通过执行这个脚本,运维人员可以获取数据库的关键信息,以便进行分析和调整。 1. **性能监控**:巡检...

    Oracle性能优化求生指南

    - **案例三:自动化性能调整流程**:提出了一套自动化的性能优化方案,包括定期执行健康检查脚本、动态调整参数值等措施,以实现持续监控与自我修复机制。 #### 五、总结 《Oracle性能优化求生指南》不仅涵盖了...

    toad for oracle

    - **DBA Module**:数据库管理员模块,提供数据库监控、健康检查、实例管理等日常DBA任务功能。 - **Database Monitor**:数据库监控器,提供实时的数据库活动监控。 - **Database Probe**:数据库探测器,用于深...

    oracle 数据库日常巡检

    12. **数据库健康检查**:运行Oracle提供的健康检查脚本,如`utlrp.sql`(刷新PL/SQL编译缓存),确保所有对象都正确编译。 13. **数据库预警机制**:建立数据库警告系统,当出现异常时自动通知DBA,如使用`Alert ...

Global site tag (gtag.js) - Google Analytics