zoukankan      html  css  js  c++  java
  • Toad 补充与培训 & 常用菜单

    Toad 常用菜单

    新版本 toad 软件中, 比较有用的菜单 (toad10.6 版本)

    下边菜单, 在日常工作中出现过的, 显示为 粉色 , 蓝色 表示次一级的重要

    session 菜单 new session, end session, session Information, DBMS flashback

       Session Information: 显示当前session的用户的情况, 比如权限, 授权等
    Database 菜单 (很多功能都是重复的)    

      administrator:         审计, 参数, redo, tablespace , prameters 等, 这里关于 redo 的内容十分好用.    

      monitor:  监控 可以与statspack 联系使用.               

        ~ database browser : database 的全部内容, 包括参数, 表空间, 数据文件等        

        ~ database monitor : 动态监视, 包括 logical I/O, session, sga, physical IO, call rates, shared pool, waitevent 等等.  (实时, 可能不用)   

               ~ database probe : 也是用来实时监控系统运行情况  (实时, 不用)  

                  注: database monitor, database probe 都是实时监控系统运行, 本身也很耗费资源, 个人感觉还是用快照的方式, 然后生成report, 分析report 比较好一定, 毕竟谁也不能在pc前一动不动的实时监测. 就算是临时发现了问题, 也可以用快速的两次快照, 找到问题的原因.

        ~ server statistics: 数据库运行的统计信息, waits, latches, sessions 等等    

               ~ Index Monitoring : 监控索引的使用情况    

        ~ session browser  : 可以用来 kill session, 另外还有针对 session 的 wait event 等.        

        ~ SGA Trace        : 针对 SGA 的使用情况, 详细列出了所有的 sql list.        

               ~ statspack Browser : statspack 的信息浏览

        ~ SQL Tracker      : 打开这个, 你在toad中的所有操作, 都会有对应的SQL语句被输出.

               ~ top session finder : 最耗费资源的 session   

      diagnose:      

               ~ Alert log viewer: 查看 alert file 日志

               ~ CodeXpert : 看来只针对 pl/sql, 加载进来一个对象(procedure, function, package, trigger, view), 进行优化(自动).

               ~ Extents : 可以看到每个对象(例如 table)的存储情况.

               ~ DB Health Check: DB健康检查, 默认是所有项目都要运行, 运行需要很多时间.

               ~ Identify Space Deficits: 查看赤字的存储空间.

               ~ Log Miner : 可以查看到日志文件中, redo log file 的具体 SQL 语句.

               ~ Log switch Frequency Map: 可以查看发生 Log switch 的时间点, 根据这个时间间隔判断 redo log file 大小是否合适 (如果redo log file 大小不合适, 因为redo log 是循环工作, 很有可能发生等待)

               ~ Tablespace Map: 可以看到每个 block 存储哪些内容.

      optimize:         

        ~ analyze all objects : 类似 SYS.DBMS_STATS.GATHER_TABLE_STATS 的作用.

               ~ Estimate Index Size : 估计索引所占存储空间大小.

               ~ Estimate Table Size : 估计table所占存储空间大小.

        ~ Explain plan        : 执行计划, 一般是先选择一个SQL语句, 然后点工具栏上的小救护车(其实就是这项), 就可以只执行plan.        

        ~ Optimize Current SQL: 输入一个SQL语句, 然后运行, 会出现 Explain Plan 和 Execution Statistics.        

               ~ Pinned Code : 可以查看共享池 shared pool 中的对象(主要是 procedure, function, package, sequence). 貌似用处不大

               ~ Rebuild Multiple Objects : 重建对象, 比如重建索引, 重建表 等.        

        ~ Rebulid table       : 重建表, 很详细的设置


     

    补充

    knowledge xpert for pl/sql (有专题, 例如 best practice)

    CodeXpert (在pl/sql编辑版的下半部分) 可以对pl/sql语句进行有效的优化提示

    培训

    1. 系统监控用户设置 

    做系统级的监控只能用 sys 和 system 用户, 在 toad 中使用 sys 要将中间部分的 sysdba, 用system用户, 中间部分选择 normal. sys 用户只能用来做管理, system本质上是一个普通用户, 被赋予了管理权限.

    2. 创建新的连接方式

    在 toad 登陆接界面, 点中下部的 TNSNames Editor 按钮, 在弹出的窗口的上边工具栏找到 Add Service按钮, 根据提示, 添加新的连接

    注: 虽然手动在 tnsnames.ora中添加也是可以的, 但是用这种方式添加更加稳妥, 添加完后, 你会看到添加后的代码.

    3. 使用 toad 紧急恢复数据(闪回)

    用例: 在10分钟前(注意这个时间, 因为闪回技术主要依赖于在undo表空间里的数据镜像, undo表空间里的数据如果想不被覆盖, 是有一个时间限制的, 有个参数, 一般是15分钟, 所以这个用例使用的是10分钟前, 如果是1年前, 那么你还想闪回么?) 某操作员不小心对表t的某列做了修改, 现在如何恢复10分钟前的数据

    解答:

    如果未提交, 则直接 rollback, 如果已经提交了, 则按下面步骤进行恢复

    (1) create table t_temp as select * from t as of timestamp sysdate – 1/144;   -- 创建一个临时表, 保存了包含10分钟前被修改前的数据

    (2) select * from t-1/144;   -- 这个没看出来有什么用, 个人感觉应该是 select * from t_temp 确认是否包括需要返回的数据

    (3) merge into t as t using t_temp as tt on (t.primarykey = tt.primarykey) when matched then update set t.name = tt.name

    4. Excel 文件导出

    Excel File 与 Excel Instance 不同, 用 Excel File 导出时, 不同的查询结果都导出到不同的Excel文件中, 而 Excel Instance 导出时, 不同查询结果会导出到同一个 Excel 中的不同页签.

    若导出的数据要导入到不同类型的数据库, 则需要再下拉框中选中 Insert Statement, (在想选择excel的地方), 这里注意, 如下图:

    imageimage

    5. 使用 toad 监控会话实时情况

    查看最耗用资源的session ( database->monitor->Top Session Finder 路径可能不同, 不过 Top Session Finder 找这个就可以了 ), 点执行(播放按钮)

    单击饼状图, 会出现session信息, 这些信息里比较重要的是( sid, oracle user, os user, machine )

    根据 sid, 在 Editor 窗口中输入: select * from v$session where sid = ‘3232’ 执行, ( 这个sid就是刚刚查出来的那个sid), 通过这里, 可以查看这个session是什么时间登陆的, 如果登陆了很久, 那很可能是死进程, 这里也可以查到 process(进程号), ps-ef|grep 1232 查看该进程

    6. 使用 toad 监控索引

    database->monitor->index monitoring(路径可能不一样)

    补充: 索引的特点是, 方便数据查询, 不方便数据更新, 因此, 索引不能随便建.

    经验: 一个索引若三个月没有用到, 就可以删除.

    这里的监控索引, 主要是看索引是否被使用.

    7. 使用 toad 查看sql执行计划

    将要执行的sql粘贴到 sql editor中, 然后点工具栏中的小救护车图标, 注意: 不用执行 sql, 只需要执行计划.

    执行计划中的 table access Full 要关注 ( 全表扫描 )

    cost 值越大表示耗用资源越多

    还要关注最上层的 Cost 值, 在这里有个经验, 以 10000 为界限, 超过 10000 就要予以关注

    oracle规则是: 当查询出的数据占记录数的 60% 的时候就不会走索引.

    8. 使用 toad 查看各个对象

    在 schema browser 中查看.

    表空间, 应该关注的是表空间的使用率, 这里也有一个经验值, 当表空间超过 80% 的时候就应该予以关注.

    9. 使用 toad 数据库健康检查

    database->diagnose->DB Health Check( 路径可能不对 )

    10. 使用 toad 对比表结构

    database->compare->schemas ( 路径可能不对 )

    这个可能很有用, 比如你想重新建立一个数据库而使用以前的数据库时, 可以使用这个功能将原数据库的结构导出来, 再用exp之类的将数据导入.

    另外, 可以在页签中使用同步脚本, 点开各个对象后, 可以看到详细脚本

    imageimage

    imageimage

    image

    11. toad 秘密

    如何知道 toad 在执行某项操作时, 执行了哪些 sql 语句

    (1) 打开相应工具

    image

    也可以用以下方法打开工具:

    image

    (2) 选中 toad

    image

    (3) 执行某项操作

    在上图的工具中, 就会显示刚刚执行的操作的后台的sql语句

    image

  • 相关阅读:
    前端性能优化
    CSS实现文字在容器中对齐方式
    spring里面的context:component-scan
    Builder模式
    idea无法新建maven项目
    Java-位运算
    pg数据库数据表异常挂起
    Java-多线程与单例
    Java-数据结构之二叉树练习
    Java-JNA使用心得
  • 原文地址:https://www.cnblogs.com/moveofgod/p/3798859.html
Copyright © 2011-2022 走看看