SQL 性能健康检查脚本 (SQLHC) (文档 ID 1626277.1)

适用于:

Oracle Database - Enterprise Edition - 版本 10.2.0.1 和更高版本
Oracle Database Products > Oracle Database Suite > Oracle Database
Oracle Database - Standard Edition - 版本 10.2.0.1 和更高版本
Oracle Database - Personal Edition - 版本 10.2.0.1 和更高版本
本文档所含信息适用于所有平台

用途

下载 SQL Tuning Health-Check Script

在这里下载 SQLHC Script

 

什么是 SQL Tuning Health-Check Script? (SQLHC)

SQL Tuning Health-Check Script 是 Oracle Server Technologies Center of Expertise 开发的一个工具。该工具也被称为 SQLHC,用于检查单条 SQL 语句运行的环境,包括基于成本的优化器(CBO)的统计数据,用户对象的元数据定义,配置参数和其他可能影响到待分析 SQL 性能的因素。

Licensing (SQLHC本身是免费的,不需要任何license)

就像上面提到的,SQLHC本身是免费的,不需要任何license. 
如果Diagnostic或者Tuning pack已经安装了, SQLHC会收集AWR中的信息,因此它会询问是否Diagnostic或者Tuning pack已经获得了license. 关于更详细的信息,请参照SQLHC FAQ的 licensing 部分:

Document 1454160.1 FAQ: SQL Health Check (SQLHC) Frequently Asked Questions

 

SQLHC总体概述

如下是一个对 SQLHC 总体概述的视频资料:

Document 1455583.1 SQL Tuning Health-Check Script (SQLHC) Video


SQLHC 的初衷是通过确保某一个 SQL 的运行环境合理,从而帮助用户规避一些可避免的 SQL 性能问题。

SQLHC 运行时不会在数据库中创建任何对象(“数据库中不留足迹”),确保它可以在所有系统上运行。

当对某一个 SQL_ID 运行 SQLHC 后,该脚本会生成一系列针对该 SQL 语句健康检查的一份 HTML 报告。您可以通过 AWR/ASH 或者查询 V$SQL 得到 SQL 语句的 SQL_ID:

Document 1627387.1 How to Determine the SQL_ID for a SQL Statement

健康检查会在如下方面执行:

  • 待分析的单条 SQL 涉及的用户对象的 CBO 统计信息
  • CBO 参数
  • CBO 系统统计信息
  • CBO 数据字典统计信息
  • CBO Fixed-objects 统计信息
注意:您可以在如下地址找到一篇题为"How to Improve SQL Performance with the New Health Check Tool?"的视频录像,以及一些其他的视频录像:

Document 740964.1 Advisor Webcast Archived Recordings

您可以在如下地址找到 SQL Healthcheck script 的 FAQ:

Document 1417774.1 FAQ: SQLHC HealthCheck Frequently Asked Questions

此外,我们欢迎您提出更多的健康检查建议。
如果您需要一些特殊的健康检查但是在 SQLHC 中没有包含,只要该健康检查可以通过一条 SQL 命令实现(数据库中不留足迹),那么我们可以考虑在今后的版本中实现。

如果有需要补充的内容,请在此文章中添加评论。

 

最佳实践

主动预防问题和诊断信息收集

尽管一些问题是不可预料的,在很多时候,如果迹象发现及时,这些问题是可以避免的。另外,如果问题真的发生了,事后收集该问题的信息是没有用的。SQLHC 是一种技术支持推荐的收集这些信息的工具。关于使用建议,其他的前提准备和诊断,参考:

Document 1482811.1 Best Practices: Proactively Avoiding Database and Query Performance Issues
Document 1477599.1 Best Practices Around Data Collection For Performance Issues

问题咨询,获取帮助,分享您对此文章的经验

您想和其他 Oracle 客户,Oracle 雇员和行业专家来进一步探讨该主题么?

请点击这里加入讨论,您可以咨询问题,获得其他人的帮助,分享您对这边文章的经验。
点击这里访问 My Oracle Support Community 数据库调优主页来发现对其他文章和主题的讨论

要求

以 SYS, DBA 或者能访问数据字典视图的用户通过 SQL*Plus 连接运行此脚本。

注意:该脚本不会在数据库中创建任何对象,它只是对已有的对象提供报告和建议。

配置

不需要任何配置。

说明

  1. 登录数据库服务器并且设置数据库实例环境变量
  2. 下载 "sqlhc.zip" 并解压到一个合适的目录
  3. 以 SYS, DBA 或者能访问数据字典视图的用户通过 SQL*Plus 连接并执行该脚本,需要输入两个参数

    1. Oracle Pack License (Tuning, Diagnostics or None) [T|D|N] (required)
      如果有 Tuning and Diagnostics licenses 那么输入 T(指 Oracle Tuning pack,包括 Oracle Diagnostics)

    2. 待分析的 SQL 的有效 SQL_ID 

例如:

# sqlplus / as sysdba
SQL> START sqlhc.sql T djkbyr8vkc64h

 

警告

此示例代码只为教育目的,Oracle Support不提供技术支持。它已经过内部测试,然而我们无法确保它在任何环境中都能成功使用。请您在使用之前先在测试环境中运行。

SCRIPT

在这里下载 SQLHC Script。

示例输出

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值