适用于:
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
什么是 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 部分:
SQLHC总体概述
如下是一个对 SQLHC 总体概述的视频资料:
SQLHC 的初衷是通过确保某一个 SQL 的运行环境合理,从而帮助用户规避一些可避免的 SQL 性能问题。
SQLHC 运行时不会在数据库中创建任何对象(“数据库中不留足迹”),确保它可以在所有系统上运行。
当对某一个 SQL_ID 运行 SQLHC 后,该脚本会生成一系列针对该 SQL 语句健康检查的一份 HTML 报告。您可以通过 AWR/ASH 或者查询 V$SQL 得到 SQL 语句的 SQL_ID:
健康检查会在如下方面执行:
- 待分析的单条 SQL 涉及的用户对象的 CBO 统计信息
- CBO 参数
- CBO 系统统计信息
- CBO 数据字典统计信息
- CBO Fixed-objects 统计信息
您可以在如下地址找到 SQL Healthcheck script 的 FAQ:
此外,我们欢迎您提出更多的健康检查建议。
如果您需要一些特殊的健康检查但是在 SQLHC 中没有包含,只要该健康检查可以通过一条 SQL 命令实现(数据库中不留足迹),那么我们可以考虑在今后的版本中实现。
如果有需要补充的内容,请在此文章中添加评论。
最佳实践
主动预防问题和诊断信息收集
尽管一些问题是不可预料的,在很多时候,如果迹象发现及时,这些问题是可以避免的。另外,如果问题真的发生了,事后收集该问题的信息是没有用的。SQLHC 是一种技术支持推荐的收集这些信息的工具。关于使用建议,其他的前提准备和诊断,参考:
Document 1477599.1 Best Practices Around Data Collection For Performance Issues
问题咨询,获取帮助,分享您对此文章的经验
您想和其他 Oracle 客户,Oracle 雇员和行业专家来进一步探讨该主题么?
请点击这里加入讨论,您可以咨询问题,获得其他人的帮助,分享您对这边文章的经验。
点击这里访问 My Oracle Support Community 数据库调优主页来发现对其他文章和主题的讨论
要求
以 SYS, DBA 或者能访问数据字典视图的用户通过 SQL*Plus 连接运行此脚本。
配置
不需要任何配置。
说明
- 登录数据库服务器并且设置数据库实例环境变量
- 下载 "sqlhc.zip" 并解压到一个合适的目录
- 以 SYS, DBA 或者能访问数据字典视图的用户通过 SQL*Plus 连接并执行该脚本,需要输入两个参数
- Oracle Pack License (Tuning, Diagnostics or None) [T|D|N] (required)
如果有 Tuning and Diagnostics licenses 那么输入 T(指 Oracle Tuning pack,包括 Oracle Diagnostics) - 待分析的 SQL 的有效 SQL_ID
- Oracle Pack License (Tuning, Diagnostics or None) [T|D|N] (required)
例如:
SQL> START sqlhc.sql T djkbyr8vkc64h