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

简介: SQL性能健康检查脚本 (SQLHC)(文档 ID 1626277.1) 对于SQLHC(SQL Health Check,SQL性能健康检查脚本)工具,Mos文档1626277.1有非常详细的介绍。

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



对于SQLHCSQL Health CheckSQL性能健康检查脚本)工具,Mos文档1626277.1有非常详细的介绍。SQLHCOracle Server Technologies Center of Expertise开发的一个工具。SQLHC用于检查单条SQL语句运行的环境,包括基于成本的优化器(CBO)的统计数据,用户对象的元数据定义,配置参数和其它可能影响到目标SQL性能的因素。SQLHCSQLT工具一样,本身都是免费的,不需要任何许可证(License)。当对某一个SQL_ID运行SQLHC后,该脚本会生成一系列针对该SQL语句健康检查的一份HTML报告。SQLHC会检查的内容包括:① 待分析的单条SQL涉及的用户对象的CBO统计信息;② CBO参数;③ CBO系统统计信息;④ CBO数据字典统计信息;⑤ CBO固定对象(Fixed-Objects)统计信息。

SQLHC运行时不会在数据库中创建任何对象(“数据库中不留足迹”),它只是对已有的对象提供报告和建议,可以确保它在所有系统上运行。SQLHC的脚本需要以SYSDBA或者能访问数据字典视图的用户通过SQL*Plus连接运行。SQLHC一共包含3个脚本,分别为sqlhc.sqlsqldx.sqlsqlhcxec.sql,其中sqlhc.sql里边会调用sqldx.sql脚本。sqlhcxec.sql是单独执行的,不过该脚本需要输入一个脚本文件作为入参,而且该脚本文件可以包含绑定变量,但是必须要有“/* ^^unique_id */”注释,可以包含其它的Hint,如下所示:

点击(此处)折叠或打开

  1. REM Sample SCRIPT to be used as input to sqltxecute.sql
  2. REM

  3. -- execute sqlt xecute as sh passing script name
  4. -- cd sqlt
  5. -- #sqlplus sh
  6. -- SQL> start run/sqltxecute.sql input/sample/script1.sql

  7. REM Optional ALTER SESSION commands
  8. REM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  9. --ALTER SESSION SET statistics_level = ALL;

  10. REM Optional Binds
  11. REM ~~~~~~~~~~~~~~

  12. VAR b1 NUMBER;
  13. EXEC :b1 := 10;

  14. REM SQL statement to be executed
  15. REM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  16. SELECT /*+ gather_plan_statistics monitor bind_aware */
  17.        /* ^^unique_id */
  18.        s1.channel_id,
  19.        SUM(p.prod_list_price) price
  20.   FROM products p,
  21.        sales s1,
  22.        sales s2
  23.  WHERE s1.cust_id = :b1
  24.    AND s1.prod_id = p.prod_id
  25.    AND s1.time_id = s2.time_id
  26.  GROUP BY
  27.        s1.channel_id;
  28. /
  29. /

  30. REM Notes:
  31. REM 1. SQL must contain token: /* ^^unique_id */
  32. REM 2. Do not replace ^^unique_id with your own tag.
  33. REM 3. SQL may contain CBO Hints, like:
  34. REM /*+ gather_plan_statistics monitor bind_aware */

sqlhcxec . sql:

点击(此处)折叠或打开

  1. REM EXAMPLE
  2. REM # sqlplus / as sysdba
  3. REM SQL> START [path]sqlhcxec.sql [T|D|N] [path]scriptname
  4. REM SQL> START utl/sqlhcxec.sql T input/sample/script1.sql

sqlhc.sql:

点击(此处)折叠或打开

  1. REM PARAMETERS
  2. REM 1. Oracle Pack license (Tuning or Diagnostics or None) T|D|N
  3. REM 2. SQL_ID of interest.
  4. REM
  5. REM EXECUTION
  6. REM 1. Start SQL*Plus connecting as SYS or user with DBA role or
  7. REM user with access to data dictionary views.
  8. REM 2. Execute script sqlhc.sql passing values for parameters.
  9. REM
  10. REM EXAMPLE
  11. REM # sqlplus / as sysdba
  12. REM SQL> START [path]sqlhc.sql [T|D|N] [SQL_ID]
  13. REM SQL> START sqlhc.sql T 51x6yr9ym5hdc








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

 


通过电子邮件发送此文档的链接在新窗口中打开文档可打印页
   



 
 
 
 
 
 
 



>>



SQL Health Check


 

 


  






 



 



 





 
 




  1.  


    1.   
       

    2.  


>


downloadattachmentprocessor?parent=DOCUM

 
 
 
 
 
 
 
 






 

 
通过电子邮件发送此文档的链接在新窗口中打开文档可打印页

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 





SQL Health Check

  

 

 






  •  





  •  



  •  
     



  •  


  • 
      

     













  •   


     


  •  







  •  

      

     
     
  •  

  •  
     









  •  
     
     

 


  •  
     




    •  
    •  

       
    •  

       

  •  

     

  •  

     

     

     


  •  



     



     
  •  
     


  •  

     

  •  

     



     



  •  
  •  

     




  •  



     
  •  

     



 
 
 











     

img_e3029f287d989cd04bd75432ecc1c172.png
DBA笔试面试讲解
欢迎与我联系

目录
相关文章
|
2月前
|
SQL 测试技术 数据库
SQL注入,跨站脚本,跨站请求伪造,傻傻分不清楚
SQL注入,跨站脚本,跨站请求伪造,傻傻分不清楚
|
4月前
|
存储 SQL 关系型数据库
PolarDB这个sql行存和列存性能差别好大 ,为什么?
PolarDB这个sql行存和列存性能差别好大 ,为什么?
33 0
|
4月前
|
SQL 关系型数据库 MySQL
我使用flinkcdc的sql形式进行全量同步,4张表,有两张表数据没进去,看日志,id怎么是null呢?
我使用flinkcdc的sql形式进行全量同步,4张表,有两张表数据没进去,看日志,id怎么是null呢?
117 40
|
5月前
|
SQL 数据库
PowerDesigner导出SQL脚本运行注释出现乱码问题
PowerDesigner导出SQL脚本运行注释出现乱码问题
114 0
|
5月前
|
SQL 关系型数据库 MySQL
MySql数据库中的视图,索引与数据库sql脚本如何导入与导出---(详细介绍)
MySql数据库中的视图,索引与数据库sql脚本如何导入与导出---(详细介绍)
243 0
|
27天前
Cause: java.sql.SQLIntegrityConstraintViolationException: Column ‘id‘ in field list is ambiguous
Cause: java.sql.SQLIntegrityConstraintViolationException: Column ‘id‘ in field list is ambiguous
15 0
|
2月前
|
SQL 开发框架 .NET
ASP.NET Web——GridView完整增删改查示例(全篇幅包含sql脚本)大二结业考试必备技能
ASP.NET Web——GridView完整增删改查示例(全篇幅包含sql脚本)大二结业考试必备技能
33 0
|
3月前
|
SQL 存储 缓存
如何通过优化SQL查询提升数据库性能
SQL查询是数据库的核心功能之一,对于大型数据量的应用程序来说,优化SQL查询可以显著提升数据库的性能。本文将介绍如何通过优化SQL查询语句来提升数据库的性能,包括索引优化、查询语句优化以及其他一些技巧。
|
3月前
|
SQL 监控 关系型数据库
解密SQL性能异常事件及阿里云数据库的性能调优实践
作为开发者想必都知道数据库是现代应用的核心组件之一,而且在当今互联网时代之下,SQL查询的性能直接影响系统的整体性能,它的性能对于系统的稳定性和响应速度至关重要。那么本文就来讨论一下SQL性能异常的排查和优化方法,包括我个人印象深刻的SQL性能异常事件,以及分享一下使用阿里云数据库产品/工具进行SQL性能调优的经验和心得体会。
85 1
解密SQL性能异常事件及阿里云数据库的性能调优实践
|
3月前
|
SQL 数据挖掘 数据处理
「SQL面试题库」 No_101 使用唯一标识码替换员工ID
「SQL面试题库」 No_101 使用唯一标识码替换员工ID