TPT 脚本使用说明
TPT 脚本 TPT scripts in GitHub 使用说明。
有幸在一运营商驻场期间接触了 TPT 脚本,下载地址在: TPT scripts in GitHub ,这里简单记录其使用说明,并借助 ai,将其 help 翻译成了中文,并生成了表格的格式方便查看。
由于此脚本非常庞大,脚本名称缩写有时候不知道是什么含义,其实本脚本提供了一个 help.sql ,可以通过@help进行查看。
使用说明:下载 TPT 脚本
1 | wget https://github.com/tanelpoder/tpt-oracle/archive/master.zip |
解压缩 unzip master.zip 之后会生成 tpt-oracle-master 文件夹,脚本都在此目录下。
可以直接进入 此目录,然后进入sqlplus / as sysdba 就可以直接通过 @ 进行执行了。
也可以通过 export SQLPATH=~/tpt-oracle-master 来指定。这样即使sqlplus 不在 tpt-oracle-master 目录下也可以直接通过 @ 来执行脚本。
使用方法如下:
1 | [oracle@ydora02 ~]$ export SQLPATH=~/tpt-oracle-master |
查看help
1 | SQL> @help kill |
查看 object信息
1 | SQL> @o sys.dba_objects |
查看索引信息
1 | @ind sys.aud$ |
附录:help 翻译(有ai生成,没有经过检验,以英文原版为准),我看了下 help.sql 文本竟然在 3周前更新过,其他脚本大部分是几年前甚至七八年前。

| 脚本名称 | 功能用途 | 使用方法 |
|---|---|---|
| ash_wait_chains.sql | 显示 ASH 等待链(多会话等待特征,一个会话等待另一个会话等) | @ash/ash_wait_chains <分组列> <过滤条件> <开始时间> <结束时间> 示例: @ash/ash_wait_chains username||’-‘||program2 “wait_class=’Application’” sysdate-1/24 sysdate |
| ash_index_helper.sql | 圣诞老人的小索引助手 BETA | @ash/ash_index_helper |
| ashtop.sql | 通过分组 ASH 列显示热点活动 | @ash/ashtop <分组列> <过滤条件> <开始时间> <结束时间> 示例: @ash/ashtop username,sql_opname,event2 1=1 sysdate-1/24 sysdate |
| asqlmon.sql | 报告 SQL 监控风格的执行计划时间消耗钻取分析(基于 ASH) | @ash/asqlmon |
| aw.sql | 显示最近一分钟的数据库活动 | @aw <过滤表达式> 示例: @aw 1=1 |
| awr_sqlid.sql | 从 AWR 显示 SQL 文本 | @awr/awr_sqlid |
| awr_sqlstats.sql | 从 AWR 显示 SQL 统计信息 | @awr/awr_sqlstats |
| awr_sqlstats_per_exec.sql | 从 AWR 显示每次执行的 SQL 统计信息 | @awr/awr_sqlstats_per_exec |
| awr_sqlstats_unstable.sql | 从 AWR 显示不稳定的 SQL 执行计划 | @awr/awr_sqlstats_unstable <分组表达式1> <分组表达式2> <开始时间> <结束时间> 示例: @awr/awr_sqlstats_unstable force_matching_signature plan_hash_value sysdate-7 sysdate |
| bg.sql | 显示后台进程 | @bg <进程名|进程描述> 示例: @bg dbw 或 @bg writer |
| bhobjects.sql | 显示缓冲区缓存中的热点对象 | @bhobjects |
| bhobjects2.sql | 显示缓冲区缓存统计信息 | @bhobjects2 |
| cancel.sql | 生成取消选定 SQL 的命令 | @cancel <过滤表达式> 示例: @cancel sid=150 或 @cancel username=’SYSTEM’ |
| col.sql | 显示列 | @col <列名> 示例: @col open_mode |
| colusage.sql | 显示列使用情况 | @colusage [<所有者>.]<表名> 示例: @colusage soe.orders |
| create_sql_baseline.sql | 从现有的”好”游标创建 SQL 计划基线 | @create_sql_baseline <好的sqlid> <好的计划哈希值> <目标坏的sqlid> 示例: @create_sql_baseline g5tuxh82pk3qf 2966233522 d7khnbh6c9qas |
| create_sql_patch.sql | 创建 SQL 补丁 | @create_sql_patch |
| d.sql | 显示数据字典视图和 x$ 表 | @d <对象名> 示例: @d sql 或 @d % |
| dash_wait_chains.sql | 显示 ASH(基于 DBA_HIST)等待链(多会话等待特征,一个会话等待另一个会话等) | @ash/dash_wait_chains <分组列> <过滤条件> <开始时间> <结束时间> 示例: @ash/dash_wait_chains username||’-‘||program2 “wait_class=’Application’” sysdate-1/24 sysdate |
| dashtop.sql | 通过分组 ASH 列显示热点活动(基于 DBA_HIST) | @ash/dashtop <分组列> <过滤条件> <开始时间> <结束时间> 示例: @ash/dashtop username,sql_opname,event2 1=1 sysdate-1/24 sysdate |
| dasqlmon.sql | 报告 SQL 监控风格的执行计划时间消耗钻取分析(基于 AWR) | @ash/dasqlmon |
| date.sql | 显示当前日期 | @date |
| ddl.sql | 提取指定对象的 DDL 语句 | @ddl [<所有者>.]<对象名> 示例: @ddl sys.dba_users |
| desc.sql | 描述对象 | @desc <对象名> 示例: @desc dba_tables |
| devent_hist.sql | 从 AWR 显示等待次数的直方图(毫秒) | @ash/devent_hist.sql <事件> <过滤表达式> <开始时间> <结束时间> 示例: @ash/devent_hist.sql log_file 1=1 sysdate-1/24 sysdate |
| df.sql | 显示表空间使用情况(GB) | @df |
| dfm.sql | 显示表空间使用情况(MB) | @dfm |
| dirs.sql | 显示数据库目录 | @dirs |
| drop_sql_patch.sql | 删除 SQL 补丁 | @drop_sql_patch <补丁名> 示例: @drop_sql_patch SQL_PATCH_g4pkmrqrgxg3b |
| drop_sql_baseline.sql | 删除 SQL 计划基线 | @drop_sql_baseline |
| ev.sql | 设置会话事件 | @ev <事件> <级别> 示例: @ev 10046 12 |
| event_hist.sql | 从 ASH 显示等待次数的直方图(毫秒) | @ash/event_hist.sql <事件> <过滤表达式> <开始时间> <结束时间> 示例: @ash/event_hist.sql log.file 1=1 sysdate-1/24 sysdate |
| event_hist_micro.sql | 从 ASH 显示等待次数的直方图(微秒) | @ash/event_hist_micro <事件> <过滤表达式> <开始时间> <结束时间> 示例: @ash/event_hist_micro log.file 1=1 sysdate-1/24 sysdate |
| evh.sql | 显示等待次数的直方图 | @evh <事件> 示例: @evh log.file |
| evo.sql | 禁用会话事件 | @evo <事件> 示例: @evo 10046 |
| f.sql | 搜索固定视图(V$ 视图)文本 | @f <文本> 示例: @f sql_shared |
| fix.sql | 显示修复控制描述 | @fix <bug编号|描述|optimizer_feature_enable|sql_feature> 示例: @fix 13836796 或 @fix adaptive |
| grp.sql | 分组函数包装器 | @grp <列名> <表名> 示例: @grp owner dba_tables |
| help.sql | 显示 TPT 脚本帮助 | @help <搜索表达式> 示例: @help explain 或 @help lock|latch.*hold |
| hash.sql | 显示会话中最后一条 SQL 的哈希值、sql_id 和子游标号 | @hash |
| hint.sql | 显示所有可用的提示 | @hint <名称> 示例: @hint full |
| hintclass.sql | 显示所有可用的提示及提示类信息 | @hintclass <提示名> 示例: @hintclass merge |
| hintfeature.sql | 显示所有可用的提示及 SQL 特性信息 | @hintfeature <特性名> 示例: @hintfeature transformation |
| hinth.sql | 显示提示层次结构 | @hinth <提示名> 示例: @hinth merge |
| ind.sql | 显示索引 | @ind [<所有者>.]<索引名|表名> 示例: @ind orders 或 @ind soe.ord_customer_ix |
| indf.sql | 显示基于函数的索引表达式 | @indf [<所有者>.]<索引名|表名> 示例: @indf orders |
| kill.sql | 生成杀死用户会话的命令 | @kill <过滤表达式> 示例: @kill sid=284 或 @kill username=’SYSTEM’ |
| latchprof.sql | 分析热点闩锁持有者(V$ 版本) | @latchprof <分组列> |
| latchprofx.sql | 分析热点闩锁持有者扩展版(X$ 版本) | @latchprofx <分组列> |
| lock.sql | 显示当前锁 | @lock <过滤表达式> 示例: @lock 1=1 或 @lock type=’TM’ |
| log.sql | 显示重做日志布局 | @log |
| long.sql | 显示会话长操作 | @long <过滤表达式> 示例: @long 1=1 或 @long username=’SOE’ |
| ls.sql | 显示表空间 | @ls <表空间名> 示例: @ls system |
| lt.sql | 显示锁类型信息 | @lt <锁名> 示例: @lt TM |
| mem.sql | 显示动态 SGA 组件信息 | @mem |
| memres.sql | 显示最近完成的内存调整操作信息 | @memres |
| nonshared.sql | 从 v$shared_cursor 显示子游标不共享的原因 | @nonshared |
| nls.sql | 显示会话级别的 NLS 参数 | @nls |
| o.sql | 基于对象所有者和名称显示数据库对象 | @o [<所有者>.]<对象名> 示例: @o sys.dba_users |
| oda.sql | 显示 oradebug doc 事件动作 | @oda <动作> 示例: @oda latch |
| oddc.sql | 显示 oradebug doc 组件 | @oddc <组件> 示例: @oddc optimizer |
| oerr.sql | 显示 Oracle 错误描述 | @oerr <错误号> 示例: @oerr 7445 |
| oi.sql | 显示无效对象 | @oi |
| oid.sql | 基于对象 ID 显示数据库对象 | @oid <对象id> 示例: @oid 10 或 @oid 10,20 |
| ostackprofw.sql | 采样 Oracle 进程调用堆栈并显示分析结果(Windows sqlplus) | @ostackprofw |
| ostackprofu.sql | 采样 Oracle 进程调用堆栈并显示分析结果(Unix/Linux/Mac sqlplus) | @ostackprofu |
| otherxml.sql | 从库缓存显示大纲提示 | @otherxml |
| p.sql | 显示参数名称和值 | @p <参数名> 示例: @p optimizer |
| partkeys.sql | 显示表分区键 | @partkeys [<所有者>.]<表名> 示例: @partkeys soe.orders |
| pd.sql | 显示参数名称、描述和值 | @pd <参数描述> 示例: @pd optimizer |
| pga.sql | 显示 PGA 内存使用统计 | @pga |
| pmem.sql | 显示进程内存使用情况 | @pmem |
| proc.sql | 显示函数和过程 | @proc <对象名> <过程名> 示例: @proc dbms_stats table |
| procid.sql | 显示函数和过程 | @procid <对象id> <子程序id> 示例: @procid 13615 84 |
| pv.sql | 基于当前值显示参数 | @pv <值> 示例: @pv MANUAL |
| pvalid.sql | 显示有效的参数值 | @pvalid <参数名> 示例: @pvalid optimizer |
| rowid.sql | 从 rowid 显示文件号、块号、行号 | @rowid |
| s.sql | 显示当前会话等待和 SQL_ID 信息(10g+) | @s |
| sdr.sql | 控制串行直接读取(_serial_direct_read) | @sdr <TRUE|FALSE> 示例: @sdr TRUE |
| se.sql | 显示会话事件 | @se |
| sed.sql | 显示等待事件描述 | @sed <事件> 示例: @sed log_file 或 @sed “enq: TX” |
| seg.sql | 显示段信息 | @seg [<所有者>.]<段名> 示例: @seg soe.customers |
| segcached.sql | 显示段的缓冲块数量 | @segcached [<所有者>.]<对象名> 示例: @segcached soe.orders |
| seq.sql | 显示序列信息 | @seq [<所有者>.]<序列名> 示例: @seq sys.jobseq |
| ses.sql | 显示给定会话的会话统计信息,按统计名称过滤 | @ses |
| ses2.sql | 显示给定会话的会话统计信息,按统计名称过滤并仅显示值 > 0 的统计 | @ses2 |
| settings.sql | 显示 AWR 配置 | @awr/settings |
| sga.sql | 从 v$memory_dynamic_components 显示实例内存使用明细 | @sga |
| sgai.sql | 从 v$sgainfo 显示实例内存使用明细 | @sgai |
| sgares.sql | 从 v$sga_resize_ops 显示最近完成的 SGA 调整操作信息 | @sgares |
| sgastat.sql | 从 v$sgastat 显示 SGA 的详细信息 | @sgastat <名称|池> 示例: @sgastat % 或 @sgastat result |
| sgastatx.sql | 从 X$KSMSS 按子池显示共享池统计 | @sgastatx <统计名> 示例: @sgastatx “free memory” |
| sqlmem.sql | 显示 SQL 语句的共享池内存使用情况 | @sqlmem |
| sqlmemh.sql | 显示 SQL 语句的共享池内存使用情况 | @sqlmemh <哈希值> 示例: @sqlmemh 900835192 |
| sys.sql | 显示系统统计信息 | @sys <统计名> 示例: @sys redo |
| uu.sql | 显示用户会话 | @uu <用户名> 示例: @uu % 或 @uu username |
| us.sql | 从 dba_users 显示数据库用户名 | @us <用户名> 示例: @us username |
| usid.sql | 显示用户会话和进程信息 | @usid |
| sl.sql | 设置统计级别 | @sl <统计级别> 示例: @sl all |
| smem.sql | 显示进程内存使用情况 | @smem |
| sqlbinds.sql | 显示捕获的 SQL 绑定变量值 | @sqlbinds |
| sqlid.sql | 显示 SQL:文本、子游标和执行统计 | @sqlid |
| sqlf.sql | 从内存显示完整的 SQL 文本 | @sqlf |
| sqlfn.sql | 显示 SQL 函数 | @sqlfn <名称> 示例: @sqlfn date |
| sqlmon.sql | 运行 SQL 监控报告 | @sqlmon |
| swc.sql | 从 GV$SESSION 显示当前等待链(多会话等待特征,一个会话等待另一个会话等) | @swc <分组列> <过滤条件> 示例: @swc program2||event2 1=1 |
| syn.sql | 显示同义词信息 | @syn [<所有者>.]<同义词名> 示例: @syn system.tab |
| t.sql | 显示默认跟踪文件 | @t |
| tab.sql | 显示表信息 | @tab [<所有者>.]<表名> 示例: @tab soe.orders |
| tabhist.sql | 显示列直方图 | @tabhist [<所有者>.]<表名> <列名> 示例: @tabhist soe.orders order_mode |
| tabhisthybrid.sql | 显示等值过滤器的混合直方图基数估算 | @tabhisthybrid [<所有者>.]<表名> <列名> 示例: @tabhisthybrid soe.customers account_mgr_id |
| tabpart.sql | 显示表分区 | @tabpart [<所有者>.]<表名> 示例: @tabpart soe.orders |
| tabsubpart | 显示表子分区 | @tabsubpart [<所有者>.]<表名> 示例: @tabsubpart soe.orders |
| ti.sql | 强制生成新的跟踪文件 | @ti |
| tlc.sql | 显示顶级调用名称 | @tlc <调用名> 示例: @tlc commit |
| topseg.sql | 按表空间显示热点空间使用者 | @topseg <表空间名> 示例: @topseg soe |
| topsegstat.sql | 显示热点段级统计信息 | @topsegstat <统计名> 示例: @topsegstat reads |
| trace.sql | 启用跟踪 | @trace <过滤表达式> 示例: @trace sid=123 |
| traceme.sql | 为当前会话启用跟踪 | @traceme |
| traceoff.sql | 禁用跟踪 | @traceoff <过滤表达式> 示例: @traceoff sid=123 |
| trans.sql | 从 v$transaction 显示活动事务 | @trans <过滤表达式> 示例: @trans sid=123 |
| trig.sql | 显示触发器信息 | @trig [<所有者>.]<触发器名> 示例: @trig sys.delete_entries |
| ts.sql | 显示表空间 | @ts <表空间名> 示例: @ts soe |
| uds.sql | 显示撤销统计信息 | @uds |
| wrka.sql | 显示 PGA 和 TEMP 使用情况 | @wrka <过滤表达式> 示例: @wrka 1=1 或 @wrka sid=1000 |
| wrkasum.sql | 按操作类型分组显示 SQL 工作区摘要(PGA 和 TEMP) | @wrkasum <过滤表达式> 示例: @wrkasum sql_id=’7q729nhdgtsqq’ |
| x.sql | 显示最后一条 SQL 语句的执行计划 | @x |
| xa.sql | 显示最后一条 SQL 语句的执行计划 - 别名 | @xa |
| xall.sql | 显示最后一条 SQL 语句的执行计划 - 高级 | @xall |
| xawr.sql | 从 AWR 显示 SQL 执行计划 | @xawr |
| xb.sql | 直接从库缓存解释 SQL 语句的执行计划及执行概要 - 用于当前会话执行的最后一条 SQL | @xb |
| xbi.sql | 直接从库缓存解释 SQL 语句的执行计划及执行概要 - 通过 SQL ID 查找 | @xbi |
| xi.sql | 从库缓存显示 SQL 执行计划 | @xi |
| xia.sql | 从库缓存显示 SQL 执行计划:高级 | @xia |
| xp.sql | 为会话运行 DBMS_SQLTUNE.REPORT_SQL_MONITOR(文本模式) | @xp <会话id> 示例: @xp 47 |
| xprof.sql | 为会话运行 DBMS_SQLTUNE.REPORT_SQL_MONITOR | @xprof <报告级别> <类型> <sql_id|会话id> <sql_id|sid> 示例: @xprof ALL ACTIVE % % |
| xplto.sql | 显示执行计划操作 | @xplto <名称> 示例: @xplto full |
原文作者: liups.com
原文链接: http://liups.com/posts/8189296c/
许可协议: 知识共享署名-非商业性使用 4.0 国际许可协议