Oracle 性能调优
文章平均质量分 89
小宝老豆
这个作者很懒,什么都没留下…
展开
-
如何生成awr报告
理解DB TimeDB Time指得是活动session(不包括后台进程)的时间总和。DB Time越大,数据库负载相应的也就越大。--查看活动session(不包括后台进程)select * from v$session where status='ACTIVE' and type--查看当前的AWR保存策略,默认情况下每小时产生一个快照,快照保留7天。SQL> select * from d转载 2014-02-10 10:28:15 · 2650 阅读 · 0 评论 -
Oracle RDA(Remote Diagnostic Agent) 工具说明
一.RDA 说明 RDA(RemoteDiagnostic Agent)是oracle用来收集、分析数据库的工具,运行该工具不会改变系统的任何参数,RDA收集的相关数据非常全面,可以简化我们日常监控、分析数据库的工作。 一般Oracle 原厂的人巡检也是使用RDA工具。 不过一般国内的DBA 巡检时很少使用这个工具,一般都是通过AWR 或者自己整几个脚本转载 2011-09-26 16:11:35 · 795 阅读 · 0 评论 -
Oracle OLAP 与 OLTP 介绍
数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。OLT转载 2011-09-29 09:40:13 · 926 阅读 · 0 评论 -
Oracle bulk 示例
之前整理了一篇blog,讲了一些bulk 的理论知识,参考: Oracle Bulk 与 性能优化 说明 http://blog.csdn.net/xujinyang/article/details/6823244 在这篇,主要演示一下bulk的具体使用。 之前还整理了一篇bulk类似的一个优化,参考:转载 2011-09-26 17:38:34 · 599 阅读 · 0 评论 -
Oracle 10053 事件
一. 10053事件当一个SQL出现性能问题的时候,可以使用SQL_TRACE 或者 10046事件来跟踪SQL. 通过生成的trace来了解SQL的执行过程。 Oracle SQL Trace 和 10046 事件http://blog.csdn.net/xujinyang/article/details/6831398 Event 10053 执行计划 绑定变量 Bin转载 2011-09-28 19:14:25 · 1060 阅读 · 0 评论 -
多表连接的三种方式详解 HASH JOIN MERGE JOIN NESTED LOOP
在多表联合查询的时候,如果我们查看它的执行计划,就会发现里面有多表之间的连接方式。 之前打算在sqlplus中用执行计划的,但是格式看起来有点乱,就用Toad 做了3个截图。 从3张图里我们看到了几点信息:1. CBO 使用的ALL_ROWS模式Oracle Optimizer CBO RBOhttp://blo转载 2011-09-29 09:34:33 · 1377 阅读 · 0 评论 -
Oracle 从缓存里面查找真实的执行计划
有关Oracle 的执行计划说明,参考我的Blog: Oracle Explain Plan http://blog.csdn.net/xujinyang/article/details/6832655 一. 查看当前session 的SID SYS@anqing1(rac1)> SELECT USERENV('SID') FR转载 2011-09-30 17:45:03 · 755 阅读 · 0 评论 -
Oracle Statistic 统计信息 小结
一. Statistic 说明 Oracle 官网对Statistic 有详细说明,参考: Managing Optimizer Statistics http://download.oracle.com/docs/cd/B19306_01/server.102/b14211/stats.htm#sthref1068转载 2011-10-17 16:15:07 · 1780 阅读 · 0 评论 -
Oracle 常见的33个等待事件
之前整理过一篇文章: Oracle 等待事件 http://blog.csdn.net/xujinyang/article/details/6829492 一. 等待事件的相关知识: 1.1 等待事件主要可以分为两类,即空闲(IDLE)等待事件和非空闲(NON-IDLE)等待事件。1). 空闲等待事件指ORACLE正等待某种工转载 2011-10-17 17:39:41 · 2581 阅读 · 0 评论 -
Oracle DML NOLOGGING
一. NOLOGGING 说明在对大表插入数据的时候,经常会用到nologging 选项。Nologging 并不是不产生redo,nologging + direct 只是不会对数据产生 redo(但依然有其他的redo)。同理 logging + direct 下 undo 也是大大地减少, 减少的是 数据的undo ,这里强调的是 数据本身的undo ,就如同 redo的减少也转载 2011-10-17 18:15:41 · 1075 阅读 · 0 评论 -
锁 死锁 阻塞 Latch 等待 详解
锁这东西是纯概念性的东西,但是作用又非常大。 以前整理过两篇文章,今天又看了点书,觉得还不是很清楚。 就重新整理了下。 在想要不要把以前的文章删掉,这样在blog里是比较简介的,但后来又一想。 这些连接在其他的地方可能被引用了。 就决定还是保留着了,也算见证自己成长的一个过程。 ORACLE 锁机制http://blog.csdn.net/xujinyang/article/detai转载 2011-09-26 17:01:11 · 4210 阅读 · 0 评论 -
Oracle Index Clustering Factor 说明
一. 官网说明 The indexclustering factor measures row order in relation to an indexed value suchas employee last name. The more order that exists in rowstorage for this value, the lower the clu转载 2011-09-26 17:42:35 · 549 阅读 · 0 评论 -
Oracle Shared pool 详解
一. Shared Pool 概述 在之前的blog对Oracle 的内存架构也做了一个概述,参考: Oracle 内存 架构 详解 http://blog.csdn.net/xujinyang/article/details/6829522 在网上搜到一篇转载 2011-09-26 18:38:43 · 1409 阅读 · 0 评论 -
Oracle Recursive Calls 说明
一. Recursive Calls 说明在执行计划的统计信息里有如下信息: SYS@anqing2(rac2)> set autot trace statisticsSYS@anqing2(rac2)> select * from ta,tb where ta.id=tb.id and ta.id 9 rows selected. Statistics-----转载 2011-09-28 18:14:22 · 631 阅读 · 0 评论 -
Oracle 绑定变量 详解
之前整理过一篇有关绑定变量的文章,不太详细,重新补充一下。 Oracle 绑定变量 http://blog.csdn.net/xujinyang/article/details/6830430 一.绑定变量 bind variable: A variable in a SQL statement that must be repl转载 2011-09-29 09:26:45 · 1151 阅读 · 0 评论 -
enq:SQ contention / row cache lock / DFS lock handle(SV) 等待事件 说明
enq:SQ contention/row cache lock/DFS lock handle(SV) 这三个等待事件都与Oracle 的Sequence 有关。 有关Sequence说明,参考我的Blog: Oracle Sequence Cache 参数说明 http://blog.csdn.net/xujinyang/article/details/6831转载 2011-09-29 11:22:48 · 1018 阅读 · 0 评论 -
Oracle 下 unpin 的cursor 才能被移除
最近南方的雨下的很烦人。 暴雨,一下就是一天,不过平时我也不怎么出门,所以也就无所谓了。 在家看看电影,做做测试,在补补觉,周末2天也就过去了。 刚才owind 让我做了个测试。 正在使用的cursor 能否被移除。 关于cursor的东西, 几个星期前就准备整理一下的,可是看了一下官方文档,东西太多了。 一时也没不知道从哪下手。 就放那了。 今天这个测试也算对c转载 2011-09-30 17:56:21 · 1440 阅读 · 0 评论 -
Oracle cursor_sharing 参数 详解
一. 官网的说明http://download.oracle.com/docs/cd/E11882_01/server.112/e17110/initparams042.htm#REFRN10025 1.1 CURSOR_SHARINGPropertyDescriptionParameter typeString转载 2011-10-09 11:24:38 · 2094 阅读 · 0 评论 -
Oracle ADDM 自动诊断监视工具 介绍
Oracle AWR 介绍(AWR -- Automatic Workload Repository)http://blog.csdn.net/xujinyang/article/details/6830369 一. ADDM概述 ADDM(Automatic Database Diagnostic Monitor) 是植入Oracle数据库的一个自诊断引擎.ADD转载 2011-11-29 11:30:50 · 828 阅读 · 0 评论 -
Oracle 10G 新特性—ADDM和查询优化建议器
利用ADDM解决性能问题从最终权威那获得SQL调优的帮助:Oracle数据库本身!通过使用SQL profiles来确定查询行为、学习如何使用ADDM快速和轻松地解决普通的性能问题。作为一个高级DBA,你当然不愿总是被调优某条SQL语句这种杂事缠身。在10g中,你有了自动数据库诊断监视器(Automatic Database Diagnostic Monitor ADDM),他是一个不原创 2011-11-29 13:50:27 · 948 阅读 · 0 评论 -
使用Oracle sql_trace 工具
前言: sql_trace 是我在工作中经常要用到的调优工具,相比较statspack 我更愿意用这个工具。 因为数据库慢原因的85%以上是由于sql问题造成的,statspack没有sql的执行计划。显示没有它直观,方便,对想要针对性不强, 1,介绍数据库调优需要经常会用到的工具,可以很精确地跟抓取相关session正在运行的sql。再通过tkprof分析出来sql的执行计划等转载 2013-04-19 13:38:48 · 1910 阅读 · 0 评论 -
oracle sql的跟踪与Tkprof工具
sql跟踪方法介绍 一、sql_trace的介绍--打开trace文件设置,把sql trace设置为true,就会在udump目录中增加一个trc文件。alter session set sql_trace=true;show parameter sql_trace;(select * from v$parameter where name='sql_trace';)修改后不生效呢?show p原创 2013-04-19 13:23:33 · 3047 阅读 · 0 评论 -
根据top进程抓取oracle数据库耗费资源的sql语句
oracle数据库连接业务系统,而有些sql语句的执行严重影响了oracle的性能,就如同mysql的慢查询一样,mysql可以开启慢查询日志定位这些造成数据库性能下降的语句,而oracle同样可以做到,而且有过之而无不及。 下面举例说明 首先用root用户登陆核心应用系统,su - oracle 执行命令 topas 可以查看到如下信息:解释三个地方1.Idle%:是cp转载 2013-04-19 11:34:08 · 2563 阅读 · 0 评论 -
查询oracle比较慢的session和sql
--查询最慢的sqlselect * from (select parsing_user_id,executions,sortscommand_type,disk_reads,sql_text from v$sqlarea order by disk_reads desc) where rownum --查询对应sessionselect SE.SID,SE.SERIAL#,PR.SPID,SE原创 2013-04-19 11:20:43 · 2251 阅读 · 0 评论 -
Oracle中加速索引创建或重建的方法
简单测试过,创建25g大小的索引,普通pc机不做任何优化大约要1个小时,优化后35分钟完成。因为之前经常有业务人员问我怎么加速索引创建或重建,所以萌发了把能优化的选项集中在一个脚本里的想法,但也仅是指导思想(绝大多数场景应当是有效的)。以上主要优化的几点:1.普通多块读和排序多块读的大小2.直接路径IO的大小,10351 event level 1283.内存排序空间的大小,10g中存在bug需要转载 2013-04-26 15:03:20 · 2094 阅读 · 0 评论 -
使用 Tkprof 分析 ORACLE 跟踪文件
Tkprof是一个用于分析Oracle跟踪文件并且产生一个更加清晰合理的输出结果的可执行工具。如果一个系统的执行效率比较低,一个比较好的方法是通过跟踪用户的会话并且使用Tkprof工具使用排序功能格式化输出,从而找出有问题的SQL语句。一. TKPROF 命令语法:TKPROF filename1, filename2 [ SORT = [ opion][,option] ]转载 2011-09-28 12:47:01 · 850 阅读 · 0 评论 -
在Oracle中如何调整 I/O 相关的等待
本文主要介绍的是在出现了I/O竞争等待的时候如何去优化Oracle数据库。对Oracle数据库进行调整优化,基本上最终都可以归结到I/O调整上,因此,了解如何来优化Oracle数据库的I/O对于一个DBA来说就显得至关重要了。 一、 Oracle数据库I/O相关竞争等待简介当Oracle数据库出现I/O相关的竞争等待的时候,一般来说都会引起Oracle数据库的性能低下,发现数据转载 2011-12-23 13:26:30 · 764 阅读 · 0 评论 -
关于Oracle数据库中行迁移/行链接的问题
一、 行迁移/行链接的简介在实际的工作中我们经常会碰到一些Oracle数据库性能较低的问题,当然,引起Oracle数据库性能较低的原因是多方面的,我们能够通过一些正确的设计和诊断来尽量的避免一些Oracle数据库性能不好,Row Migration (行迁移) & Row Chaining (行链接)就是其中我们可以尽量避免的引起Oracle数据库性能低下的潜在转载 2011-12-23 13:22:51 · 789 阅读 · 0 评论 -
如何检查GATHER_STATS_JOB任务的执行情况
GATHER_STATS_JOB是10g开始引入的自动统计数据收集功能的重要组成部分,但是这个定时任务带来的问题也是较多的,应当根据应用的具体情况进行定制,通过DBA_SCHEDULER_JOBS可以查询JOB的执行情况:SQL> col job_name for a20SQL> col owner for a5SQL> col last_start_date for a36转载 2011-12-23 14:16:10 · 2597 阅读 · 0 评论 -
Oracle中 HWM与数据库性能的探讨
本文讨论的是oracle中关于table的HWM的内容,主要包括这样几个内容:1. 什么是HWM?2. HWM是如何移动的。3. HWM对于性能的影响4. 何时应该降低以及如何降低HWM5. 其他一些影响HWM的操作除了特殊注明,本章内容所有的实验都基于:win2000,oracle9201,bolcksize 8K的实验环境。 一、什转载 2011-12-23 13:24:40 · 978 阅读 · 0 评论 -
大表海量数据的转移及索引创建的记录
为了减少对于生产环境的影响,我们将大表的数据分配迁移到测试机上进行处理,然后在转移回生产库。这将极大的减少对于生产库的影响和冲击,以下是略微记录一下这些转移处理的时间。使用如下命令来导入一个分区的数据:nohup time imp sms/sms file=smsmg_p1.dmp fromuser=sms touser=sms buffer=500000000 commit=ye转载 2011-12-23 12:54:19 · 648 阅读 · 0 评论 -
Oracle的表空间的存储管理与优化技术
概述1、 描述数据库的逻辑存储结构----表空间(TABLESPACE)2、 描述字典管理表空间(DMT)的特性以及相应缺点3、 描述字典管理表空间的优化方法4、 描述本地管理表空间(LMT)的特性以及相应优点5、 描述9i新的表空间类型以及相应优化6、 描述段自动管理表空间的特点7、 描述10g新的表空间的特点及相应优化一、表空间的作用与分类转载 2011-12-23 13:12:29 · 1073 阅读 · 0 评论 -
Oracle 判断 并 手动收集 统计信息 脚本
一. 说明 在之前的blog: Oracle Statistic 统计信息 小结 http://blog.csdn.net/xujinyang/article/details/6881672 里对统计信息的收集有说明, Oracle 的Automatic Statistics Gathering 是通过S转载 2011-12-21 11:31:55 · 905 阅读 · 0 评论 -
Oracle 分析及动态采样
之前在说Oracle Optimizer中的CBO时讲到,当表没有做分析的时候,Oracle会使用动态采样来收集统计信息。获取准确的段对象(表,表分区,索引等)的分析数据,是CBO存在的基石,CBO的机制就是收集尽可能多的对象信息和系统信息,通过对这些信息进行计算,分析,评估,最终得出一个成本最低的执行计划。所以对于CBO,数据段的分析就非常重要。 Oracle Optimizer C转载 2011-12-21 11:37:25 · 918 阅读 · 0 评论 -
dba_tables 和 dba_segments 表中 blocks 的区别
创建测试表:SQL> create table t5(id int);表已创建。SQL> insert into t5 values(1);已创建 1 行。SQL> insert into t5 values(2);已创建 1 行。SQL> insert into t5 values(3);已创建 1 行。SQL> insert into t5 values转载 2011-09-28 12:03:51 · 669 阅读 · 0 评论 -
Oracle 索引的维护
一.查看系统表中的用户索引在Oracle中,SYSTEM表是安装数据库时自动建立的,它包含数据库的全部数据字典,存储过程、包、函数和触发器的定义以及系统回滚段。一般来说,应该尽量避免在SYSTEM表中存储非SYSTEM用户的对象。因为这样会带来数据库维护和管理的很多问题。一旦SYSTEM表损坏了,只能重新生成数据库。我们可以用下面的语句来检查在SYSTEM表内有没有其他用户的索引存在。转载 2011-09-28 12:09:20 · 972 阅读 · 0 评论 -
Buffer Cache 原理
Buffer Cache原理 我们在监控等待事件,查看AWR,ASH报表的时候经常会看到latch: cache buffers chains,有可能还会看到latch:cache buffers lru chain这些等待事件,对于cache buff转载 2011-12-02 15:17:40 · 718 阅读 · 0 评论 -
Oracle HANGANALYZE 功能诊断 DB hanging
Oracle 数据库可能因为hang住而产生严重的性能问题,而通过HANGANALYZE 功能产生的日志可以帮助我们快速的定位是否是2个或者多个进程死锁了,有多少进程受到影响。 从而帮助我们诊断出数据库的问题。 一. HANGANALYZE 的2种使用方式:(1) The “HANGANALYZE” command is available since Oracle Release转载 2011-10-10 10:08:50 · 1445 阅读 · 0 评论 -
Oracle CBO 与 RBO
Oracle的优化器有两种优化方式: 基于规则的优化方式:Rule-Based Optimization(RBO)基于成本或者统计信息的优化方式(Cost-Based Optimization:CBO) RBO方式:优化器在分析SQL语句时,所遵循的是Oracle内部预定的一些规则。比如我们常见的,当一个where子句中的一列有索引时去走索引。转载 2011-10-17 17:50:47 · 859 阅读 · 0 评论 -
Oracle latch free 等待事件 说明
一. Latch 说明有关Latch,在我之前的Blog里也有一些说明: 锁 死锁 阻塞 Latch 等待 详解 http://blog.csdn.net/xujinyang/article/details/6822936 Latch是一种轻量级的锁,是一种低级排队(串行)机制。一般来说,latch由三种内存元素组成:pid(进程id),转载 2011-09-28 10:39:51 · 750 阅读 · 0 评论