SQL语句响应时间分析
在Oracle9i数据库中查看SQL语句的响应时间就变得比较容易了,现在在Oracle10g中,DBA们拥有更多的工具可以帮助他们跟踪效率低下的数据库代码。以前可以用来查询的视图是V$SQLAREA,从Oracle9i开始,这个视图增加了ELAPSED_TIME和CPU_TIME两个列,这极大的有助于去确定实际用户的SQL语句的执行经历。(如果除以执行的次数列EXECUTIONS,那么将得到平均每次执行这个SQL语句所用的平均时间)在Oracle10g数据库中,V$SQLAREA视图中增加了6个新的和等待以及时间相关的列:
APPLICATION_WAIT_TIME
CONCURRENCY_WAIT_TIME
CLUSTER_WAIT_TIME
USER_IO_WAIT_TIME
PLSQL_EXEC_TIME
JAVA_EXEC_TIME |
这些新的列有助于确定很多信息,例如:一个存储过程中花费在PL/SQL代码和标准SQL执行上的时间的对比,以及一个SQL语句经历的任何详细的用户I/O等待。例如:下面的SQL语句能帮助找到前5位用户I/O等待最高的SQL语句:
select * from
(select sql_text,
sql_id,
elapsed_time,
cpu_time,
user_io_wait_time
from sys.v_$sqlarea
order by 5 desc)
where rownum < 6;
SQL_TEXT SQL_ID ELAPSED_TIME CPU_TIME USER_IO_WAIT_TIME
DECLARE job BINARY_INTEGER := :job;
next_date DATE := :mydate; broken BOOLEAN :
6gvch1xu9ca3g 11077912 747091 8593479
select /*+ index(idl_ub1$ i_idl_ub11) +*/ piece#,
length,piece from idl_ub1
$ wher cvn54b7yz0s8u 6455976 220128 6427409
select s.synonym_name object_name,
o.object_type from sys.all_synonyms s,
s fqmpmkfr6pqyk 11814078 6958760 3189450
select /*+ rule */ bucket, endpoint, col#,
epvalue from histgrm$ where obj#=:1 a db78fxqxwxt7r
2737680 193937 2689611
select /*+ index(idl_ub2$ i_idl_ub21) +*/ piece#,
length,piece from idl_ub2$
where 39m4sx9k63ba2 2322664 108100 2307700 |
当然,获取最消耗时间或者等待时间最长的SQL语句非常不错,但是同时也需要抓住其要点——在V$ACTIVE_SESSION_HISTORY视图中又一次出现的SQL语句。通过这个视图,能够找出具体什么等待时间延迟了SQL语句执行,连同实际的文件,对象以及阻塞的对象导致等待。
例如:设想已经找到一个特别的SQL语句,看上去在用户I/O等待时间方面极端的严重,那么可以执行下面的查询来得到等待时间中各个单独的等待事件,等待的文件,等待的对象:
select event,
time_waited,
owner,
object_name,
current_file#,
current_block#
from sys.v_$active_session_history a,
sys.dba_objects b
where sql_id = '6gvch1xu9ca3g' and
a.current_obj# = b.object_id and
time_waited <> 0;
EVENT TIME_WAITED OWNER OBJECT_NAME file block
db file sequential read 27665 SYSMAN MGMT_METRICS_1HOUR_PK 3 29438
db file sequential read 3985 SYSMAN SEVERITY_PRIMARY_KEY 3 52877 |
当然,也可以通过使用V$ACTIVE_SESSION_HISTORY视图中的历史数据的方式来限制一段特殊时间内的没有优化的SQL语句。问题在于Oracle10g数据库通过简化的数据字典视图把SQL语句的响应时间分析变得非常的简单,比起以前运用消耗时间的trace方法来说。
总结
DBA们和性能分析专家们管理Oracle10g数据库的性能时会发现在最新的Oracle旗舰数据库中已经把许多的响应时间数据做成了动态性能视图。这些统计信息将有助于迅速找出大型复杂数据库中的性能瓶颈所在。
相关推荐
Oracle 10g 是Oracle公司最新推出的面向网格计算的一套商业应用开发与管理软件,主要包括数据库、应用服务器和开发工具三个层次,因此Oracle 10g的关键特点在于对网格计算的支持。本书主要介绍Oracle 10g应用服务吕...
oracle11g rac两节点集群所需的响应文件,包含关键配置
基本信息 出版社: 清华大学出版社; 第1版 (2009年1月1日) 平装: 594页 语种: 简体中文 开本: 16 ... 使用最新的Oracle Database 11g工具——Oracle Total Recall和Oracle Flashback Data Archive等。
Oracle Database 10 g :“g”代表网格 1-6 Oracle 数据库体系结构 1-8 数据库结构 1-9 Oracle 内存结构 1-10 进程结构 1-12 Oracle 实例管理 1-13 服务器进程和数据库缓冲区高速缓存 1-14 物理数据库结构 1-...
(3)通过并行执行技术提高事务响应时间----通常用于数据分析系统; (4)通过横向扩展提高每秒交易数和连接数----通常对于联机事务系统; (5)节约硬件成本,可以用多个廉价PC服务器代替昂贵的小型机或大型机,同时节约...
基本信息 出版社: 清华大学出版社; 第1版 (2009年1月1日) 平装: 594页 语种: 简体中文 开本: 16 ... 使用最新的Oracle Database 11g工具——Oracle Total Recall和Oracle Flashback Data Archive等。
为了响应企业的这种安全需求,Oracle和Microsoft均在其数据库产品中实现了强大的安全特性。通过正确的安全策略和实践,两种数据库都支持对有价值的数据资产进行保护。该白皮书将在安全特性、功能、成本以及管理简易...
通过 Oracle Delivers 察觉和响应 实时的预测性智能 离线分析 具备所有功能的离线客户端 Excel和PowerPoint的高级集成 Oracle商务智能套件企业版 Cisco Systems 的企业商务智能 无处不在的智能 Oracle BIEE+ –普及...
ORACLE用户是学习ORACLE数据库中的基础知识,下面就介绍下类系统常用的默认ORACLE用户: 1. sys用户:超级用户,完全是个SYSDBA(管理数据库的人)。拥有dba,sysdba,sysoper等角色或权限。是oracle权限最高的用户,...
数据库响应慢 应急处理步骤: (1)找到占用CPU资源大的sql或者模块,然后停掉此应用模块。 (2)如果属于由于种种原因引起的数据库hang住情况,立即重启数据 库,此时重启需要约15分钟时间。 重要说明: ...
她从20世纪90年代初就开始使用Oracle,从事 Oracle的教学工作也已经超过10年的时间。她是Oracle ACE,也是OakTable(Oracle社区中著名的“Oracle科学家”的非正式组织)的成员,经常在技术会议上演讲。她的著作还...
如果 PHP 应用程序与 Oracle 数据库 10g 第 2 版交互,则可以利用“数据库更改通知特性”,通过该特性应用程序可以接收通知来响应对与发出的请求关联的对象进行的 DML 更改。使用该特性,您不必在特定时间段更新应用...
Oracle EE 11g数据库管理系统; JDK 8开发工具; Spring-MVC 4.1.4.RELEASE框架; Spring Security 4.0.1.RELEASE框架,用于构建企业应用程序的身份验证,授权和安全性。 ORM Hibernate 4.3.7,用于将面向对象的...
•DefaultLobHandler:适用于大部分的数据库,如SqlServer,MySQL,对Oracle 10g也适用,但不适用于Oracle 9i(看来Oracle 9i确实是个怪胎,谁叫Oracle 公司自己都说Oracle 9i是一个过渡性的产品呢)。 •...
及算法的内容很少),但也不是轻而易举就能完成的,所以我想挑战一下自己,看看自 己的实现能力到底怎么样,因此决定用面向对象方法学的思想,前台用Java程序设计语 言编写界面,访问Oracle数据库中的数据,完成本...
及算法的内容很少),但也不是轻而易举就能完成的,所以我想挑战一下自己,看看自 己的实现能力到底怎么样,因此决定用面向对象方法学的思想,前台用Java程序设计语 言编写界面,访问Oracle数据库中的数据,完成本...
及算法的内容很少),但也不是轻而易举就能完成的,所以我想挑战一下自己,看看自 己的实现能力到底怎么样,因此决定用面向对象方法学的思想,前台用Java程序设计语 言编写界面,访问Oracle数据库中的数据,完成本...
VC_中连接Oracle数据库的几种方法.pdf VC_串口通信中多线程技术的应用研究.pdf VC_和COM的预测控制算法的仿真研究.pdf VC_和Excel对象接口的研究与应用.pdf VC_和Matlab混合编程的语音识别研究.pdf VC_实现Excel操作...