在 Oracle 数据库 10g中轻松进行响应时间分析(转)
Oracle 数据库 10g
当然,获得用时最多或等待时间最长的 SQL 语句是很好的,但您需要更多详细信息才能了解事情的本质 — 这正是 V$ACTIVE_SESSION_HISTORY 视图的另一个用武之地。使用此视图,您可以发现哪些实际的等待事件延迟了 SQL 语句以及导致等待的实际文件、对象和对象块(如果适用)。
例如,假设您发现了一个在用户 I/O 等待时间方面显得非常不足的特殊 SQL 语句。您可以发出以下查询来获取与查询关联的单个等待事件以及相应的等待时间、文件以及作为这些等待的源的对象:
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' anda.current_obj# = b.object_id andtime_waited <> 0;EVENT TIME_WAITED OWNER OBJECT_NAME file block------------------------- ----------- ------ --------------------- ---- ------db file sequential read 27665 SYSMAN MGMT_METRICS_1HOUR_PK 3 29438db file sequential read 3985 SYSMAN SEVERITY_PRIMARY_KEY 3 52877
当然,您可以按以往的方式使用 V$ACTIVE_SESSION_HISTORY 对一个特定时间段缩小未优化的 SQL 语句。但问题是相对于耗时的跟踪和摘要方法,Oracle 数据库 10g 使您可以更容易地使用简化的数据词典视图对 SQL 语句执行响应时间分析。
结论
管理 Oracle 数据库 10g 性能的数据库管理员和性能分析员将在 Oracle 的王牌数据库的最新版本中发现,他们多年来盼望已久的许多响应时间度量现在可唾手可得。此类统计信息将帮助加快在大型、复杂的数据库环境下查找所需信息的过程。
?
Robin Schumacher (Robin.Schumacher@embarcadero.com) 是 Embarcadero Technologies(一家领先的数据库软件工具供应商)产品管理的副总裁。他拥有 16 年的数据库引擎使用经验,并且是许多数据库相关出版物的专栏作家和软件评论人。Robin 还是 Oracle 性能排错 (Rampant TechPress)(已经更新为包含 Oracle 数据库 10g 诊断)的作者。