百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

如何查看Oracle数据库物理读、逻辑读前10的sql?

sinye56 2024-09-16 14:34 4 浏览 0 评论

概述

今天主要介绍几个sql,可能很多人就收藏一下但很少会去用,所以结合案例来做一下分析,这样就知道在什么场景用了。

下面介绍一下案例。


1、监控分析

从监控发现物理IO读处于比较高的水平,截图如下:物理读基本保持在几十M,物理写很少。

2、观察AWR报告

这里拿了对应的awr报告,简单看下逻辑读和物理读情况。

从这个截图我们只计算下逻辑读和物理读:

1.逻辑读大小:56222*8192/1024/1024=439M/s

2.物理读大小:7173*8192/1024/1024=56M/s

假设这里物理读将近逻辑读一半,因为在一般系统中很难得到这个比例,那就证明物理读过高了,这里因为不是高峰期,所以不怎么看得出来。

下面看下具体的sql情况。


逻辑读前10的sql

SELECT *
 FROM (SELECT sql_fulltext AS sql,
 SQL_ID,
 buffer_gets / executions AS "Gets/Exec",
 buffer_gets,
 executions,
 cpu_time,
 elapsed_time,
 last_active_time,
 module
 FROM V$SQLAREA
 WHERE buffer_gets > 10000
 and executions > 0
 ORDER BY "Gets/Exec" DESC)
 WHERE rownum <= 10;

个别参数说明:

SQL_FULLTEXT //CLOB类型 整个sql文本,不用借助于V$SQL_TEXT视图来查看整个文本
SQL_ID //库缓存中的SQL父游标的标志
FETCHES // sql取数据的次数
EXECUTIONS //自从被载入共享池后,sql执行的次数 
CPU_TIME //该子游标解析,执行和获取数据使用的CPU时间,毫秒
ELAPSED_TIME //sql的执行时间,毫秒
v$sqlarea的字段定义和v$sql基本一致,不同的是V$SQLAREA是在父游标级别上统计的sql信息,v$sql的汇总表,进行了group by hash_value,sql_id的汇总。

物理读(磁盘读写)前10的sql

SELECT *
 FROM (SELECT sql_fulltext AS sql,
 SQL_ID,
 disk_reads / executions AS "Reads/Exec",
 disk_reads, 
 executions,cpu_time,elapsed_time,last_active_time,module
 FROM V$SQLAREA 
 WHERE disk_reads > 1000
 and executions > 0
 AND is_obsolete = 'N'
 ORDER BY "Reads/Exec" DESC)
 WHERE rownum <= 10;

物理IO前10的表

SELECT TABLE_NAME,TOTAL_PHYS_IO
FROM ( SELECT OWNER||'.'||OBJECT_NAME AS TABLE_NAME,
 SUM(VALUE) AS TOTAL_PHYS_IO
 FROM V$SEGMENT_STATISTICS
 WHERE OWNER!='SYS' AND OBJECT_TYPE='TABLE'
 AND STATISTIC_NAME IN ('physical reads','physical reads direct',
 'physical writes','physical writes direct')
 GROUP BY OWNER||'.'||OBJECT_NAME
 ORDER BY TOTAL_PHYS_IO DESC)
WHERE ROWNUM <=10;

篇幅有限,主要分享几个sql,所以就介绍到这了,后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

相关推荐

Linux在线安装JDK1.8

首先在服务器pingwww.baidu.com查看是否可以连网然后就可以在线下载一、下载安装JDK1.81、在下载安装的同时做好一些准备工作...

Linux安装JDK,超详细

1、了解RPMRPM是Red-HatPackageManager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux...

Linux安装jdk1.8(超级详细)

前言最近刚购买了一台阿里云的服务器准备要搭建一个网站,正好将网站的一个完整搭建过程分享给大家!#一、下载jdk1.8首先我们需要去下载linux版本的jdk1.8安装包,我们有两种方式去下载安装...

Linux系统安装JDK教程

下载jdk-8u151-linux-x64.tar.gz下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.ht...

干货|JDK下载安装与环境变量配置图文教程「超详细」

1.JDK介绍1.1什么是JDK?SUN公司提供了一套Java开发环境,简称JDK(JavaDevelopmentKit),它是整个Java的核心,其中包括Java编译器、Java运行工具、Jav...

Linux下安装jdk1.8

一、安装环境操作系统:CentOSLinuxrelease7.6.1810(Core)JDK版本:1.8二、安装步骤1.下载安装包...

Linux上安装JDK

以CentOS为例。检查是否已安装过jdk。yumlist--installed|grepjdk或者...

Linux系统的一些常用目录以及介绍

根目录(/):“/”目录也称为根目录,位于Linux文件系统目录结构的顶层。在很多系统中,“/”目录是系统中的唯一分区。如果还有其他分区,必须挂载到“/”目录下某个位置。整个目录结构呈树形结构,因此也...

Linux系统目录结构

一、系统目录结构几乎所有的计算机操作系统都是使用目录结构组织文件。具体来说就是在一个目录中存放子目录和文件,而在子目录中又会进一步存放子目录和文件,以此类推形成一个树状的文件结构,由于其结构很像一棵树...

Linux文件查找

在Linux下通常find不很常用的,因为速度慢(find是直接查找硬盘),通常我们都是先使用whereis或者是locate来检查,如果真的找不到了,才以find来搜寻。为什么...

嵌入式linux基本操作之查找文件

对于很多初学者来说都习惯用windows操作系统,对于这个系统来说查找一个文件简直不在话下。而学习嵌入式开发行业之后,发现所用到的是嵌入式Linux操作系统,本想着跟windows类似,结果在操作的时...

linux系统查看软件安装目录的方法

linux系统下怎么查看软件安装的目录?方法1:whereis软件名以查询nginx为例子...

Linux下如何对目录中的文件进行统计

统计目录中的文件数量...

Linux常见文件目录管理命令

touch用于创建空白文件touch文件名称mkdir用于创建空白目录还可以通过参数-p创建递归的目录...

Linux常用查找文件方法总结

一、前言Linux系统提供了多种查找文件的命令,而且每种查找命令都具有其独特的优势,下面详细总结一下常用的几个Linux查找命令。二、which命令查找类型:二进制文件;...

取消回复欢迎 发表评论: