例举在诊断Oracle性能问题时,常用的工具、方法 解答: 1)简单一点的可以用toad及dbartisan这样的工具。 2)纯做性能监测,比较出色的有spolight和emc的I3,这两个软件都比较贵。 3)一些网管系统这方面也不错,如hp的openview。不过定制起来不太容易,且很贵。 4)不用花钱又好用的就是Oracle的statpack了。 5)再有就是自己写脚本了,大多数有经验的DBA都喜欢这样的方式。优点是实用灵活。缺点是如果想出一个性能变化的曲线图等...
2014-12-18 BaoXinjian一、摘要Oracle 性能优化的基本方法概述1)设立合理的性能优化目标。2)测量并记录当前性能。3)确定当前Oracle性能瓶颈(Oracle等待什么、哪些SQL语句是该等待事件的成分)。4)把等待事件记入跟踪文件。5)确定当前的OS瓶颈。6)优化所需的成分(应用程序、数据库、I/O、争用、OS等)。7)跟踪并实施更改控制过程。8)测量并记录当前性能9)重复步骤3到7,直到满足优化目标 二、分析Step1.设立合理的性能优...
AWR快照默认情况下,Oracle每隔一小时会自动产生一个快照,保存最近8天的快照。我们可以通过如下语句获得产生快照的时间间隔和保存的天数:SYS@orcl(lx15)> select SNAP_INTERVAL,RETENTION from dba_hist_wr_control;SNAP_INTERVAL RETENTION
--------------------------------------------------------------------------- ------------------------------------...
正在看的ORACLE教程是:Oracle性能究极优化 下。 我们有理由相信采用新的内核版本(2.2.16-3 smp)也应该有性能的提升: OS2: Newer minor version kernel TPC Results Load Time (Seconds) 9.40 Transactions / Second 11.522 目前已经有 2.4 版本的内核,和 2.2 相比,性能上有了很大的提升,我们采用 2.4.1 smp: OS3: Newer major version kernel TPC Results Load Time (Seconds) 8.32 Transac...
问题背景:客户反应oracle库很慢很慢 (read by other session可以结合db file sequential read等待事件一块优化) 1检查等待事件: set linesize 200 col username for a15 col event for a35 col program for a20col cpu_p for 99.99 select ta.*, round(ta.cpu_time / tb.total_cpu * 100, 1) cpu_usage from (select s.username, s.program, s.event, s.sql_id, sum(trunc(m.cpu)) cpu_time, count(*) sum from v$sessmetric...
Oracle性能优化 之 库缓存与Pin,Oracle为每个游标还要额外分配250字节的内存用于存储一些管理性信息。第二个子查询就是计算当前 一、使用视图进行库缓存大小测试:
如果你的企业新开启了一项业务,并为此开发了一套新的应用程序,这需要一个新的数据库为后台。你负责规化此新的数据库。那么,你该如何确定共享池的大小呢?下面的测试可以有助于你确定共享池大小。注意,这样确定的共享池大小,只是估计的大小。到底多大的共享池才...
Oracle性能优化 之 库缓存,执行计划的生成要耗费许多CPU时间,而且优化器会将生成的执行计划存放到共享池中。如果你执行很多相同 一、库缓存中的信息
1.什么是执行计划
2.为什么要共享执行计划
执行计划的生成要耗费许多CPU时间,而且优化器会将生成的执行计划存放到共享池中。如果你执行很多相同的语句,但没有共享执行计划,优化器每次都要搜索共享池、查找有没有可以共享的执行计划,没有查找后它自己生成,再把生成的执行计...
1.PLAN_tablecolumn query_plan format a55column cardinality format 99999column cost format 99999delete from plan_table;set lines 100set pages 100set echo onEXPLAIN PLAN FORSELECT * FROM hr.employees JOIN hr.departments USING (department_id); SELECT RTRIM (LPAD (‘ ‘, 2 * LEVEL) || RTRIM (operation) || ‘ ‘ || RTRIM (options) || ‘ ‘ || object_name) query_plan, ...
代码如下:
低效:SELECT … FROM DEPT WHERE SAL * 12 > 25000; 高效:SELECT … FROM DEPT WHERE SAL > 25000/12;3、避免在索引列上使用IS NULL和IS NOT NULL 避免在索引中使用任何可以为空的列,ORACLE性能上将无法使用该索引.对于单列索引,如果列包含空值,索引中将不存在此记录. 对于复合索引,如果每个列都为空,索引中同样不存在此记录. 如果至少有一个列不为空,则记录存在于索引中.举例: 如果唯一性索引建立...
AWR快照
默认情况下,Oracle每隔一小时会自己主动产生一个快照,保存近期8天的快照。
我们能够通过例如以下语句获得产生快照的时间间隔和保存的天数:
SYS@orcl(lx15)> select SNAP_INTERVAL,RETENTION from dba_hist_wr_control;SNAP_INTERVAL RETENTION
--------------------------------------------------------------------------- -------------------------...
代码如下:
低效:SELECT … FROM DEPT WHERE SAL * 12 > 25000; 高效:SELECT … FROM DEPT WHERE SAL > 25000/12;3、避免在索引列上使用IS NULL和IS NOT NULL 避免在索引中使用任何可以为空的列,ORACLE性能上将无法使用该索引.对于单列索引,如果列包含空值,索引中将不存在此记录. 对于复合索引,如果每个列都为空,索引中同样不存在此记录. 如果至少有一个列不为空,则记录存在于索引中.举例: 如果唯一性索引建立...
SELECT t1.*,
‘t2-->‘,
t2.*
FROM v$sql_plan t1
JOIN v$sql t2
ON t1.address = t2.address
AND t1.hash_value = t2.hash_value
AND t1.child_number = t2.child_number;--缓存中的执行计划。
1.2 典型SELECT语句完整的执行顺序
1)from子句组装来自不同数据源的数据;
2)where子句基于指定的条件对记录行进行筛选;
3)group by子句将数据划分为多个分组...
如果程序中使用了临时的LOB类型变量,Oracle会分配临时空间,如果并发很高,初始区很大,那么数据库可能产生严重的TEMP表空间的不足问题.可以通过测试轻易再现这种状况,在多个Session中执行如下代码:declare A CLOB;BEGIN A:=‘ABC‘; DBMS_LOCK.SLEEP(120);END;
查询v$sort_usage视图,可以获得临时表空间的使用情况(哪个用户、哪个Session因为什么原因使用了多少临时表空间):select s.username, s.sid, u.tablespace, u.contents...
大家对于一个业务系统的运行关心有如下几个方面:功能性、稳定性、效率、安全性。而一个系统的性能有包含了网络性能、应用性能、中间件性能、数据库性能等等。
今天从数据库性能的角度,浅谈Oracle性能优化的一些看法。
首先对于性能问题,大家先接触的一般都是某个业务功能慢,速度客户无法接受。那对于系统的性能无非如下图所示:当一个性能问题出现时,很多人都会猜测问题各个方面的原因。 今天主要谈数据库的性能问题,就问题而...
--case13--case14
--case15
--case16
--case17--case18--case19--case20 oracle性能诊断艺术-执行计划标签:执行计划 acl color span -- ima nbsp 诊断 bsp 本文系统来源:http://www.cnblogs.com/iyoume2008/p/6947431.html