oracleio怎么看,oracle查看io

在oracle中如何查找io调用最多的sql

有很多种方法可以用来找出哪些SQL语句需要优化,但是很久以来,最简单的方法都是分析保存在V$SQL视图中的缓存的SQL信息。通过V$SQL视图,可以确定具有高消耗时间、CUP和IO读取的SQL语句。

成都创新互联公司-专业网站定制、快速模板网站建设、高性价比临清网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式临清网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖临清地区。费用合理售后完善,10多年实体公司更值得信赖。

1.查看总消耗时间最多的前10条SQL语句

select *

from (select v.sql_id,

v.child_number,

v.sql_text,

v.elapsed_time,

v.cpu_time,

v.disk_reads,

rank() over(order by v.elapsed_time desc) elapsed_rank

from v$sql v) a

where elapsed_rank = 10;

2.查看CPU消耗时间最多的前10条SQL语句

select *

from (select v.sql_id,

v.child_number,

v.sql_text,

v.elapsed_time,

v.cpu_time,

v.disk_reads,

rank() over(order by v.cpu_time desc) elapsed_rank

from v$sql v) a

where elapsed_rank = 10;

3.查看消耗磁盘读取最多的前10条SQL语句

select *

from (select v.sql_id,

v.child_number,

v.sql_text,

v.elapsed_time,

v.cpu_time,

v.disk_reads,

rank() over(order by v.disk_reads desc) elapsed_rank

from v$sql v) a

where elapsed_rank = 10;

希望能帮到您!

除了awr外,怎么看oracle表空间io情况

通过配置本地数据库的tns配置文件实现:

去oracle安装目录下oracle\product\10.2.0\db_2\NETWORK\ADMIN\ 找到tnsnames.ora,用记事本打开,里边有远程数据库的tns连接配置串如下

ORCL23 =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.23)(PORT = 1521))

)

(CONNECT_DATA =

(SID = ORCL)

)

)

添加好ip、端口和目标数据库的实例名(SID),然后确保tns名称(ORCL23)在整个文档中唯一,保存后打开数据库连接工具,输入远程数据库上的用户名密码,选择数据库对象为你配置的连接名就可以了

如何去评估oracle系统存在io性能问题

简单点判断的话,你top或topas观察下,cpu和磁盘读的负载情况。

然后生成一份业务高峰时段的AWR报告,看看top 5等待事件主要是哪些,是不是跟磁盘读相关的等待事件(比如全表扫描)

降低IO最有效的方法就是优化sql语句,避免大表全表扫描,根据awr报告中sga各个内存组件的使用情况,适当调整buffer cache的值,来减少磁盘IO

如何看oracle io

oracle查看执行计划

你可以在session中set autotrace on,你可以看到统计信息和执行计划

也可以使用dbms_xplan包去查看执行计划。

oracle的io次数是怎么算法

ORACLE 不会自动建立索引,之所以快是因为从内存中读取比disk IO要快的原因。

LZ的概念理解有误,我来举例说明下。

ORACLE data一般缓存在SGA中的data cache中 1.表A有10000条数据,在0:00时刻对其进行查询,则将表A的所有数据块从disk缓存至data cache中。因此第二次查询时直接从data cache中获得速度变快。 2.0:05时刻 对表A进行更新等操作,20000行。再次对表A进行查询,之前没有变化的数据块仍然直接从data cache中直接获得。发生过变更,或新增的数据块,需要重新从disk读入data cache中,如果data cache空间已满,就会将之前发生变更的脏数据块及不常使用的数据块清空出data cache,然后缓存新的数据块。 因此整个过程中,不会出现你说的只能查到缓存数据的现象。分析你遇到的问题,很有可能是你用userA 进行查询后发现表10000行,然后使用userB进行更新至20000行,但是userB并没有commit。因此userA在查询时仍然只能看到10000行。


当前题目:oracleio怎么看,oracle查看io
分享链接:http://hbruida.cn/article/dssigse.html