oracle性能调优-管理oracle日志之Oracle日志运行机制

合集下载

oracle 归档日志解析

oracle 归档日志解析

oracle 归档日志解析摘要:一、归档日志概述二、归档日志的作用三、归档日志的解析方法四、归档日志解析的应用场景五、总结与建议正文:随着大数据时代的到来,Oracle 数据库归档日志在各行各业中发挥着越来越重要的作用。

本文将对归档日志进行简要概述,分析其作用,介绍解析方法,并讨论应用场景。

最后给出总结与建议。

一、归档日志概述Oracle 归档日志(Archive Log)是一种用于记录数据库事务日志的技术。

它可以将数据库中的更改操作(如插入、更新和删除)记录下来,以便在出现故障时恢复数据。

归档日志采用增量方式记录,即每次更改操作后,日志文件会逐步变大。

二、归档日志的作用1.数据恢复:归档日志可以在数据库发生故障时,用于恢复数据至故障发生前的状态。

2.数据审计:归档日志可以记录所有对数据库的更改操作,方便审计人员追溯和分析数据变更原因。

3.性能优化:通过分析归档日志,可以找出数据库性能瓶颈,为优化数据库性能提供依据。

三、归档日志解析方法1.手工解析:通过编写SQL 语句或使用第三方工具,查询归档日志文件内容,分析日志中的数据。

2.使用Oracle 提供的事件解析工具:如DBMS_LOGSTD.REPORT 等,可以方便地生成归档日志的报表和统计数据。

3.使用第三方归档日志分析工具:如Oracle 的Partner 产品OraInsight 等,可以提供更丰富的归档日志分析功能。

四、归档日志解析的应用场景1.数据库故障排查:通过分析归档日志,可以找出导致数据库故障的原因,快速恢复业务。

2.性能监控与优化:分析归档日志中的SQL 语句执行情况,找出性能瓶颈,优化数据库性能。

3.数据审计与追溯:归档日志可以记录所有数据变更操作,方便审计人员分析和追溯数据变更原因。

4.数据库安全分析:通过分析归档日志,可以监控数据库访问权限和操作,提高数据库安全。

五、总结与建议归档日志在数据库管理中具有重要意义。

对于数据库管理员而言,应充分利用归档日志进行故障排查、性能优化和数据审计等工作。

oracle数据库性能调优

oracle数据库性能调优

oracle数据库性能调优⼀:注意WHERE⼦句中的连接顺序:ORACLE采⽤⾃下⽽上的顺序解析WHERE⼦句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最⼤数量记录的条件必须写在WHERE⼦句的末尾.尤其是“主键ID=?”这样的条件。

⼆: SELECT⼦句中避免使⽤ ‘ * ‘:ORACLE在解析的过程中, 会将'*' 依次转换成所有的列名, 这个⼯作是通过查询数据字典完成的, 这意味着将耗费更多的时间。

简单地讲,语句执⾏的时间越短越好(尤其对于系统的终端⽤户来说)。

⽽对于查询语句,由于全表扫描读取的数据多,尤其是对于⼤型表不仅查询速度慢,⽽且对磁盘IO造成⼤的压⼒,通常都要避免,⽽避免的⽅式通常是使⽤索引Index。

三:使⽤索引的优势与代价。

优势:1)索引是表的⼀个概念部分,⽤来提⾼检索数据的效率,ORACLE使⽤了⼀个复杂的⾃平衡B-tree结构. 通常,通过索引查询数据⽐全表扫描要快. 当ORACLE找出执⾏查询和Update语句的最佳路径时, ORACLE优化器将使⽤索引. 同样在联结多个表时使⽤索引也可以提⾼效率. 2)另⼀个使⽤索引的好处是,它提供了主键(primary key)的唯⼀性验证.。

那些LONG或LONG RAW数据类型, 你可以索引⼏乎所有的列. 通常, 在⼤型表中使⽤索引特别有效. 当然,你也会发现, 在扫描⼩表时,使⽤索引同样能提⾼效率.代价:虽然使⽤索引能得到查询效率的提⾼,但是我们也必须注意到它的代价. 索引需要空间来存储,也需要定期维护, 每当有记录在表中增减或索引列被修改时, 索引本⾝也会被修改. 这意味着每条记录的INSERT , DELETE , UPDATE将为此多付出4 , 5 次的磁盘I/O . 因为索引需要额外的存储空间和处理,那些不必要的索引反⽽会使查询反应时间变慢.。

⽽且表越⼤,影响越严重。

使⽤索引需要注意的地⽅:1、避免在索引列上使⽤NOT , 我们要避免在索引列上使⽤NOT, NOT会产⽣在和在索引列上使⽤函数相同的影响. 当ORACLE”遇到”NOT,他就会停⽌使⽤索引转⽽执⾏全表扫描.2、避免在索引列上使⽤计算.WHERE⼦句中,如果索引列是函数的⼀部分.优化器将不使⽤索引⽽使⽤全表扫描.举例:代码如下:低效:SELECT … FROM DEPT WHERE SAL * 12 > 25000;⾼效:SELECT … FROM DEPT WHERE SAL > 25000/12;3、避免在索引列上使⽤IS NULL和IS NOT NULL避免在索引中使⽤任何可以为空的列,ORACLE性能上将⽆法使⽤该索引.对于单列索引,如果列包含空值,索引中将不存在此记录. 对于复合索引,如果每个列都为空,索引中同样不存在此记录. 如果⾄少有⼀个列不为空,则记录存在于索引中.举例: 如果唯⼀性索引建⽴在表的A列和B列上, 并且表中存在⼀条记录的A,B值为(123,null) , ORACLE将不接受下⼀条具有相同A,B值(123,null)的记录(插⼊). 然⽽如果所有的索引列都为空,ORACLE将认为整个键值为空⽽空不等于空. 因此你可以插⼊1000 条具有相同键值的记录,当然它们都是空! 因为空值不存在于索引列中,所以WHERE⼦句中对索引列进⾏空值⽐较将使ORACLE停⽤该索引.代码如下:低效:(索引失效) SELECT … FROM DEPARTMENT WHERE DEPT_CODE IS NOT NULL;⾼效:(索引有效) SELECT … FROM DEPARTMENT WHERE DEPT_CODE >=0;4、注意通配符%的影响使⽤通配符的情况下Oracle可能会停⽤该索引。

深入分析Oracle数据库日志文件

深入分析Oracle数据库日志文件

作为Oracle DBA,我们有时候需要追踪数据误删除或用户的恶意操作情况,此时我们不仅需要查出执行这些操作的数据库账号,还需要知道操作是由哪台客户端(IP地址等)发出的。

针对这些问题,一个最有效实用而又低成本的方法就是分析Oracle数据库的日志文件。

本文将就Oracle日志分析技术做深入探讨。

一、如何分析即LogMiner解释从目前来看,分析Oracle日志的唯一方法就是使用Oracle公司提供的LogMiner来进行,Oracle数据库的所有更改都记录在日志中,但是原始的日志信息我们根本无法看懂,而LogMiner就是让我们看懂日志信息的工具。

从这一点上看,它和tkprof差不多,一个是用来分析日志信息,一个则是格式化跟踪文件。

通过对日志的分析我们可以实现下面的目的:1、查明数据库的逻辑更改;2、侦察并更正用户的误操作;3、执行事后审计;4、执行变化分析。

不仅如此,日志中记录的信息还包括:数据库的更改历史、更改类型(INSERT、UPDATE、DELETE、DDL等)、更改对应的SCN号、以及执行这些操作的用户信息等,LogMiner在分析日志时,将重构等价的SQL语句和UNDO语句(分别记录在V$LOGMNR_CONTENTS视图的SQL_REDO和SQL_UNDO中)。

这里需要注意的是等价语句,而并非原始SQL语句,例如:我们最初执行的是“delete a where c1 <>'cyx';”,而LogMiner重构的是等价的6条DELETE语句。

所以我们应该意识到V$LOGMNR_CONTENTS视图中显示的并非是原版的现实,从数据库角度来讲这是很容易理解的,它记录的是元操作,因为同样是“delete a where c1 <>'cyx';”语句,在不同的环境中,实际删除的记录数可能各不相同,因此记录这样的语句实际上并没有什么实际意义,LogMiner重构的是在实际情况下转化成元操作的多个单条语句。

oracle之使用OracleDeveloper对SQL进行简单调优(二)

oracle之使用OracleDeveloper对SQL进行简单调优(二)

oracle 之使⽤OracleDeveloper 对SQL 进⾏简单调优(⼆)使⽤Oracle Developer 对SQL 进⾏简单进⾏简单调优调优Oracle Developer 是Oracle 提供的免费数据库连接⼯具,⾏内数据中⼼⽣产操作间默认使⽤该⼯具执⾏SQL ,如遇到现场需要对⽣产SQL 进⾏优化查询的需要熟悉Oracle Developer 的基本使⽤,本⽂结合Oracle Developer ⼯具展⽰如何查看SQL ,如果进⾏基本优化。

⼀、 Oracle Developer 和 Oracle 命令1. Oracle DeveloperSQL 解释Oracle Developer ⼯具⾥⾯的“解释”功能只针对当前的sql 进⾏了⼀个预估的资源消耗以及执⾏路径,参考数据是系统⾥存在的表统计信息。

结果显⽰与实际执⾏可能存在差异,且表的详细信息,在其它功能下显⽰更为详细。

SQL 优化指导Oracle Developer ⼯具⾥⾯的sql 优化指导功能,对要优化分析的sql 进⾏了真实的执⾏,该功能展⽰的结果,包含了部分解释功能的结果,也就是根据表⾥⾯的统计信息预估的执⾏计划;它⼀般还包含优化建议;另外还展⽰了该sql 的实际执⾏计划和并⾏执⾏时的sql 性能结果。

SQL 跟踪Oracle Developer ⼯具⾥⾯的sql 跟踪功能,对要优化分析的sql 进⾏了实际的执⾏,详细的展⽰了执⾏过程中对 索引 CPU 缓存IO 和块的改变情况,也列出了执⾏过程中涉及的数据量和资源消耗;此功能包含了sql 解释中的表统计信息。

2. Oracle 命令autotraceOracle 命令 autotrace 是分析sql 的真实执⾏计划,查看sql 执⾏效率的⼀个⽐较简单⼜⽅便的⼯具。

它实际上是对sql 实际执⾏过程信息的⼀个收集和信息统计。

set autotrace on 开启autotrace ,后⾯执⾏sql 语句会⾃动显⽰sql 执⾏结果和跟踪信息。

oracle enterprise manager agent日志-概述说明以及解释

oracle enterprise manager agent日志-概述说明以及解释

oracle enterprise manager agent日志-概述说明以及解释1.引言1.1 概述Oracle Enterprise Manager Agent是一种用于监控和管理Oracle 数据库的工具。

在使用该工具时,我们经常会涉及到Oracle Enterprise Manager Agent的日志记录。

本文将重点讨论Oracle Enterprise Manager Agent日志的相关内容。

Oracle Enterprise Manager Agent日志是指在Agent运行过程中所生成的日志文件。

它记录了Agent的各种运行状态、事件和错误信息,为我们提供了对Agent运行情况进行监控和故障排查的重要依据。

本文将对Oracle Enterprise Manager Agent日志的作用、内容和格式进行详细介绍。

我们将探讨Agent日志中包含的各种信息,如Agent 的启动和停止事件、性能数据、错误消息等,并对Agent日志的格式进行解读。

同时,本文还将强调Oracle Enterprise Manager Agent日志的重要性。

Agent日志不仅能帮助我们及时发现和解决问题,还能提供有关数据库性能和运行状况的有价值的数据,并为我们进行容量规划和性能调优提供指导。

最后,本文还将提供一些有关如何有效管理和分析Oracle Enterprise Manager Agent日志的建议。

通过合理设置日志级别、定期归档和备份日志文件,我们可以更好地管理Agent日志,并提高故障排查和系统性能优化的效率。

在结束语中,我们将强调Oracle Enterprise Manager Agent日志在数据库管理中的重要性,并鼓励读者在实际工作中积极运用Agent日志来监控数据库的运行状况,并及时采取相应措施来确保数据库的稳定性和安全性。

1.2 文章结构本文主要围绕着Oracle Enterprise Manager Agent日志展开,旨在深入探讨该日志的概念、作用和管理方法。

dbvisualizer oracle参数-概述说明以及解释

dbvisualizer oracle参数-概述说明以及解释

dbvisualizer oracle参数-概述说明以及解释1.引言1.1 概述概述:在数据库管理工具中,dbvisualizer是一个功能强大的工具,可用于管理多种数据库,包括Oracle数据库。

在使用dbvisualizer连接Oracle 数据库时,设置正确的参数是非常重要的,可以有效提高数据库的性能和效率。

本文将重点讨论关于在dbvisualizer中设置Oracle参数的相关知识,并介绍如何优化这些参数以达到更好的数据库管理效果。

通过本文的学习,读者可以更好地了解如何在dbvisualizer中管理Oracle数据库,并掌握优化参数的方法,从而提升数据库的性能和管理效率。

1.2 文章结构文章结构部分主要包括引言、正文和结论三个部分。

- 引言部分介绍了文章的背景和意义,概述了文章要探讨的内容,说明了文章结构和目的。

- 正文部分详细介绍了dbvisualizer的简介,以及如何设置和优化Oracle参数的方法。

- 结论部分对文章进行总结,强调文章的实践意义和展望未来可能的发展方向。

1.3 目的:本文旨在介绍在使用dbvisualizer过程中如何设置和优化Oracle参数。

通过深入了解Oracle参数的设置和优化方法,读者可以更好地利用dbvisualizer工具,提高数据库性能和效率。

同时,希望读者能够通过本文了解到如何根据自身需求和环境调整Oracle参数,以达到最佳的数据库运行状态。

最终目的是帮助读者更好地应用dbvisualizer工具,并有效地管理和优化Oracle数据库。

2.正文2.1 dbvisualizer简介dbvisualizer是一款功能强大的数据库管理工具,提供了跨平台的数据库管理解决方案。

该工具支持多种数据库系统,包括Oracle、MySQL、SQL Server、PostgreSQL等,能够帮助用户方便地管理和操作数据库。

dbvisualizer具有直观易用的界面,用户可以通过简单的操作实现数据库的连接、查询、数据编辑等功能。

论Oracle数据库的性能优化问题

论Oracle数据库的性能优化问题
的性能优化问题
马 红 云
( 中国民用航 空大连 空中交通管理站 辽宁大连 1 1 6 0 3 3 )
摘要 : Or a c l e 数 据库作 为 目前适 用性 最好 的关 系数据库 引擎之 一, 能够 支持 各种业 务形式 、 处理各 种复 杂事务 , 得 到极 为广泛 的应 用。
1对数据库服务器 内存分配的调整
由于对服务器 内存参数 的调整对o r a c l e 的性能影响显著 , 它成 为O r a c l e  ̄据库性能调 优的首选对象。 服务器 内存参数 的调整主要 是对数据库系统全局 区的调整 , 系统全局 区包括共享池、 数据缓冲 区、 日志缓冲区 。 其 中最主要的是对数据缓冲区和共享池 的参数调
3 . 2表 的分 区和 并行 技 术
如果必须要在数据库运行特别耗时的操作。 应尽量地把这样的 操作分解 , 严格 限制操作所涉及的记录数 , 并设法使操作并行 , 充分 地提高 执行效率 。 ( 1 ) 使用分区 分区技术有两个潜在的好处: 提高查询性能和提 高数据 库可用性 。 数据库查询 时, 优化器知道那些分区包含查询所 要的数据 。 而其它分 区数据将不会被读取 , 从而查询 任务将更快完 成。 许 多 管 理 工 作 可 在 只 一个 分 区上 进 行 , 而 不 影 响 其它 分 区 的数 据。 例 如 可 以选 择 只 删 除一 个 表 分 区 中 的数 据 。 可对 表 分 区进 行 再 分割 , 把一个表分区迁移到不同的表 空间上 。 可只对 一个表分 区进 行分析 统计 。 表分区的这 些特性 。 ( 2 ) 使用并行 。 Or a c l e 数据库 中几乎 所有的操作都 支持 并行 特 性, 包括查询、 插入 、 和数据加载。 并行选项可 以使多个处理器 同时 处理一条命令 , 在创建库数据库对象 时可以设定 并行参数 , 也可在 查询语句 中重新设 。

ORACLE数据库性能的调整

ORACLE数据库性能的调整

ORACLE数据库性能的调整摘要由于oracle具备功能和灵活性突出的优越性,因此它是一个功能极其强大和灵活关系型的数据系统。

在数据库的应用类型上是较为复杂的,不同类型的应用对其系统的要求也是不同的,所以为了能够满足不同类型的应用系统,就必须对系统性能进行定期的诊断和调整,以此来提高系统的运行效率。

关键词 oracle;数据库;优化和调整中图分类号tp311 文献标识码a 文章编号1674-6708(2010)22-0187-02随着数据库在信息领域的不断推广,数据库产品也逐渐增多,其中oracle数据库产品在整个数据库产品的应用中占有较为主要的部分,接近1/2,而且还有不断上升的趋势。

因此,对于oracle数据库性能的调整和优化问题也是人们所关注的问题,本文就oracle数据库性能的调整进行了相应的探讨。

1 性能调整与优化概述目前,性能调整作为一项活动在进行,活动可以通过优化应用程序、修改系统参数和改变系统配置来有效的改变系统的性能。

其中性能的调整主要包括了对硬件配置、操作系统和数据库管理系统的配置的调整,并且对所访问的组件的应用进行详细的分析和优化。

性能优化主要是指具备目的性的对所需调整的组件进行有效的改善,使数据库的吞吐量逐渐变大,所对应的响应时间逐渐达到最小化。

对于数据库性能的调整和优化来说,要尽可能的减少磁盘访问,从中获取所需的数据,数据库性能的调整和优化在一定程度上说是相互循环的,想要性能达到相应的优化目的,就必须进行适当的性能调整,最后再查看优化的结果,通过这种反复的检查,最终达到较为满意的结果。

2 数据库系统性能评价指标2.1 系统吞吐量系统的吞吐量是指在单位时间内数据库所完成的sql语句的数目,这主要是以每秒钟的事务量来进行表示。

想要有效的提高系统的吞吐量,就必须通过减少服务时间,并在相同的资源环境内做更加多的工作,或者减少总的响应时间,从而使工作能够做的更加快。

2.2 用户响应时间用户的响应时间主要是指用户在提交sql语句以后来获取相应的结果集的第一行所需要的时间,并且根据应用做出相应的反应时间,这个时间一般都是使用毫秒和秒来进行表示。

oracle性能调优汇总

oracle性能调优汇总

性能调优---------------------方法:一、检查日志是否有错误二、检查参数是否设置正确三、检查系统IO、CPU、内存等利用率,查看哪些占用较高四、检查哪些SQL语句大量占用IO或CPU权衡性能与安全的方面:一、多个控制文件二、一个日志文件组中有多个日志文件三、频繁的执行检查点四、备份数据文件五、频繁的归档六、块检查七、同时执行操作与统计性能调优工具:查看ALTER.LOG中的信息:1、用/ORA- 能查找文件中的错误信息2、要想让ALTER.LOG文件中产生检查点开始与结束信息,得修改参数LOG_CHECKPOINTS_TO_ALERT,将之修改为TRUE。

默认为FALSE。

SQL>ALTER SYSTEM SET LOG_CHECKPOINTS_TO_ALERT = TRUE SCOPE=BOTH;在用户UDUMP目录下的文件中产生监控用户执行信息:方法1、监控自己的操作。

在自己的session中设置参数,这样就能在用户udump目录下生成执行的SQL语句信息SQL>ALTER SESSION SET SQL_TRACE=TRUE;在pl/sql或者sqlplus中,打开一个sql_window。

(1)先运行:alter session set sql_trace=true;(2)再运行你那个返回结果不正确的SQL(3)再运行:alter session set sql_trace=false;(4)马上登陆到机器上,到$ORACLE_BASE/admin/sid/udump目录下。

(5)找到刚生成的.trc文件(假设文件名是 xxx.trc),执行命令转储跟踪文件:tkprof xxx.trc aa.txt。

查看aa.txt文件。

这个文件里面有执行计划。

看看执行计划每一步返回的结果集记录数是不是正确。

方法2、SYS用户监控别的用户执行情况方法3、对所有SESSION进行监控SQL>ALTER SESSION SET SQL_TRACE=TURE;安装STATSPACK一、创建表空间,最少100M二、安装在安装时默认创建了一个用户PERFSTAT,所以密码也可以输入这个选择要将快照存放于哪个表空间使用STATSPACK手动执行生成一次快照,间隔一般为10几分钟为益,中间不要有停机。

oracle_sql操作日志_概述及解释说明

oracle_sql操作日志_概述及解释说明

oracle sql操作日志概述及解释说明1. 引言1.1 概述Oracle SQL操作日志是一种记录数据库系统中执行的SQL语句细节和相关信息的功能。

通过启用和配置SQL操作日志,我们可以跟踪和监控数据库的操作行为,包括查询、更新和删除等操作。

这对于系统维护人员和开发人员来说非常重要,因为它们可以帮助我们理解数据库系统中发生的事情,并且在故障排查和性能优化方面提供有价值的信息。

1.2 文章结构本文将从多个方面详细介绍Oracle SQL操作日志。

首先,我们将解释SQL操作日志的含义,并阐明其在数据库系统中的作用。

接着,我们将讨论开启和配置SQL操作日志功能的方法。

然后,我们将深入探讨SQL操作日志中涉及的关键要点,如记录SQL语句执行细节的作用、日志文件保存路径和格式说明,以及使用SQL操作日志进行故障排查和性能优化的方法。

最后,在结论部分,我们将总结文章主要内容及观点,并对Oracle SQL操作日志未来的发展趋势进行展望。

1.3 目的本文旨在向读者提供关于Oracle SQL操作日志的全面概述及解释说明。

通过阅读本文,读者将了解到SQL操作日志的重要性和作用,以及如何开启和配置该功能。

此外,读者还将熟悉SQL操作日志中涉及的关键要点,并学习到使用SQL 操作日志进行故障排查和性能优化的方法。

最终,读者将对Oracle SQL操作日志有一个清晰的认识,并能够在实际工作中灵活应用该功能。

2. 正文正文部分将深入探讨Oracle SQL操作日志的概念、功能以及使用方法。

本节将具体介绍SQL操作日志的基本原理和应用场景。

2.1 Oracle SQL操作日志的基本原理在Oracle数据库中,SQL操作日志被用于记录对数据库进行的每个操作。

这些操作包括查询、更新、插入和删除等。

当用户执行一个SQL语句时,Oracle会自动将该SQL语句以及其执行结果等相关信息记录到日志文件中。

2.2 Oracle SQL操作日志的主要作用SQL操作日志起着重要的作用,尤其在故障排查和性能优化方面。

Oracle性能调优之Oracle的FreeList和HWM

Oracle性能调优之Oracle的FreeList和HWM

Oracle性能调优之FreeList和HWM海量Oracle资料下载,请收藏在本文中,我们将以FreeList为线索对Oracle的存储管理的原理进行较深入的讲解,涉及Oracle段区块管理的原理,FreeList算法等。

而与FreeList 密切相关的一个重用特性HWM,与sql性能密切相关,本文也作了原理分析介绍。

在原理探讨的基础上,介绍了常用的存储参数分析方法,并对所涉及的存储优化、HWM的优化和Freelist竞争优化作了详细的说明。

缩略语如下:ASSM:auto segement space managementHWM:high water markDBA:data block addressOLTP:online transaction processOPS:oracle parallel server1.前言Oracle的空间管理和存储参数管理是Oracle管理及优化的重要部分。

FreeList作为Oracle底层存储参数中的核心参数,其行为方式对Oracle的存储管理及性能优化有重大影响,而现有的Oracle文档对此方面的内容比较缺乏。

虽然Oracle 9i已出现了ASSM,但是作为深入调优对FreeList认识仍是必要的。

这些原理分析和性能优化都建立在探讨的基础上,限于篇幅和本人经验可能存在局限、偏差或谬误。

为了准确文中部分结构和字段的说明直接用英文描述。

限于篇幅本文不对同样很重要的block结构作更深入的讨论,对OPS性能有重要影响的free list group本文也未提及,因此本文在单一free list group 下讨论。

对于block的深入讨论、free list group的介绍与优化以及PCTUSED 和PCTFREE等重要参数的优化请参见参考文献和资料。

2.原理探讨FreeList作为一个Oracle存储管理的核心参数。

其行为方式由Oralce内部控制,我们一般不需要掌握和控制。

oracle lgwr 工作原理

oracle lgwr 工作原理

oracle lgwr 工作原理Oracle LGWR工作原理什么是Oracle LGWR?Oracle LGWR是Oracle数据库中的一个重要的后台进程,负责将缓冲区中被修改过的数据块写入到磁盘上的数据文件中。

LGWR的全称是Log Writer,它是Oracle数据库的事务日志管理器。

LGWR的作用LGWR的主要作用是通过将数据块的修改操作以日志的形式记录下来,保证数据库的一致性和持久性。

它将修改的数据块按照一定的策略写入到日志文件中,然后将日志文件写入到磁盘,从而确保即使发生宕机等异常情况,数据库也能够恢复到事务提交之前的状态。

LGWR的工作原理在Oracle数据库中,任何对数据块的修改操作都必须通过缓冲区进行。

当缓冲区中的数据块被修改后,LGWR会将这些修改操作以日志的形式记录到日志缓冲区(Redo Log Buffer)中,这个过程被称为日志写入(Log Write)。

日志写入是一个高效的过程,因为它使用的是异步写入的方式。

即LGWR不会立即将日志写入到磁盘上的日志文件中,而是先将日志写入到日志缓冲区中,然后由后台进程进行周期性的批量写入。

日志刷新(Log Flush)日志刷新是指将日志缓冲区中的日志写入到磁盘上的日志文件中。

当满足以下条件时,日志缓冲区中的日志会被刷新到磁盘中:•当前活动的日志文件已满,需要切换到下一个日志文件时;•在提交事务时,需要将事务日志记录持久化到磁盘上。

LGWR的性能调优为了提高LGWR的性能,可以通过一些参数的调整进行优化。

以下是一些常用的性能调优参数:•LOG_BUFFER:确定日志缓冲区的大小,以字节为单位。

增大该值可以减少日志刷新的次数,但会增加内存的消耗。

•LOG_CHECKPOINT_INTERVAL:用于控制日志刷新的频率,单位为秒。

可以根据数据库的负载情况进行调整。

•LOG_FILE_SIZE:确定每个日志文件的大小,以字节为单位。

•MAX_LOG_FILES:指定日志文件的最大数量。

Oracle数据库性能优化考试

Oracle数据库性能优化考试

Oracle数据库性能优化考试(答案见尾页)一、选择题1. Oracle数据库性能优化中,哪种方法可以用来分析SQL语句的性能?A. 使用EXPLAIN计划B. 使用SQL Trace工具C. 使用Automatic Workload Repository (AWR)D. 使用Real-Time Monitor (RTM)2. 在Oracle数据库中,如何调整初始化参数以提高查询性能?A. 调整UNDO表空间的大小B. 调整Redo日志文件的大小C. 调整SGA的大小D. 调整PGA的大小3. 在Oracle数据库中,哪种分区策略可以用来提高查询性能?A. 分区索引B. 哈希分区C.范围分区D. 列表分区4. Oracle数据库中的序列是什么?它有什么作用?A. 序列是一组数字,用于生成唯一值B. 序列是Oracle数据库中的一种数据对象,用于生成唯一值C. 序列可以用于生成主键值D. 序列可以用于限制查询结果的数量5. 在Oracle数据库中,如何使用SQLLoader工具将外部文件中的数据导入数据库?A. 使用BULK COLLECT和FORALL语法B. 使用OPEN和FETCH语法C. 使用COPY和PUMP语法D. 使用GET和PUT语法6. 在Oracle数据库中,如何使用保留锁来保护数据一致性和完整性?A. 使用GRANT和REVOKE语句B. 使用ALTER TABLE语句C. 使用LOCK TABLES和UNLOCK TABLES语句D. 使用ROWID和DBMS_ROWID包7. 在Oracle数据库中,如何使用SQL Developer工具进行性能调试?A. 使用SQL*Plus工具B. 使用JDBC连接C. 使用SQL Developer的Performance ToolsD. 使用SQL Developer的调试器8. 在Oracle数据库中,如何优化分页查询的性能?A. 使用LIMIT子句B. 使用ROW_NUMBER()窗口函数C. 使用ORDER BY子句D. 使用GROUP BY子句9. 在Oracle数据库中,如何调整内存相关的参数以提高数据库性能?A. 调整SHARED_POOL_SIZE参数B. 调整SESSIONS_PER_USER参数C. 调整CPU_COUNT参数D. 调整NETWORKS配置10. 在Oracle数据库中,如何使用STATISTICS_LEVEL参数来控制统计信息的收集?A. 设置为ALLB. 设置为TYPICALC. 设置为BasicD. 不设置此参数11. 在Oracle数据库中,如何调整索引以提高查询性能?A. 创建复合索引B. 删除不必要的索引C. 禁用索引D. 使用Index Organized Tables (IOTs)12. Oracle数据库中的AWR报告提供了关于哪些组件的性能信息的?A. SQL语句B. 索引C. 表D. 磁盘I/O13. 在Oracle数据库中,如何使用SQL调优工具来分析SQL性能?A. 使用SQL TraceB. 使用Automatic Workload Repository (AWR)C. 使用SQL Performance AnalyzerD. 使用Explain Plan14. 在Oracle数据库中,如何调整内存参数以提高性能?A. 调整SGA大小B. 调整PGA大小C. 调整Redo日志文件大小D. 调整数据文件大小15. 在Oracle数据库中,如何使用DBMS_OUTPUT.PUT_LINE包来输出性能数据?A. 调用函数时直接使用DBMS_OUTPUT.PUT_LINEB. 创建一个PL/SQL过程来输出性能数据C. 使用SQL*Plus的PUT_LINE函数D. 使用Utl相传入输出16. 在Oracle数据库中,如何使用保留实例(Real Application Clusters, RAC)来提高性能?A. 配置共享服务器模式B. 配置专用服务器模式C. 配置锁内存参数D. 配置网络配置17. 在Oracle数据库中,如何使用外部脚本或程序来分析性能问题?A. 使用SQL*Loader工具B. 使用UTL_FILE包来读取外部文件C. 使用外部脚本或程序来执行性能分析D. 使用ORADEBUG命令行工具18. 在Oracle数据库中,如何调整备份和恢复策略以提高性能?A. 更改备份频率B. 减少备份的数据量C. 启用归档模式D. 优化恢复过程19. Oracle数据库性能优化中,哪项不是使用索引的目的?A. 加速查询速度B. 提高数据检索效率C. 减少I/O操作D. 增加数据库系统的复杂性20. 在Oracle数据库中,哪种类型的索引可以加速查询速度,并且减少I/O操作?A. 单索引B. 复合索引C. 局部索引D. 全局索引21. Oracle数据库中的分区策略可以用于处理哪种类型的数据?A. 大型数据集B. 小型数据集C. 高并发访问D. 数据库备份和恢复22. 在Oracle数据库中,哪项不是使用归档日志的目的?A. 提供备份和恢复功能B. 减少磁盘空间占用C. 支持读写分离架构D. 保证数据的一致性23. Oracle数据库中的表空间是用来存储哪种类型的对象?A. 索引B. 表C. 视图D. 序列24. 在Oracle数据库中,哪项不是使用联机重做日志的目的?A. 提高数据保护B. 支持故障恢复C. 记录数据更改D. 减轻数据库负载25. Oracle数据库中的锁定机制主要防止哪种类型的并发问题?A. 并发插入B. 并发更新C. 并发删除D. 并发读取26. 在Oracle数据库中,哪项不是使用分区表的优点?A. 提高查询性能B. 改善数据分布C. 增强数据管理灵活性D. 减少数据冗余27. Oracle数据库中的数据压缩技术可以用于减少哪种类型的存储成本?A. 空间B. 时间C. 资源D. 硬件28. 在Oracle数据库中,哪项不是使用数据库实例调整来提高性能的方法?A. 调整内存分配B. 调整CPU分配C. 调整网络配置D. 调整表空间大小29. Oracle数据库性能优化中,如何调整初始化参数以提高数据库性能?A. 调整UNDO表空间大小B. 调整Redo日志文件大小C. 调整数据文件的大小D. 调整表空间的读写比例30. 在Oracle数据库中,为了提高查询性能,应该:A. 创建索引B. 维护统计信息C. 优化SQL查询D. A和C31. Oracle数据库中的锁有几种类型?A. 1种B. 2种C. 3种D. 4种32. Oracle数据库中的归档模式对性能有何影响?A. 影响数据恢复B. 影响数据备份和恢复C. 影响数据库性能D. 没有任何影响33. 在Oracle数据库中,如何减少临时表的使用?A. 使用物化视图B. 使用临时表C. 优化SQL查询D. A和C34. 在Oracle数据库中,如何调整SQL执行计划?A. 使用 Explain PlanB. 使用SQL Trace工具C. 调整初始化参数D. A和B35. 在Oracle数据库中,如何优化大型查询的性能?A. 使用索引B. 分区C. 规范化数据D. A和B36. 在Oracle数据库中,如何处理慢查询?A. 定期检查慢查询日志B. 使用自动共享内存管理C. 优化SQL语句D. A和B和C37. 在Oracle数据库中,如何提高数据导入导出性能?A. 使用SQL*Loader工具B. 使用外部表C. 使用并行处理D. A和B38. Oracle数据库性能优化中,哪种方法可以用来收集和分析查询性能相关的信息?A. 使用TKPROF工具B. 执行SQL脚本C. 使用Automatic Workload Repository (AWR)D. 监控系统日志39. 在Oracle数据库中,为了提高查询性能,以下哪个策略不是常用的方法?A. 为经常访问的列创建索引B. 使用物化视图C. 优化SQL查询语句D. 增加数据库缓冲区大小40. Oracle数据库中的SGA(System Global Area)主要包括哪些组成部分?A. 数据库缓冲区(Database Buffer Cache)B. 重做日志缓冲区(Redo Log Buffer)C. 共享池(Shared Pool)D. 大小沟槽(Large Objects)41. 在Oracle数据库中,如何调整初始化参数以提高数据库性能?A. 使用ALTER SYSTEM命令B. 使用ALTER SESSION命令C. 使用TXN_TIMEOUT初始化参数D. 使用SESSIONS_PER_USER初始化参数42. 在Oracle数据库中,哪种分区策略通常用于大型数据仓库?A. 范围分区B. 列表分区C. 组合分区D. 复杂分区43. Oracle数据库中的锁有两种类型,分别是锁定和锁定。

Oracle归档模式及归档日志的操作

Oracle归档模式及归档日志的操作

ORACLE归档模式及归档日志的操 作
归档模式及归档日志基本概念
为什么要给Oracle做归档操作? Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插 入,删除,更新数据等,对这些操作都会记录在联机重做日志里。 当ORACLE数据库运行在ARCHIVELOG(归档模式)模式时,所有的事务重做日志 都将保存.这意味着对数据库进行的所有事务都留有一个备份,尽管重做日志以 循环方式工作,但在一个重做日志被覆盖前均将为其建立一个副本.在重做日志 文件复制完成之前,ORACLE数据库将停止一切新的操作,在旧的事务记录完成之 前ORACLE不对其进行覆盖.有了所有事务的副本,数据库就可以从所有类型的失 败中恢复,包括用户错误或磁盘崩溃.这是一种最安全的数据库工作方式。在实 际开发中,归档模式是符合开发的,归档模式可以提高Oracle数据库的可恢复 性,生产数据库都应该运行在此模式下,数据库使用归档方式运行时才可以进 行灾难性恢复。
LINUX系统开启归档模式
修改数据库为归档模式(需在关闭数据库后操作,操作完成后启动数据库) alter database 改为非归档,则执行: alter database noarchivelog;)
WINDOWS开启归档模式
删除归档日志释放磁盘空间
先查看归档日志状态: RMAN>list archivelog all; 手工删除归档日志文件(删除7天前的所有归档日志) RMAN>DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7'; 说明: SYSDATA-7,表明当前的系统时间7天前,before关键字表示在7天前的归档日志, 如果使用了闪回功能,也会删除闪回的数据。 同样道理,也可以删除从7天前到现在的全部日志,不过这个命令要考虑清楚, 做完这个删除,最好马上进行全备份数据库。

oracle存储过程 日志输出语法-概述说明以及解释

oracle存储过程 日志输出语法-概述说明以及解释

oracle存储过程日志输出语法-概述说明以及解释1.引言1.1 概述在撰写Oracle存储过程时,日志输出是一个非常重要的部分。

通过在存储过程中添加日志输出语句,可以帮助我们实时监控和调试代码,定位错误和异常,提高代码的可维护性和可扩展性。

因此,掌握Oracle存储过程日志输出语法是非常必要的。

本文将首先介绍存储过程的概念和作用。

存储过程是一组预定义的SQL语句集合,经过编译并存储在数据库中。

通过执行存储过程,可以实现复杂的数据处理操作,并且可以在一次调用中执行多条SQL语句。

存储过程具有很多优势,例如可以提高数据库的性能,减少网络通信的开销,保证数据的一致性和完整性,实现业务逻辑的封装和隐藏等。

其次,本文将着重介绍日志输出在存储过程中的重要性。

在开发和维护大型应用系统时,存储过程往往承担着核心的业务逻辑,处理的数据量和业务复杂度都非常大。

因此,为了方便排查和修复问题,在存储过程中添加详细的日志输出是十分必要的。

通过合理的日志输出,可以记录存储过程中每一步的执行情况,包括输入参数、输出结果、执行时间等。

这样,在遇到问题时,我们可以利用日志信息快速定位错误,并进行问题的分析和解决。

最后,本文将重点介绍Oracle存储过程日志输出的语法。

在Oracle 数据库中,我们可以使用dbms_output包提供的一系列过程和函数来实现日志输出。

这些过程和函数可以将指定的文本信息输出到控制台或者日志文件中,方便我们查看和分析。

通过使用合适的日志输出语法,我们可以按照自己的需求输出不同的日志信息,包括调试信息、错误日志、性能统计等。

总之,本文将详细介绍Oracle存储过程日志输出的相关知识和语法。

通过学习和掌握这些内容,我们可以更好地开发和维护存储过程,提高代码的质量和可维护性。

另外,本文还将强调日志输出的必要性,并提出进一步研究的方向,希望能在存储过程的开发和优化中发挥更大的作用。

文章结构是指文章所采用的组织形式和框架,包括文章的大纲、目录以及各部分的内容。

ORACLE 10g数据库性能优化与分析

ORACLE 10g数据库性能优化与分析

ORACLE 10g数据库性能优化与分析摘要:随着数据库在生活中各个领域中的广泛应用,数据库产品也层出不穷。

其中,oracle数据库产品在整个数据库产品的应用中占据50%,并且有不断上升的趋势。

可是,随着数据库数据量的增大、并发用户数量增多,系统常常出现吞吐量降低,响应时间延长等性能问题,怎样有效优化、改善数据库性能,突破系统瓶颈,是保证 oracle 数据库高效运行的基础。

oracle 数据库系统性能优化、调整是一项复杂的系统工程,贯穿于系统的整个生存周期中。

关键词:oracle数据库;性能优化;索引;sql语句中图分类号: tp311 文献标识码: a 文章编号:1009-3044(2013)13-2943-031 概述数据库优化不仅仅是dba(数据库管理员)的事情,它也是设计人员、应用开发人员必须做的事情。

有人认为,优化数据库不用着急,在系统出现宕机或者慢到无法忍受时再优化不迟。

但此时,往往无法有效的对相应的数据库进行更为有效的优化。

所以我们应当在整个数据库的生命周期中,给予不断地优化,以使数据库达到最好的性能[1]。

2 数据库系统性能评价指标2.1 系统吞吐量2.2 响应时间响应时间是,在用户提交任务要求到数据库做出回应的时间。

其实质就是,终端客户等待后台处理所花费的时间[2]。

因此响应时间优化的重要性不言而喻。

调查显示,当用户等待一项任务的响应时间超过几秒钟时,用户可能就会对此系统产生不满或者厌烦的情绪。

因此,我们必须通过优化,将响应时间降到最低。

2.3 数据库的命中率数据库命中率是数据库性能中非常重要的评价指标,包括数据库缓冲区命中率和共享池命中率。

缓冲区命中率是指用户需求的数据是否存放在在内存中,该命中率是指高速缓存命中总数除以高速缓存的查找总数;共享池命中率决定了用户提交的 sql语句是否需要进行重新解析,该比率等于 sql 语句的解析次数除以sql语句总的执行次数。

通常情况,数据库的命中率应该在 90%左右,低于这个值的系统均需要做出优化和调整[3]。

Oracle日志介绍

Oracle日志介绍

Oracle日志介绍Oracle的日志是一种记录数据库操作和事件的机制,它可以帮助数据库管理员进行故障排除、恢复数据以及进行性能优化等工作。

Oracle的日志包括事务日志(Redo Log)、归档日志(Archive Log)和警告日志。

事务日志是Oracle数据库最重要的日志,它记录了数据库中每个事务所做的修改。

当用户在数据库执行更新、插入或删除操作时,事务日志会将这些操作以一种逻辑的方式记录下来。

这样即使数据库崩溃或者非正常关闭,管理员仍然可以通过重放事务日志来恢复数据库到崩溃前的状态,保证数据的一致性。

事务日志还可以用于数据库的恢复、数据迁移和数据库备份等操作。

归档日志是在数据库中启用归档模式后,产生的一种备份。

当事务日志已经满时,归档日志会被创建并存储到归档目录中。

归档日志的主要作用是保证数据的持久性,即使系统发生故障或者备份失败,通过归档日志可以保证丢失的数据可以从归档中进行恢复。

通过应用归档日志,可以将数据库恢复到任意时间点,以实现精确的数据恢复。

警告日志记录了Oracle数据库中的错误信息、警告信息和一些其他的重要事件。

警告日志可以帮助管理员及时发现和解决数据库的健康和性能问题。

警告日志也包含了数据库的启动和关闭过程,以及数据库网络连接问题的信息。

同时,警告日志还能记录数据库的配置变更、数据库资源的使用情况以及一些特殊功能的启用和禁用,这些信息都对于诊断和调优数据库非常有用。

在日常的运维工作中,管理员需要定期查看Oracle的日志以监控数据库的健康状况和及时发现问题。

可以通过查看事务日志来判断数据库的工作负载和事务处理情况,通过分析归档日志可以确定数据库备份的完整性和执行效果,通过检查警告日志可以找到数据库运行中的一些异常,并及时进行修复。

同时,管理员还需要根据实际需求和线上的问题,使用参数文件和跟踪文件进行相关的配置和分析工作。

总之,Oracle的日志是数据库运行和维护的重要组成部分,它们扮演着记录、恢复、诊断和优化数据库的重要角色。

oracle启动日志

oracle启动日志

在安装目录oracle\admin\SID_name\bdump下的*.log文件
以system登录,show parameter background_dump_dest,可以看到日志文件所在的路径,日志文件名一般是alert什么的。日志文件需要经常维护,不然会不断地长大。
还可以show parameter dump_dest看看所有其他的跟踪文件的路径。那些trc文件应该是可以删除的,是一些跟踪信息。
我们也需要周期地截断它,方法是先停止listener记日志的工作:
$lsnrctl set log_status off
然后进行文件处理( 把原来的日志保存到备份文件夹, 使原来的listener.log置空 )
$cp $ORACLE_HOME/network/log/listener.log $ORACLE_BACKUP/network/log/listener_1.log
exec sp_cycle_errorlog
每次SQL Server数据库重新启动时,会自动分割ERRRLOG日志.
参考资料: /oracle_log.htm
回答者: charge007 - 三级 2007-3-9 10:14
$rm /tmp/oracle_temp.log
对日志文件进行截断处理。
listener的日志文件$ORACLE_HOME/network/log/listener.log记录了通过listener处理的网络请求
信息,它包含客户端请求的时间,连接方式(专用或共享),连接程序,网络协议,主机名,网络端口号等信息。
su - oracle -c "lsnrctl set log_status on"

性能优化:调整IO相关的等待

性能优化:调整IO相关的等待

性能优化:调整IO相关的等待编辑手记:对Oracle数据库进行调整优化,基本上最终都可以归结到I/O调整上,因此,了解如何来优化Oracle数据库的I/O对于一个DBA来说就显得至关重要。

今天挑选此文与大家共勉。

I/O相关竞争等待简介当Oracle数据库出现I/O相关的竞争等待的时候,一般来说都会引起Oracle数据库的性能低下,发现数据库存在I/O相关的竞争等待一般可以通过以下的三种方法来查看Oracle数据库是否存在I/O相关的竞争等待:(1)Statpack报告中在"Top 5 WaitEvents"部分中主要都是I/O相关的等待事件。

(2)数据库的等待事件的SQL语句跟踪中主要都是I/O相关的等待事件的限制。

(3)操作系统工具显示存储数据库文件的存储磁盘有非常高的利用率。

数据库如果发现存在I/O竞争,那我们就必须要通过各种方法来调整优化Oracle数据库。

在调优数据库的过程中,其中一个重要的步骤就是对响应时间的分析,看看数据库消耗的时间究竟是消耗在具体什么上面了。

对于Oracle数据库来说,响应时间的分析可以用下面公式来计算:Response Time = Service Time + WaitTimeService Time是指'CPU used by this session'的统计时间。

Wait Time是指所有消耗在等待事件上的总的时间。

因为等待事件有很多,因此我们还需要去判定哪些是真的很重要的等待事件,很多调优工具比如说statpack都是列出最重要的等待事件,statpack工具的报告中的重要的等待事件都是包含在一个叫Top 5 Wait Events的部分中。

在某些情况下, Service Time会比WaitTime显得更加重要(例如CPU使用率),此时等待事件产生的影响就显得不是那么重要了,重点调整的目标应该放在Service Time上。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

理解Oracle的日志机制
• Oracle的日志是用来记录用户对数据库的改变,这样,当出现服务器硬件故障或者用户错误而丢失数据时,可以通过重做这些日志来恢复已提交的事务,Oracle日志机制包含以下组件:
Ø日志缓存SGA的一部分,用于缓存服务器进程产生的日志,包括DML和DDL;
Ø LGWR进程这个后台进程负责将日志缓存的数据写到联机日志文件,每个实例只有一个;
Ø数据库检查点检查点用于同步数据文件和日志文件,一个检查点事件的完成,代表在这个事件开始之前发生的所有对数据文件的改变都已实际记录到了数据文件,数据库在这个时间点是一致的,在实例恢复的时候,只有在最后一个检查点之后的日志才需要重做;
Ø联机日志文件用于存放从日志缓存中写出的日志数据,每个数据库最少需要两个日志文件,当前日志文件填满以后,发生日志切换,然后才可以继续写下一个日志文件;
Ø日志归档LGWR写满所有组的联机日志文件以后,会回头再写第一个组的日志文件,在非归档模式下,被重用的日志文件中的日志会被丢弃,在归档模式下,日志文件被重用前会被ARC0进程复制到归档日志文件;
• 一些可选的日志机制,如归档和Standby,因为附加的I/O会降低系统的性能,同时提供了可靠的灾难恢复能力,不建议因这些性能的下降而关闭生产系统的归档功能。

调整日志缓存
• 日志缓存的管理机制可以类似理解成一个漏斗,日志数据不断地从漏斗上方加入,然后偶尔打开漏斗下方的开关将加入的数据清空,这个开关就是LGWR进程,为了日志缓存有空间容纳不断加进来的日志数据,LGWR在下面列出的任何一个条件下都会执行写出日志缓存的操作:
Ø应用程序发出Commit命令时;
Ø三秒间隔已到时;
Ø日志缓存三分之一满时;
Ø日志缓存达到1M时;
Ø数据库检查点发生时;
• 测量日志缓存的性能通过服务器进程放置日志条到日志缓存时发生等待的次数和时间来测量;
Select Name, Value
From V$sysstat
Where Name In ('redo entries', 'redo buffer allocation retries','redo log space requests');
redo entries 服务器进程放进日志缓存的日志条的总数量;
redo buffer allocation retries 服务器放置日志条时必须等待然后再重试的次数;
redo log space requests LGWR进程写出日志缓存时等待日志切换的次数;
这个查询用于计算日志缓存重试率,这个比率应该小于百分之一;
Select Retries.Value / Entries.Value "Redo log Buffer Retry Ratio"
From V$sysstat Entries, V$sysstat Retries
Where = 'redo entries' And = 'redo buffer allocation retries';
这个查询用来显示哪些会话的LGWR正在进行写等待;
Select ername, Sw.Wait_Time, Sw.Seconds_In_Wait, Sw.State
From V$session_Wait Sw, V$session s
Where Sw.Sid = s.Sid And Sw.Event Like '%log buffer space%';
State有四个取值:
WAITING(会话正在等待),WAITED UNKNOWN TIME(等待时间未知),WAITED SHORT TIME(等待时间小于百分之一秒),WAITED KNOWN TIME(等待时间已知,为wait_time栏位所示的时间);
Ø Statspack中有两个地方存有与日志缓存性能相关的数据:
实例命中率(Instance Efficiency Percentages)中的Redo NoWait%,这个值与日志缓存重试率之和等于1;
实例活动统计(Instance Activity Stats)中的redo entries, redo buffer allocation retries, redo log space requests;
• 改进日志缓存的性能
改进日志缓存的性能就是减少或者消除服务器进程读取日志缓存及放置日志条到日志缓存时发生的等待,可以从下面两个方面入手:
Ø增大日志缓存
ü 日志缓存由初始参数LOG_BUFFER指定,最小值是64K,默认值是greatest(512k , 128k * CPU数); ü 当你指定的日志缓存小于最小值时,会以默认值来生效;
ü 日志缓存的最大值由操作系统来指定,考虑到LGWR写出日志缓存的特点,大于3M的日志缓存已没有多大实际意义;
Ø减少日志的产生:UNRECOVERABLE,NOLOGGING
ü UNRECOVERABLE 这个关键字用在下面的语法中:create table table_a as select * from table_b unrecoverable; 在表创建的过程可以尽可能少地产生日志,但对该表的后续DML操作没有影响,也不能用于分区表,索引组织表,含有大对象的表的创建,这个关键字的功能已被nologging取代;
ü NOLOGGING是表的一个属性,可以在表创建时指定,也可以在表创建以后用alter命令进行更改,这个属性可以从许多字典表(DBA_TABLESPACES,DBA_TABLES,DBA_INDEXES,DBA_LOBS等)的logging 字段查到;
ü 启用该属性,可以在表创建,表上的索引创建及重建时产生较少的日志(DDL);
ü 启用该属性,针对表上的数据插入,在以下两种情形下可以产生较少的日志(DML):用SQL*Loader 进行Direct Path Loads ,用append提示进行的Direct Load Inserts;
ü 启用该属性后,用direct path方法装入的数据将会在媒体恢复的过程中丢失,如果这些数据装载发生在最近一次备份操作之后的话。

相关文档
最新文档