一、产品安装
二、Oracle数据库备份与恢复
三、性能诊断、性能调优
四、紧急故障排除和紧急响应服务
五、数据迁移
六、电话支持服务、远程拨号诊断
七、系统健康检查(巡检服务)
八、Oracle数据库安全性、稳定性评估建议报告
九、定制数据库维护手册
十、数据库补丁包服务
十一、培训服务
写mytun这个工具的原因: 多年前,看到用户发来的statspack/awr报告时, 发现sql报告只采集现象和结果, 但并未采集问题的原因相关信息, 还需dba去现场采集很多数据才能定位问题, 即延长了排除故障的时间, 又耗费了人力和财力。 于是多年前自己就写了这个工具来方便自己用, 这样后,自己团队的工作效率大大提高。
评价地址: http://www.itpub.net/viewthread.php?tid=1333917&pid=16220636&page=1&extra=page%3D1
mytun区别于awr
oracle的awr只能看的plan变化,确没采集相关对象(表、列、index)的统计信息 ,及其变化, 所以使plan变化的本质原因并不清晰。
mytun 特色:
mytun 可采集相关对象统计信息的变化,可发现plan变化的原因。mytun是对awr的一个补充, 侧重对sql情况,执行原因的相关数据信息的收集, 为远程的问题诊断提供帮助。
-----------------------mytun生成报表内容-----------------
sql % : 某sql在各类别的排名
sql total : 某sql耗用资源量。
sql per execs : 某sql一次执行的平均消耗
sql的原始文本
sql窥视绑定变量后的sql文本
sql在不同时段的使用不同的计划(plan)
sql在v$sqlarea的情况---sql的执行情况
sql在v$sqlarea_plan_hash(一个sql可能多种计划)---sql在不同计划下的执行情况
sql在dba_hist_sql_plan ----sql的历史计划(一般是 7-30天内的)
sql在wrh$_sqlstat -----在历史时间各时段的执行情况(频次, 计划hash, 效率等)
sql在v$sql_bind_capture ------带入的绑定变量
sql在dba_hist_sqlbind -------历史时段的绑定变量
sql 涉及的对象 :
1. dba_tables --表的分析
2. dba_segments --段的大小,
3. 对象的产生, 修改时间等
4. index 统计分析信息
5. index 中包含的列
6. table的定义
7. table的当前统计分析信息, 历史统计分析信息
8. 列的当前统计分析信息, 历史统计分析信息
9. 列的柱状图信息, 历史柱状图信息。
mytun使用说明
mytun2.0简介: 是一款sql调优工具, 它可快速采集(或远程)sql优化所需的信息, 定位产生错误执行计划的原因,
为远程问题诊断提供新的途径。采集信息包括: plan, 变量值, 分析信息(表/列/索引), 柱状图,
段信息(表/分区/索引),历史执行情况等。
适用范围 : 适用于Oracle10g(10.2.0.1以上)、oracle 11g的各版本及平台。
mytun author : wang yu qiang
support: Mail: xjwyq28@sina.com.cn QQ: 123614791
目录
一. mytun.zip把上传至数据库服务器, 解压后会生成mytun目录和几个文件。
二. 安装软件包(第一次使用前需要安装, 以后使用就不需要了) 。
三. 使用mytun
附件1: 运行mytunrpt.sql提示过程
附件2: 运行mytunrpt.sql报告结果
四. 卸载mytun
一. mytun.zip把上传至数据库服务器, unzip解压后会生成mytun目录和几个文件。
$ unzip mytun.zip
Archive: mytun.zip
creating: mytun/
inflating: mytun/awrinpnm.sql
inflating: mytun/awrinput.sql
inflating: mytun/awrrpti.sql
inflating: mytun/checkmytun.sql
inflating: mytun/mytun.sql
inflating: mytun/mytunrpt.sql
inflating: mytun/p_mytun1.plb
inflating: mytun/p_mytun2.plb
inflating: mytun/running_sql.sql
二. 安装软件包(第一次使用时需要安装, 以后使用就不需要了)
方法1
$cd mytun
$sqlplus "/ as sysdba"
SQL> @p_mytun1.plb
Package created.
SQL> @p_mytun2.plb
Package body created.
方法2
sqlplus "/ as sysdba" @p_mytun1.plb
sqlplus "/ as sysdba" @p_mytun2.plb
三.使用mytun
使用mytun的方式有3种:
方式1: 采集历史时段的数据库性能sql报告
sqlplus "/ as sysdba"
SQL> @mytunrpt.sql;《下面的附件1显示在运行mytunrpt.sql提示过程》
注意: 如果没有 执行(二. 安装软件包 ), 运行mytunrpt.sql时会提醒安装。
note: please first install p_mytun1.plb in another session, method: sqlplus "sys/change_on_install as sysdba" @p_mytun1.plb
note: please second install p_mytun2.plb in another session, method: sqlplus "sys/change_on_install as sysdba" @p_mytun2.plb
方式2: 采集正在运行的sql报告
sqlplus "/ as sysdba"
SQL> @running_sql.sql;
方式3:根据一个SQL的sql_id直接查询。 会生成一个clob的报告。
3.1 在工具(PL/SQL Developer等工具)中, 查询会生成一个clob的报告。
select mytun.mysql( (select dbid from v$database),
(select instance_number from v$instance),
'056j4snsvphk5' , --sql_id
100)
from dual;
100: 每个查询子集返回的行数, 建议值100
3.2 在工具(sqlplus 环境中)中, 把结果输出到文件中。
sqlplus "/ as sysdba"
set long 999999999
set heading off
set pages 40000
set feedback off
set echo off
SET LONGCHUNKSIZE 500
set linesize 500
SET LOBOFFSET 1
spool /xxx/xxx/a.txt;
select mytun.mysql( (select dbid from v$database),
(select instance_number from v$instance),
'056j4snsvphk5' , --sql_id
100)
from dual;
spool off;
四. 卸载mytun
$ sqlplus "/ as sysdba"
SQL> drop package mytun;
Package dropped.
[@more@]