上面的查询包含了更多的详细的响应时间数据。DBA们还需要收集在系统级别上的用户通讯的平均响应时间,上面的查询给出了需要的结果。如果用户抱怨响应时间太慢,那么DBA就应该查看Response Time Per Txn和SQL Service Response Time数据是否存在数据库问题。
如果响应时间不在是那么渴求,那么DBA就会想了解究竟是什么类型的用户活动让数据库的响应变得如此的慢,在Oracle10g数据库之前,这些信息 是比较难获取的,但是现在就变得非常容易,执行如下查询:
select case db_stat_name
when 'parse time elapsed' then
'soft parse time'
else db_stat_name
end db_stat_name,
case db_stat_name
when 'sql execute elapsed time' then
time_secs - plsql_time
when 'parse time elapsed' then
time_secs - hard_parse_time
else time_secs
end time_secs,
case db_stat_name
when 'sql execute elapsed time' then
round(100 * (time_secs - plsql_time) / db_time,2)
when 'parse time elapsed' then
round(100 * (time_secs - hard_parse_time) / db_time,2)
else round(100 * time_secs / db_time,2)
end pct_time
from
(select stat_name db_stat_name,
round((value / 1000000),3) time_secs
from sys.v_$sys_time_model
where stat_name not in('DB time','background elapsed time',
'background cpu time','DB CPU')),
(select round((value / 1000000),3) db_time
from sys.v_$sys_time_model
where stat_name = 'DB time'),
(select round((value / 1000000),3) plsql_time
from sys.v_$sys_time_model
where stat_name = 'PL/SQL execution elapsed time'),
(select round((value / 1000000),3) hard_parse_time
from sys.v_$sys_time_model
where stat_name = 'hard parse elapsed time')
order by 2 desc;
DB_STAT_NAME TIME_SECS PCT_TIME
sql execute elapsed time 65.644 89.7
hard parse elapsed time 26.661 36.43
PL/SQL execution elapsed time 12.766 17.44
PL/SQL compilation elapsed time 6.353 8.68
soft parse time 2.15 2.94
connection management call elapsed time 1.084 1.48
hard parse (sharing criteria) elapsed time 0.448 0.61
repeated bind elapsed time 0.026 0.04
failed parse elapsed time 0.009 0.01
hard parse (bind mismatch) elapsed time 0.002 0
RMAN cpu time (backup/restore) 0 0
inbound PL/SQL rpc elapsed time 0 0
sequence load elapsed time 0 0
Java execution elapsed time 0 0
failed parse (out of shared memory) elapsed time 0 0 |
可以在V$SYS_TIME_MODEL视图中找到相应的主要花费时间处理的部分,然后就可以根据这些来对数据库进行相应的调整。
除了活动时间,DBA也还想知道整体的等待时间。在Oracle10g数据库之前,DBA必须查看单独的等待事件来找出等待和瓶颈,现在Oracle10g数据库提供一个等待的概要机制。
select WAIT_CLASS,
TOTAL_WAITS,
round(100 * (TOTAL_WAITS / SUM_WAITS),2) PCT_WAITS,
ROUND((TIME_WAITED / 100),2) TIME_WAITED_SECS,
round(100 * (TIME_WAITED / SUM_TIME),2) PCT_TIME
from
(select WAIT_CLASS,
TOTAL_WAITS,
TIME_WAITED
from V$SYSTEM_WAIT_CLASS
where WAIT_CLASS != 'Idle'),
(select sum(TOTAL_WAITS) SUM_WAITS,
sum(TIME_WAITED) SUM_TIME
from V$SYSTEM_WAIT_CLASS
where WAIT_CLASS != 'Idle')
order by 5 desc;
WAIT_CLASS TOTAL_WAITS PCT_WAITS TIME_WAITED_SECS PCT_TIME
User I/O 5748 61.71 67.57 65.79
Other 182 1.95 16.85 16.41
System I/O 2975 31.94 11.27 10.97
Concurrency 114 1.22 6.76 6.58
Commit 61 0.65 0.22 0.21
Network 233 2.5 0.03 0.03
Application 2 0.02 0 0 |
这样就能非常容易的找出大部分的整体等待时间。如同响应时间数据一样,我们可以用下面的查询来及时回顾最新的一个小时等待类型:
select a.sid,
b.username,
a.wait_class,
a.total_waits,
round((a.time_waited / 100),2) time_waited_secs
from sys.v_$session_wait_class a,
sys.v_$session b
where b.sid = a.sid and
b.username is not null and
a.wait_class != 'Idle'
order by 5 desc;
SID USERNAME WAIT_CLASS TOTAL_WAITS TIME_WAITED_SECS
38 SYS User I/O 22 0.19
48 SYS User I/O 15 0.12
38 SYS Network 21 0.01
48 SYS Network 24 0
38 SYS Application 2 0 |
这个时候,就可以检查标准的单独等待事件就如在以前版本的Oracle数据库中查询V$SESSION_WAIT和V$SESSION_EVENT视图。在Oracle10g数据库中DBA还将可以找出新的等待类型在这两张视图中。如果需要找出以前哪个会话登录并且消耗了大部分的资源,你可以使用下面的查询,下面的例子是查找午夜12点到5点的数据库活动,并且包括用户的I/O等待。
select sess_id,
username,
program,
wait_event,
sess_time,
round(100 * (sess_time / total_time),2) pct_time_waited
from
(select a.session_id sess_id,
decode(session_type,'background',session_type,c.username) username,
a.program program,
b.name wait_event,
sum(a.time_waited) sess_time
from sys.v_$active_session_history a,
sys.v_$event_name b,
sys.dba_users c
where a.event# = b.event# and
a.user_id = c.user_id and
sample_time > '22-JAN-07 12:00:00 AM' and
sample_time < '22-JAN-07 05:00:00 AM' and
b.wait_class = 'User I/O'
group by a.session_id,
decode(session_type,'background',session_type,c.username),
a.program,
b.name), |
相关推荐
### Oracle10g数据库优化详解 #### 一、基本概念 **1. 实例与数据库** - **实例**: 当数据库启动后,多个进程被加载到内存中并进行协同工作,这些进程及其状态共同组成了一个数据库实例。实例是运行时的概念,...
在本教程中,我们将深入探讨如何在Windows 7操作系统上安装Oracle 10g数据库。Oracle 10g是一款强大的关系型数据库管理系统,广泛应用于企业级数据存储和管理。在Win7环境下安装Oracle 10g可能面临一些挑战,但通过...
在32位的CentOS操作系统上安装和使用Oracle 10g数据库涉及多个步骤,包括前期的系统准备、软件包安装、配置修改以及数据库的图形化安装和管理。以下是详细的步骤说明: 1. **安装前的准备** - **下载Oracle 10g**...
书中详细讲解了 Real Application Clusters (RAC) 技术,它是 Oracle 提供的一种集群解决方案,允许多个服务器共享同一数据库,提高服务的持续性和响应速度。同时,还涉及了数据保护和恢复策略,如备份与恢复、...
Oracle 10G数据库性能监控与优化是数据库管理员在日常工作中必须掌握的关键技能。Oracle数据库的性能直接影响到应用程序的响应速度和整体系统效率。以下是一些核心知识点的详细解释: 1. **表空间使用率监控**: ...
Oracle 10g数据库是Oracle公司推出的一款关系型数据库管理系统,它在数据库管理领域具有广泛的应用,尤其在大型企业级应用中占据重要地位。Oracle 10g在性能、可用性、可管理性和安全性等方面都有显著提升,为数据库...
Oracle 10g数据库应用教程是关于Oracle 10g数据库管理的详细教程,本教程涵盖了Oracle 10g数据库管理的各个方面,包括企业管理器、Oracle Administration Assistant、网络配置工具、SQL*Plus和iSQL*Plus等。...
《精通Oracle 11g数据库管理》是一本专注于Oracle数据库技术的专业书籍,出版于2009年。...通过阅读和实践书中的案例,读者可以全面掌握Oracle 11g数据库的管理和运维技巧,提升在企业IT环境中的专业技能。
Oracle 10g数据库在安全性与身份管理方面展现了强大的功能,为企业的数据保护提供了坚实的基础。其中,Oracle互联网目录(OID)是一个关键组件,它在Oracle数据库10g上运行,能够支持大规模的目录信息存储,无论是...
Oracle 10g数据库性能优化与分析是针对数据库在日常生活各个领域的广泛应用中,尤其是在面对数据量不断增大和并发用户数量增多时,如何提高系统效率、降低响应时间和提升吞吐量的关键问题。Oracle数据库作为关系型...
总结,Oracle 10g数据库管理系统为数据库管理员和开发者提供了强大的工具和特性,从高性能的数据存储到灵活的应用系统开发,再到可靠的灾难恢复机制,都是其突出亮点。理解并熟练掌握这些知识点,对于在Oracle环境中...
在性能方面,Oracle 10g表现卓越,例如,在Transaction Processing Council的测试中,Oracle数据库10g在16个节点的4路HP Integrity rx5670上达到了1,184,893 tpmC,而成本仅为$5.52/tpmC,相比64路HP Integrity ...
Oracle 10g是一款历史悠久但仍然具有广泛影响力的数据库管理系统,尤其在那些运行32位操作系统或者需要兼容旧系统的环境中。本资源提供了Oracle Database 10g的32位版本,适用于那些不能或不想升级到更高版本的用户...
Oracle 10g数据库是Oracle公司推出的一款关系型数据库管理系统,它在数据库管理、性能优化、安全性、可扩展性等方面有着显著的特点。本教程将针对初学者,详细讲解Oracle 10g的基础知识,帮助你掌握数据库的核心概念...
在Oracle10G数据库管理中,数据失败是常见的问题,它不仅影响数据库的稳定性和数据的完整性,还可能导致业务中断。根据失败的性质,Oracle10G将数据失败分为多种类型,包括语句失败、用户进程失败、用户错误、实例...
【Oracle 10g数据库管理工具详解】 Oracle 10g是Oracle公司推出的数据库管理系统,其提供了多种强大的数据库管理工具,使得数据库的管理和维护变得更加高效和便捷。在本章中,我们将深入探讨Oracle 10g的主要管理...
在静默安装Oracle 10G数据库软件之前,需要确保系统中没有已安装的Oracle实例,可以通过查看/etc/oraInst.loc文件是否存在来判断。如果文件不存在,说明没有安装过Oracle。接下来,需要创建专门用于Oracle的用户和组...