zoukankan      html  css  js  c++  java
  • I/O相关的等待事件

    1. 查看Oracle数据库是否存在IO相关的竞争等待有下面三种方法:

    • statpack报告的top 5 wait events或者AWR报告中的top 5 timed events。
    • 数据库等待事件的sql语句跟踪中主要都是IO相关的等待事件的限制。
    • 操作系统工具显示存储数据库文件的存储磁盘有非常高的利用率。

    2. 对于出现IO问题的一些处理方法:

    • 优化sql语句来减少数据库的IO的需求
    • 调整实例的初始化参数来减少数据库的IO需求:一种是通过内存缓存(高速缓存区,日志缓存区以及各种排序区)来减少IO,另一种是调整一次读取多个block的大小,这个设置是由db_file_multiblock_read_count来控制的。
    • 在操作级别上优化IO:如果操作系统支持异步IO,尽量使用异步IO;还可以使用高级文件系统的一些特性,如直接IO读取,忽略掉操作系统的文件缓存,也就是平时所说的使用裸设备;还有一种就是增大每次传输的最大IO大小的限制。
    • 通过使用RAID,SAN,NAS来平衡数据库的IO
    • 手工分配数据文件到不同的文件系统,控制器和物理设备来重新调整数据库的IO

     3. Oracle中最常见的一些IO相关的等待事件:

    数据文件IO相关的等待事件包括:

    • db file sequential read
    • db file scattered read
    • db file parallel read
    • direct path read
    • direct path write
    • direct path read(lob)
    • direct path write(lob)

    控制文件IO相关的等待事件包括:

    • control file parallel write
    • control file sequential read
    • control file single write

    重做日志文件相关IO等待事件包括:

    • log file parallel write
    • log file sync
    • log file sequential read
    • log file single write
    • switch logfile command
    • log file switch completion
    • log file switch (clearing log file)
    • log file switch (checkpoint incomplete)
    • log switch/archive
    • log file switch (archiving needed)

    高速缓存区IO相关等待事件包括:

    • db file parallel write
    • db file single write
    • write complete waits
    • free buffer waits

    4. 查找全表扫描的sql语句:select sql_text from v$sqltext t, v$sql_plan p where t.hash_value=p.hash_value and p.operation='TABLE_ACCESS' and p.options='FULL' order by p.hash_value, t.piece;

    查找Fast Full Index扫描的sql语句可以使用:select sql_text from v$sqltext t, v$sql_plan p where t.hash_value=p.hash_value and p.operation='INDEX' and p.options='FULL SCAN' order by p.hash_value, t.piece;

  • 相关阅读:
    关于js计算非等宽字体宽度的方法
    [NodeJs系列]聊一聊BOM
    Vue.js路由管理器 Vue Router
    vue 实践技巧合集
    微任务、宏任务与Event-Loop
    事件循环(EventLoop)的学习总结
    Cookie、Session和LocalStorage
    MySQL 树形结构 根据指定节点 获取其所在全路径节点序列
    MySQL 树形结构 根据指定节点 获取其所有父节点序列
    MySQL 创建函数报错 This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators
  • 原文地址:https://www.cnblogs.com/PerOpt/p/3737327.html
Copyright © 2011-2022 走看看