- 浏览: 698505 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
yzs5273:
没什么用。都试过了
WIN7下CS不能全屏的解决方法 -
di1984HIT:
不错,学习了
读取本地计算机中的安装程序列表 -
ffedu:
[flash=200,200][url][img][list] ...
linux/unix中如何用find命令详解,非常详细的介绍,比man find强100倍(转) -
lintghi:
...
Log4j使用相对路径指定log文件及使用总结 -
nick.s.ni:
唉,Java中引用的包没有介绍啊,如果数据库用UTF-8的格式 ...
Oracle 中Java 对象与PL/SQL类型的映射及使用(转)
Oracle性能优化基本方法包括一下几个步骤,包括:
1)设立合理的Oracle性能优化目标。
2)测量并记录当前的Oracle性能。
3)确定当前Oracle性能瓶颈(Oracle等待什么、哪些SQL语句是该等待事件的成分)。
4)把等待事件记入跟踪文件。
5)确定当前的OS瓶颈。
6)优化所需的成分(应用程序、数据库、I/O、争用、OS等)。
7)跟踪并实施更改控制过程。
8)测量并记录当前性能
9)重复步骤3到7,直到满足优化目标
下面来一一详述。
1.设立合理的Oracle性能优化目标
重点:关于设立目标的最重要的一点是它们必须是可量化和可达到的。
方法:目标必须是当前性能和所需性能的的陈述形式的语句。
2.测量并记录当前Oracle性能重点:
1)需要在峰值活动时间获得当前系统性能快照
2)关键是要在出现性能问题的时间段内采集信息
3)必须在合理的时间段上采集,一般在峰值期间照几个为期15分钟的快照
3.确定当前Oracle性能瓶颈重点:从Oracle 等待接口v$system_event、v$session_event和v$session_wait中获得等待事件,进而找出影响性能的对象和sql 语句。方法如下:
1)首先,利用v$system_event视图执行下面的查询查看数据库中某些常见的等待事件:
1. select * from v$system_event
2. where event in ('buffer busy waits',
3. 'db file sequential read',
4. 'db file scattered read',
5. 'enqueue',
6. 'free buffer waits',
7. 'latch free',
8. 'log file parallel write',
9. 'log file sync');
2)接着,利用下面对v$session_event和v$session视图进行的查询,研究具有对上面显示的内容有贡献的等待事件的会话:
1. select se.sid,s.username,se.event,se.total_waits,se.time_waited,se.average_wait
2. from v$session s,v$session_event se
3. where s.sid = se.sid
4. and se.event not like 'SQL*Net%'
5. and s.status = 'ACTIVE'
6. and s.username is not null;
3)使用下面查询找到与所连接的会话有关的当前等待事件。这些信息是动态的,为了查看一个会话的等待最多的事件是什么,需要多次执行此查询。
1. select sw.sid,s.username,sw.event,sw.wait_time,sw.state,sw.seconds_in_wait SEC_IN_WAIT
2. from v$session s,v$session_wait sw
3. where s.sid = sw.sid
4. and sw.event not like 'SQL*Net%'
5. and s.username is not null
6. order by sw.wait_time desc;
4)查询会话等待事件的详细信息
1. select sid,event,p1text,p1,p2text,p2,p3text,p3
2. from v$session_wait
3. where sid between &1 and &2
4. and event not like '%SQL%'
5. and event not like '%rdbms%';
5)利用P1、P2的信息,找出等待事件的相关的段
1. select owner,segment_name,segment_type,tablespace_name
2. from dba_extents
3. where file_id = &fileid_in
4. and &blockid_in between block_id and block_id + blocks - 1;
6)获得操作该段的sql语句:
1. select sid, getsqltxt(sql_hash_value,sql_address)
2. from v$session
3. where sid = &sid_in;
7)getsqltxt函数
8)至此已经找到影响性能的对象和sql语句,可以有针对性地优化
4.把等待事件记入跟踪文件
重点:如果在跟踪系统上的等待事件时,由于某种原因遇到了麻烦,则可以将这些等待事件记入一个跟踪文件。方法如下:
1)对于当前会话:
1. alter session set timed_statistics=true;
2. alter session set max_dump_file_size=unlimited;
3. alter session set events '10046 trace name context forever, level 12';
2)执行应用程序,然后在USER_DUMP_DEST指出的目录中找到跟踪文件。
3)查看文件中以词WAIT开始的所有行。
4)对于其它的会话
5)确定会话的进程ID(SPID)。下面的查询识别出名称以A开始的所有用户的会话进程ID:
1. select S.Username, P.Spid from V$SESSION S, V$PROCESS P
2. where S.PADDR = P.ADDR and S.Username like 'A%';
6)以sysdba进入sqlplus执行
1. alter session set timed_statistics=true;
2. alter session set max_dump_file_size=unlimited;
3. oradebug setospid
4. oradebug unlimit
5. oradebug event 10046 trace name context forever, level X /* Where X = (1,4,8,12) */
7)跟踪某个时间间隔得会话应用程序。
8)在USER_DUMP_DEST 的值指出的目录中利用SPID查看跟踪文件
9)查看文件中以词WAIT开始的所有行。
5.确定当前OS瓶颈1)Windows NT上的监控
使用控制面板-〉管理工具-〉性能即可
2)UNIX上的监控
使用通用性的工具,包括sar、iostat、cpustat、mpstat、netstat、top、osview等。
6.Oracle性能优化所需的成分(应用程序、数据库、I/O、争用、OS等)。
7.跟踪并实施更改控制过程。
8.测量并记录当前Oracle性能
9.重复步骤3到7,直到满足优化目标
发表评论
-
Mongo vs. Couchbase
2017-07-05 22:21 0https://www.couchbase.com/com ... -
Backup DDL on Oracle DB
2016-03-01 10:31 782set trimspool on lines 500 pa ... -
Identifying Relationship vs. Non-identifying Relationship
2015-10-20 23:49 1252Identifying vs non-identifying ... -
Re-post: DBMS_XPLAN : Display Oracle Execution Plans
2014-07-23 16:14 1044DBMS_XPLAN : Display Oracle Ex ... -
Optimistic Locking with Concurrency in Oracle
2014-04-16 11:37 691A very good document about opti ... -
SQL*PLUS - SET Statement
2012-10-24 19:38 932Syntax: SET option value ... -
Get DDL via SQLPLUS
2012-10-24 19:36 979set pagesize 0 -- The height of ... -
Oracle 子程序参数模式,IN,OUT,NOCOPY ( 转)
2012-03-06 14:54 1876Oracle 子程序参数模式主 ... -
TNSNAMES配置中空格导致的bug(转)
2011-12-29 21:55 1184发现一个很有趣的bug ... -
Oracle 中Java 对象与PL/SQL类型的映射及使用(转)
2011-11-05 23:45 4733一、Jpublisher概述 Oracle JPu ... -
Refresh statistics for all tables
2011-11-03 14:10 964select 'analyze table '||tab ... -
What's blocking my lock?(Reposted)
2011-10-31 13:44 1014If you've ever gotten a phone c ... -
Oracle exp direct(Reposted)
2011-06-15 14:55 2192使用直接导出模式 direct=y exp 比传统模式导 ... -
深入了解oracle的高水位(HWM)
2011-05-12 09:23 1154转自http://tolywang.itpub.net ... -
Oracle 聚簇(收集)
2011-05-11 22:02 19241. 什么是聚簇 聚簇是 ... -
怎样正确显示oracle异常行数(转)
2011-01-20 16:17 2612在oracle中的存储过程中,使用的EXCEPTION并用 ... -
Oracle function translate(Reposted)
2011-01-08 22:51 1663一、语法: TRANSLATE(string,f ... -
Oracle用Start with...Connect By子句递归查询(转)
2011-01-07 11:39 4263一、语法 大致写法:sel ... -
Spool和SQLLDR--Oracle数据导出导入(传)
2010-12-02 14:58 4499对于SPOOL数据的SQL,最好要自己定义格式,以方便程序直 ... -
TNS:listener could not find instance with matching protocol stack
2010-09-27 15:41 1415When the listener believes the ...
相关推荐
### Oracle语句优化53个规则详解 #### 一、选用适合的Oracle优化器 在Oracle数据库中,优化器的选择对于SQL语句的执行效率至关重要。Oracle提供了三种优化器模式: 1. **基于规则的优化器(RULE)**:这是一种较...
### Oracle性能优化技巧详解 #### 一、引言 Oracle数据库是企业级应用中的核心组件之一,其性能直接影响到业务系统的稳定性和响应速度。本文将详细介绍Oracle性能优化的关键技巧,帮助用户更好地理解和掌握如何...
总的来说,这组资料提供了全面的Oracle性能优化指南,对于DBA、开发人员以及对数据库性能优化感兴趣的IT从业者来说,具有很高的学习价值。通过深入学习和实践,可以显著提升系统性能,降低数据库资源消耗,从而提高...
Oracle的SQL优化与调优机制复杂多样,涵盖了从SQL语句的编写、执行计划的选择、到资源管理的全方位调优方法。为了深入理解Oracle SQL优化与调优机制,需要掌握以下几个核心知识点。 首先,要掌握Oracle SQL的基本...
oracle性能优化的基本方法之读懂执行计划,能够把执行计划读懂,算是做好性能优化的第一步。在读懂执行计划的基础上,再去谈论性能优化,才能有理有据。
### Oracle性能优化技巧详解 #### 一、Oracle优化器模式 在Oracle数据库中,优化器是决定查询执行计划的关键组件,其目标是最小化资源消耗并最大化查询性能。Oracle提供了三种主要的优化器模式:基于规则(RULE)...
### Oracle性能优化详解 #### 一、选择合适的Oracle优化器 在Oracle数据库中,优化器的选择对于提升查询性能至关重要。Oracle提供了三种优化器模式:基于规则(RULE)、基于成本(COST)和选择性(CHOOSE)。 1. ...
Oracle数据库的性能优化直接关系到系统的运行效率,而影响数据库性能的一个重要因素就是SQL性能问题。本书是作者十年磨一剑的成果之一,深入分析与解剖Oracle SQL优化与调优技术,主要内容包括: 第一篇“执行计划”...
通过以上这些方法和技术的应用,DBA和开发人员可以更加深入地理解Oracle数据库的优化过程,从而显著提高数据库的性能。优化工作不仅仅是一次性的,它需要持续的关注和调整,以适应数据库运行环境的变化和业务需求的...
### Oracle 高性能优化知识点详解 #### 一、Oracle 数据库优化概述 Oracle数据库作为一款广泛使用的商业关系型数据库管理系统,在各行各业中发挥着至关重要的作用。随着数据量的不断增长和业务需求的日益复杂,...
方法论是指 Oracle 数据库优化的思想和方法,它涉及到数据库的整体机制、性能优化方法、资源瓶颈分析等方面。 在 Oracle 数据库优化技术中,优化工具是非常重要的。 Oracle 提供了多种优化工具,例如 Oracle Tuning...
这里提供的知识是基于黄玮编写的《Oracle高性能SQL引擎剖析:Oracle SQL优化与调优技术详解》一书的内容,以及上述文档提供的相关知识点。在实际应用中,可以参考这些内容来优化Oracle数据库中的SQL查询。同时,为了...
Oracle数据库性能调整与SQL性能优化是数据库管理员和开发人员日常工作中不可或缺的部分。Oracle数据库系统以其高效、稳定和可扩展性闻名,但同时也需要通过精心的调整和优化来确保最佳性能。以下是一些关键的知识点...
本书"Oracle高性能SQL引擎剖析 SQL优化与调优机制详解"深入探讨了Oracle SQL查询引擎的工作原理以及如何对其进行优化和调优,这对于数据库管理员(DBA)和开发人员来说是非常有价值的学习资源。 首先,SQL优化是...
通过以上内容的学习,我们可以了解到ORACLE存储过程性能优化的重要性和具体实施方法。合理选择优化器、充分利用索引以及避免不当的查询操作都是提高存储过程性能的关键。希望本文能够帮助您更好地理解和掌握ORACLE...
7. **性能优化策略**: - **索引优化**:创建合适的索引可以加速查询,但过多的索引会增加写操作的开销,因此需平衡索引的数量和类型。 - **查询优化**:使用EXPLAIN PLAN分析查询计划,找出效率低下的操作,如全...
### 超酷30个Oracle语句优化规则详解 #### 一、选用适合的Oracle优化器 在Oracle数据库中,优化器的选择对于查询性能至关重要。Oracle提供了三种优化器模式来帮助用户根据实际情况选择最合适的执行计划: 1. **...
本文档将介绍一些针对Oracle SQL的性能优化的方法和技巧,并在实际操作中如何根据服务器的实际情况做出调整。 一、Oracle优化器的选取 Oracle优化器共有三种类型:基于规则(RULE)、基于成本(COST)和选择性(CHOOSE)...