2014-09-25 Created By
BaoXinjian

2014-07-27 Created By
BaoXinjian

图片 1一、摘要

图片 2一、摘要



1. Oracle优化器介绍

Oracle
的备份与还原来三种植标准的模式,大致分成两死接近,备份恢复(物理及之)以及导入导出(逻辑上的),

本文讲述了Oracle优化器的概念、工作原理和动用办法,兼顾了Oracle8i、9i以及最新的10g老三只版本。理解本文将推向你又好之复管用之开展SQL优化工作。

倘备份恢复又可依据数据库的劳作模式分为非归档模式
(Nonarchivelog-style)和归档模式(Archivelog-style),

2. RBO优化器

便,我们将未归档模式称为冷备份,而相应的拿归档模式称
为热备份。

RBO是同等栽基于规则的优化器,随着CBO优化器的逐月发展与健全,在新型的10g版本中Oracle已经绝望抛弃了RBO。

 

着下Oracle8i或9i的人们要多要少的还见面逢RBO,因此于事无巨细介绍CBO之前,我们发必要简单回顾一下古的RBO优化器。

  1. 逻辑备份 –
    冷备份

以RBO中Oracle根据可用之顾路径和看路径的等级来挑选执行计划,等级越强之拜访路径通常运行SQL越慢,如果一个报句有差不多个途径而活动,Oracle总是选择等级比逊色之访路径。

应用Export可将数据由数据库被提出,利用Import则可将提取出来的数目送返回Oracle数据库被去。

3. CBO优化器结构

  1. 大体备份 –
    冷备份

CBO是因成本的优化器,它根据可用之顾路径、对象的统计信息、嵌入的Hints来选择一个本低于的履计划。

冷备客数据库是将数据库关闭之后备份所有的关键性文件包数据文件、控制文件、联机REDO
LOG文件,将其拷贝到另外的岗位。

 

除此以外冷备份为足以蕴涵对参数文件与口令文件的备份,但是就片种备份是得因需要展开抉择的。

图片 3二、RBO优化器

冷备份实际也是平栽物理备份,是一个备份数据库物理文件之进程。


坐冷备份而备份除了重做日志以外的兼具数据库文件,因此呢为改成完全的数据库备份。

RBO是同样栽基于规则之优化器,随着CBO优化器的逐年发展及周到,在时的10g版中Oracle已经绝望摒弃了RBO。

  1. 物理备份 –
    热备份

1级:用Rowid定位单行

热备份是当数据库运行的情形下,采用archive
log mode方式备份数据库的点子。

当WHERE子句被直接坐Rowid时,RBO走之路。Oracle不引进直接引用Rowid,Rowid可能会见出于版本的更动而变更,行迁移、行链接、EXP/IMP也会见要Rowid发生变化。

热备份要求数据库处于archive
log模式下操作,并要大量的档案空间。

2级:用Cluster Join定位单行

倘数据库处于archive
log模式,就足以进行备份了,当尽备份时,只能于数据文件级或说明空间进行。

个别单表做等值连接,一在的连日字段是Cluster
Key,且WHERE中是好保该语句仅返回一行记录之法时,RBO走之路。

  1. 备份方式分类

3级:用带用唯一约束或做主键的Hash Cluster
Key定位单行

图片 4

4级:用唯一约束的字段或开主键的字段来定位单行

 

5级:Cluster Join

图片 5老二、逻辑备份

6级:使用Hash Cluster Key


7级:使用索引Cluster Key

当今先来介绍一下逻辑备份方式的点子,利用Export可将数据从数据库被领到出,利用Import则可将领到出来的数额送返回Oracle数据库被失去。

8级:使用复合索引

 

9级:使用单字段索引

1.
反驳功底:Oracle提供的Export和Import具有三栽不同之操作方式(就是备份的数目输出(入)类型):

10级:用索引进行有限度限制的检索

(1). 表方式(T)
可以拿点名的表导出备份;

如,column >[=] expr AND column
<[=] expr或column BETWEEN expr AND expr

(2). 全库方式(Full)
将数据库被的兼具目标导出;

或column LIKE ‘c%’

(3). 用户方式(U)
可以将指定的用户相应的保有数据对象导出;

11级:用索引字段展开无界限的索

2.
于导入导出备份方式吃,提供了老强劲的同等种艺术,就是增量导出/导入,但是它们必须作为System来完成增量的导入导出,而且不得不是对准一切数据库进行实施。

如,WHERE column >[=] expr 或 WHERE
column <[=] expr

增量导出又好分为三种类型:

12层:排序合并连接

(1). 完全增量导出(Complete Export)
这种措施拿将全副数据库文件导出备份;

13层:对索引字段使用MAX或MIN函数

exp system/manager inctype=complete
file=20041125.dmp(为了方便找和以后的查询,通常我们以备份文件以日期或其它发出显著含义的字符命名)

14层:ORDER BY索引字段

(2). 增量列增量导出(Incremental Export)
这种措施将单纯会备份上平等蹩脚备份后变更之结果;

15级:全表扫描

exp system/manager inctype=incremental
file=20041125.dmp

 

(3). 累积型增量导出(Cumulate Export)
这种措施吧,是导出自上次净增量导出后数据库变化之音;

设若得以应用索引RBO会尽可能的去用索引而非是全表扫描,但是当下列一些情RBO只能采取全表扫描:

exp system/manager inctype=cumulative
file=20041125.dmp

假定column1和column2是和一个阐明的字段,含有条件column1
< column2或column1 > column2或column1 <= column2或column1 >=
column2,RBO会用全表扫描。

3.
便状态下,DBA们所而举行的,就是依照公司指定要是友善习惯的正经(如果是友好指定的正统,建议写好计划说明),

而应用column IS NULL或column IS NOT
NULL或column NOT IN或column != expr或column LIKE
‘%ABC’时,不论column有无索引,RBO都以全表扫描。

相似,我们用广认可的底下的方法开展每日的增量备份:

如果expr =
expr2,expr表达式作用了一个字段上,无论该字段有无索引,RBO都见面全表扫描。

  • Mon:完全备份(A)
  • Tue:增量导出(B)
  • Wed:增量导出(C)
  • Thu:增量导出(D)
  • Fri:累计导出(E)
  • Sat:增量导出(F)
  • Sun:增量导出(G)

要是NOT
EXISTS子查询与在视图中以ROWNUM,也会见促成RBO进行全表扫描。

4.
这样,我们可以保证每周数据的完整性,以及恢复时的飞和太要命限度的数码损失。

 

过来的当儿,假设事故发生在星期日,DBA可据这样的步子来还原数据库:

如上就是RBO的一体可用访问路径。

率先步:用命令CREATE
DATABASE重新转数据库结构;

RBO优化器死板的基于规则来摘取执行计划一目了然不够灵活,在RBO中也无力回天使用物化视图等Oracle提供的初特色,在Oracle8i时CBO已经主导成熟,因此Oracle强烈建议改用CBO优化器。

老二步:创建一个足够好的叠加回滚。

 

其三步:完全增量导入A:

图片 6三、CBO优化器

   imp system/manager inctype=RESTORE
FULL=Y FILE=A


季步:累计增量导入E:

CBO是因成本的优化器,它根据可用的访问路径、对象的统计信息、嵌入的Hints来挑选一个股本最低的实践计划。

   imp system/manager inctype=RESTORE
FULL=Y FILE=E

CBO主要包含以下组件:

第五步:最近增量导入F:

  • 询问转换器(Query
    Transformer)
  • 评估器(Estimator)
  • 计划生成器(Plan Generator)

  imp system/manager inctype=RESTORE
FULL=Y FILE=F

 

常备情况下,DBA所假设举行的导入导出备份就算完事,只要对的依规律作出备份,就可以将数据的损失降到绝小,提供再可靠的服务。

图片 7

除此以外,DBA最好对每次的备份做一个比详细的求证文档,使得数据库的东山再起更加可靠。

  1. 询问转换器

 

查询语句之款式会影响所起的施行计划,查询转换器的打算就是改变查询语词的形式为有比好之履计划。

图片 8三、冷备份

自打Oracle
8i开始即产生四栽易技术:视图合并(View Merging)、谓词推进(Predicate
Pushing)、非嵌套子查询(Subquery Unnesting)和物化视图的查询重写(Query
Rewrite with Materialized Views)。


1.1 视图合并

冷备份在数据库出现问题是
只会还原至备份时之那么一时间点,备份完成及数据库出现问题用还原时之这无异于时空段内的具有新数据、修改记录都心有余而力不足恢复。

如果SQL语句被隐含视图,经分析后会把视图放在独立的“视图查询块”中,每个视图会有一个视图子计划,当为周讲话产生执行计划时,视图子计划会被直接以来使用如未会见看及讲话的整体性,这样就算非常爱造成不良执行计划之变动。视图合并就是以去丢“视图查询块”,将视图合并及一个完完全全的询问块被,这样便无见面生看图子计划来,执行计划之优良性得到提升。

热备份只能当归档模式下展开,冷备份不待归档模式,归档模式会针对系统性能进一步是磁盘I/O造成一定之震慑,但是相对于归档的益处和安全性,相信大部分DBA都见面选归档模式。

1.2 谓词推进

1、优点:

未是有所的视图都能为合并,对于那些不可知叫统一之视图Oracle会将相应的称词推进及视图查询块被,这些号称词一般是可索引的或者是过滤性较强的。

  • 单待拷贝文件即可,是老大快的备份方法。
  • 止需要用文件又拷贝回去,就足以还原至某一时间点达成。
  • 暨数据库归档的模式相结合得要数据库很好地东山再起。
  • 维护量较少,但安全性确相对比较高。

1.3 非嵌套子查询

2、缺点:

旁查询与视图一样吧是于放于独立查询块被之,查询转换器会将绝大多数子查询转换为连续从而合并为同查询块,少量非可知叫转移为总是的子查询,会拿其的子计划安照一个快速之计排列。

  • 于进展数据库冷备份的经过被数据库必须处于倒闭状态。
  • 单身采取冷备份时,数据库只能完成因某一时间点达成之死灰复燃。
  • 倘若磁盘空间有限,冷备份只能以备份数据拷贝到磁带等任何外部存储上,速度会重复慢。
  • 冷备客不克按表或仍用户恢复。

  • 案例如下

1.4 物化视图的询问重写

旁文详细介绍 <
http://www.cnblogs.com/eastsea/p/3898070.html >

当query_rewrite_enabled=true时,查询转换器寻找和该查询语句相关联的物化视图,并为此物化视图改写该查询语句。

  1. 主干流程

 

当数据库可少处于关闭状态时,我们用拿其当就同稳定性时刻的数码有关文书转移至安全的区域,

2.
关于“窥视”(Peeking)

当数据库中损坏,再打平安区域用备份的数据库相关文书拷贝回原来的岗位,

在Oracle9i中为查询转换器增加了一个效能,就是当用户采取绑定变量时,查询转换器可以“偷窥”绑定变量的实际值。

然,就完成了同等次等高速安全等数码易。

俺们知道用绑定变量虽然可有效之削减“硬分析”,但它们拉动的负面影响是优化器无法根据实际的数据分布来优化SQL,很有或以好走索引的SQL却开了全表扫描。

由于是在数据库不提供服务之关闭状态,所以称为冷备份。

“窥视”正是为化解之题目,但是其并无根底缓解,Oracle只同意第一涂鸦调动用时进行“窥视”,接下的调用即使绑定变量的值发生了变化,也仍是应用第一次于变动的履行计划,这便导致了一个荒唐的执行计划会给反复以,10g中的“窥视”也是这般。

冷备客有众多漂亮性状,比如上面图中我们干的,快速,方便,以及高效。一潮完整的冷备份步骤应该是:

 

Step1. 率先关闭数据库(shutdown
normal)

  1. 评估器

Step2.
拷贝相关文件及安全区域(利用操作系统命令拷贝数据库的所有的数据文件、日志文件、控制文件、参数文件、口令文件等(包括路径))

评估器通过测算三只价来评估计划的整资产:选择性(Selectivity)、基数(Cardinality)、成本(Cost)。

Step3.
重新起动数据库(startup),以上之步调我们可为此一个脚本来就操作:

3.1 选择性:

      su – oracle < sqlplus
/nolog

凡一个大于0稍微为1之累累,0象征不曾记录受选定,1代表有记录还为选定。

      connect / as sysdba

统计信息以及直方图涉及及选择性值的准确性。

      shutdown immediate;

如:name=’Davis’,

      !cp
文件备份位置(所有的日志、数据、控制以及参数文件);

要是非存在统计信息评估器将基于所用底称呼词来指定一个短省之精选性值,此时评估器会始终认为等式谓词的选择性比非等式谓词略;

      startup;

若有统计信息若非在直方图,此时增选性值为1/count(distinct
name);

      exit;

设在统计信息为存直方图,选择性值则也count(name)where
name=’Davis’ / count(name)where name is not null。

Step4.
这么,我们就算形成了同样潮冷备份,请确定你对这些相应的目(包括写副的目标文件夹)有对应的权位。

3.2 基数:

Step5.
恢复的早晚,相对比较简单了,我们停掉数据库,将文件拷贝回相应岗位,重开数据库就可以了,当然为堪为此底本来就。

常见表中的行数称为“基础基数”(Base
cardinality);

 

当用WHERE中的条件过滤后剩下的行数称为“有效基数”(Effective
cardinality);

图片 9四、热备份

连操作下有的结果集行数称为“连接基数”(Join
cardinality);


一个字段DISTINCT之后的行数称为“DISTINCT基数”;

热备客支持在数据库不停机的图景下开展备份,冷备份是必以数据库shutdown以后使用操作系统的下令对表空间进行拷贝进行的备份。

“GROUP基数”(Group
cardinality)比较奇特,它和基础基数和DISTINCT基数有关,例如:group by
colx则GROUP基数就相当于基础基数,但是group by
colx,coly的GROUP基数则超出max ( distinct cardinality of colx , distinct
cardinality of coly )且小于min ( (distinct cardinality of colx *
distinct cardinality of coly) , base cardinality)。

热备客适用于要的数据库,比如7×24未可知暂停的生产体系,同时可以保证数据库在出现崩溃时做归档日志可以还原至任意一个时间点,不见面造成数丢失。

3.3 成本:

1、优点:

尽管是量资源消耗的单位。可以理解啊实践表扫描、索引围观、连接、排序等操作所消耗I/O、CPU、内存的数额。

  • 而是于说明空间或数据文件级备份,备份时间少。
  • 只是直达秒级恢复(恢复至某一时间点上)。
  • 不过针对几乎拥有数据库实体作回复。
  • 卷土重来是快速的,在大部情下在数据库仍工作经常回升。
  • 备份时数据库仍可用。

 

2、缺点:

  1. 计划生成器
  • 因为难以保障,所以要是专门细心小心,不允“以败诉而得了”。
  • 只要热备份不成功,所得结果不可用于时间点的东山再起。
  • 切莫可知差,否则后果严重。

  • 案例如下

计划生成器的图就是是别大量底尽计划,然后选择之中整资产低的一个。

 另文详细介绍 <
http://www.cnblogs.com/eastsea/p/3898091.html >

出于不同之造访路径、连接方式与连各个可以任意组合,虽然因为不同的法子访同拍卖多少,但是得发同样的结果,因此一个SQL可能存在大量不比的行计划。

  1. 主干流程

而是实质上计划生成器很少会考试所有的也许有的实施计划,如果它们发现脚下实行计划的本都大没有了,它以已试验,相反当前计划的成本而大高,它将持续试验其他执行计划,因此如果能够如计划生成器一开始即找到本大没有之履行计划,则会大量缩减所耗费的工夫,这吗多亏我们为何用HINTS来优化SQL的由来之一。

当我们用举行一个精度比高之备份,而且我们的数据库不容许停掉(少许访问量)时,

 

以此情景下,我们便需归档方式下之备份,就是下边讨论的热备份。

图片 10季、访问路径

热备客好很标准的备份表空间级和用户级的数额,由于她是基于归档日志的时日轴来备份恢复的,理论及可过来至前面一个操作,甚至就是是前同秒的操作。具体步骤如下:


Step1.
经视图v$database,查看数据库是否当Archive模式下: SQL> select
log_mode from v$database;

做客路径就是是由数据库里找数据的计。

      如果无是Archive模式

优化器首先检查WHERE子句和FROM子句的法,确定来怎样访问路径是可用之。

     
则设定数据库运行于归档模式下:SQL>shutdown immediate

接下来优化器使用这些访问路径或每访问路径的同,产生相同组或者存在的履计划,再经过索引、字段、表的统计信息评估每个计划之本金,最后优化器选择资金低的实行计划所对应的走访路径。

           SQL>startup mount

要SQL语句的FROM子句无SAMPLE或SAMPLE
BLOCK,优化器在挑选访问路径的当儿会优先考虑语句被之HINTS。

           SQL> alter database
archivelog;

优化器可用的拜会路径如下:

           SQL> alter database
open;

  • 全表扫描(Full Table Scans)
  • Rowid扫描(Rowid Scans)
  • 摸索引围观(Index Scans)
  • 簇扫描(Cluster Scans)
  • 散列扫描(Hash Scans)
  • 表取样扫描(Sample Table
    Scans)

  • 全表扫描

     
如果Automaticarchival显示为“Enabled”,则数据库归档方式为活动归档。否则用手工归档,或者以归档方式修改为自行归档,如:

全表扫描将读取HWM之下的备数据块,所有执行且使经WHERE子句过滤看是否满足条件。当Oracle执行全表扫描时见面照梯次读取每个片都仅念一坏,如果会同坏读博多个片,可以使得之提高效率,初始化参数DB_FILE_MULTIBLOCK_READ_COUNT用来装于一如既往糟I/O中好读取多少只数据块。
通常咱们当当避免全表扫描,但是当追寻大量数据常常全表扫描优于索引围观,这正是因为全表扫描可以在同等不良I/O中读也大都只片,从而减少了I/O的次数。在以全表扫描的同时也得采用并行来加强扫描的速。

          
正常shutdown数据库,在参数文件被init.ora中加入如下参数

CBO优化器何时会选取全表扫描:

           SQL>shutdown
immediate

  • 1) 无合适的目。
  • 2) 检索表中大部分之多寡。
  • 3)
    表非常小。比如,表中的丘小于DB_FILE_MULTIBLOCK_READ_COUNT,只待一浅I/O。如果如此的表被频繁使用相应alter
    table table_name storage(buffer_pool keep)。
  • 4)
    高并行度。如果当表级设置了比高的并行度,如alter table table_name
    parallel(degree
    10),通常会要CBO选择全表扫描。通常建议于语句级用HINTS来贯彻互动,如/*+full(table_name)
    parallel(table_name degree)*/。
  • 5)
    太旧的统计数据。如果表没有展开了分析或很漫长没更分析,CBO可能会见误的以为表含有同丢的数据块。
  • 6)
    在讲话中置了全表扫描的HINTS。

  • Rowid扫描

           修改init.ora:

Rowid表示行以数据块被的具体位置,Rowid是寻觅具体行的顶抢方式。可以当WHERE子句被形容入Rowid,但是非推荐这么做。通常都是由此索引来获取Rowid,但若叫摸的行都包含在目录中不时,直接看索引就会博得所急需的数码虽然不见面使用Rowid。

          
LOG_ARCHIVE_START=TRUE

  1. 找寻引围观

          
LOG_ARCHIVE_DEST1=ORACLE_HOME/admin/o816/arch(归档日值存放位置好自己定义)

目不仅包含被索引的字段值,还带有行的职标识Rowid,如果告诉句只检索索引字段,Oracle将直从索引中读取而非需要经过Rowid去访问表,如果告诉句通过索引检索其他字段值,则Oracle通过索引获得Rowid从而迅速找到实际的推行。

           SQL>startup

找引围观类型:

接下来,重新起动数据库,此时Oracle数据库将因自行归档的艺术工作于Archive模式下。

  • 1) 唯一索引围观(Index Unique
    Scans)
  • 2) 索引范围扫描(Index Range
    Scans)
  • 3) 索引降序范围扫描(Index Range
    Scans Descending)
  • 4) 跳跃式索引围观(Index Skip
    Scans)
  • 5) 全索引围观(Full Index
    Scans)
  • 6) 快速全索引围观(Fast Full Index
    Scans)
  • 7) 索引连接(Index Joins)

里头参数LOG_ARCHIVE_DEST1凡指定的存档日志文件的路,建议与Oracle数据库文件是不同的硬盘,一方面减少磁盘I/O竞争,另外一端为堪避数据库文件所在硬盘毁坏之后的文本少。

3.1 唯一索引围观

归档路径也可一直指定为磁带等其他物理存储设备,但或许使考虑读写速度、可写规范及性等要素。

于行使一个主键字段或包含唯一约束的字段选择一行记录时,通常发生唯一索引围观。

在意:当数据库处在ARCHIVE模式下经常,一定要是力保指定的存档路径而写,否则数据库就见面挂于,直到能归档所有归档信息后才堪以。

3.2 索引范围扫描

除此以外,为创造一个行之有效的备份,当数据库在开立时,必须实行一个全数据库的冷备份,就是说数据库需要周转在归档方式,然后正常关闭数据库,备份所有的数据库组成文件。

目录范围扫描返回的数据返照索引字段值升序排列,值相同之按Rowid升序排列。如果以言辞中利用了ORDER
BY ASC子句,而且排序字段是寻觅引字段时Oracle不见面对ORDER
BY再次排序。

当即同备份是通备份的底蕴,因为该备份提供了一个存有数据库文件的正片。(体现了冷备份和热备份的合作关系,以及强大的力量)

3.3 索引降序范围扫描

Step2. 备份表空间文件:

如当order
by中指定了目录是降序排列的,或者使了INDEX_DESC提示,优化器会使索引降序范围扫描。

(1). 首先,修改表空间文件呢备份模式 ALTER
TABLESPACE tablespace_name BEGIN BACKUP;

3.4 跳跃式索引围观

(2).然后,拷贝表空间文件及安全区域 !CP
tablespace_name D_PATH;

跳跃式索引围观是为此来增强复合索引效率的,通常当复合索引的第一个索引字段不以言辞中指定时凡心有余而力不足采取复合索引的,此时只要复合索引的第一个索引字段DISTINCT值非常小,而复合索引的其它索引字段DISTINCT值非常特别时,可以利用跳跃式索引围观来过了该复合索引的首先个索引字段。跳跃式扫描会要复合索引在逻辑上分裂成N个比较小的目录,N值等于复合索引的首先个索引字段的DISTINCT值。

(3).最后,将说明空间的备份模式关闭 ALTER
TABLESPACE tablespace_name END BACKUP;

3.5 全索引围观

Step3. 对归档日志文件之备份:

当查问涉及的字段都带有在目录中,如果WHERE子句中谓词非第一个索引字段,或无WHERE子句但是被索引字段遭遇最少发生一个非空属性时,通常会召开全索引围观。全索引围观结果集按索引字段排序。

  停止归档进程-->备份归档日志文件-->启动归档进程

3.6 快速全索引围观

  如果日志文档比较多,我们以它写副一个文书化一个回复的参照:$
files `ls <归档文件路径>/arch*.dbf`;export files

当查问涉及的字段都包含在目中,且让搜寻引字段受到至少发生一个非空属性时,可以用INDEX_FFS(table_name
index_name)来要报告词做快速全索引围观。快速全索引围观不同于全索引围观,它使用多片读取的方来读全部摸索引块,而且好利用并行读取。快速全索引围观的结果集不会见排序。位图索引不克使用快全索引围观。

Step4. 备份控制文件:

3.7 索引连接

  SQL> alter database backup
controlfile to ‘controlfile_back_name(一般用2004-11-20的方式)’
reuse;

目连接是几乎单目录的散列连接。如果查询的字段上还是索引,可以下索引连接来避免访问表。

  当然,我们为可以以方面的东东刻画吧一个本子,在需要的时候实施就可以了:

  1. 簇扫描

  脚本范例:

以被索引的簇中,有着相同簇键值的行存储在同样数据块被。执行簇扫描时,首先通过扫描簇索引获得被检索行的Rowid,然后以Rowid来恒定具体的尽。

  su – oracle < sqlplus
/nolog

  1. 散列扫描

  connect / as sysdba

散列扫描就是于一个散列簇中一定数据行。在一个散列簇中,具有同等散列值的行存储在同一之数码块被。在执行散列扫描时,首先通过一个散列函数来博取散列值,然后据此散列值在数量块被固定具体行。

  ALTER TABLESPACE tablespace_name
BEGIN BACKUP

  1. 表取样扫描

  !CP tablespace_name D_PATH

当FROM子句后含有SAMPLE或SAMPLE
BLOCK时,会实施表取样扫描来随便检索表明中的数码。如:select* from t
sample block (1);

  ALTER TABLESPACE tablespace_name END
BACKUP

  1. 处理连接

  

潜移默化一个连语句执行计划的季独重点因素是:访问路径、连接方式、连接各个与财力评估。

  alter database backup controlfile to
‘controlfile_back_name(一般用2004-11-20的方式)’ reuse;

 

  !files `ls
<归档文件路径>/arch*.dbf`;export files

图片 11五、影响优化器的初始化参数

 


热备份的还原,对于存档方式数据库的复原要求不仅有灵之日记备份还求发出一个当归档方式下作的有效的全库备份。

  1. OPTIMIZER_FEATURES_ENABLE:

归档备份在辩论及可以博准丢失,但是对硬件及操作人员的求且于强。

每个版本的Oracle优化器特性还无平等,特别是开了本子升级后一定要改是参数才可以以就为欠版本支持之优化器特性。可以与它的价如果:9.2.0、9.0.2、9.0.1、8.1.7、8.1.6相当于。

于我们使用归档方式备份的上,全库物理备份也是非常重大的。

  1. CURSOR_SHARING:

归档方式下数据库的复要求从全备份到失败点所有的日记都要完整无缺。

这参数会将SQL语句被之直接量用变量来替换,存在大量直接量的OLTP系统可考虑启用这个参数。但是只要小心,绑定变量虽然足假设大气的SQL重用,减少分析时,但是执行计划或者会见无完美。通常OLTP系统适用于绑定变量,OLTP系统特性是,SQL运行往往且时刻相对比较短,SQL的分析时比重较充分。如果在DSS系统中,SQL运行时增长,相比之下分析时微不足道,好的尽计划才是极致着重之,因此DSS系统不建议采用这个参数。

  恢复手续:LOG_ARCHIVE_DEST_1

  1. HASH_AREA_SIZE:

   shutdown数据库。

立马是散列表的存放区域,如果应用散列连接这个参数值未可知顶小,否则对散列连接属性影响颇怪。如果是9i提议启动工作区自动管理,然后设置PGA_AGGREGATE_TARGET。

  将全备份的数据文件放到原来系统的目录中。

  1. SORT_AREA_SIZE:

  将皆备份到失败点的有归档日志放到参数LOG_ARCHIVE_DEST_1所指定的岗位。

外存排序区的轻重,如果排序时内存区不足够会写副磁盘。9i同样建议启动工作区自动管理,然后设置PGA_AGGREGATE_TARGET。

  用sqlplus登陆到空实例。(connect /
as sysdba)

  1. HASH_JOIN_ENABLED:

  然后 startup mount

才发生启用这个参数,CBO在考虑连接方式的时刻才见面设想散列连接。

  set autorecovery on

  1. OPTIMIZER_INDEX_CACHING:

  recover database;

斯参数表示给缓存的索引块所占据的比例,可选值的限制是0-100。这个值会影响嵌套循环连接,如果是值设得比高,CBO将再也赞成使用嵌套循环。

  alter database open;

  1. OPTIMIZER_INDEX_COST_ADJ:

 

优化器利用这参数(是个比例)把索引围观的成本转移为当价格的全表扫描的资本,然后和全表扫描的资本展开比较。缺省值100,表示找引围观成本及全表扫描成本等。可选值范围是0-10000。

Thanks and Regards

  1. OPTIMIZER_MAX_PERMUTATIONS:

图片 12

本条起参数用来设定优化器最多着想多少种连接各个,优化器不断的产生可能的表的接连的排列,直到排列数达参数optimizer_max_permutations为止。一旦优化器停止产生新的排,它将会晤从中挑选有资产不过小之排。

9.
DB_FILE_MULTIBLOCK_READ_COUNT:

本条参数表示以全表扫描或索引快速全扫描时一致糟糕I/O读的接连数片数量(block#连续,且同样涂鸦I/O不能够超过extent)。

  1. OPTIMIZER_MODE:

优化器模式。值为:RULE、CHOOSE、ALL_ROWS、FIRST_ROWS_n、FIRST_ROWS。

  1. PARTITION_VIEW_ENABLED:

只要安为TRUE,
该优化器将跳了分区视图中莫受请的分区,该参数还能够改变基于成本的优化程序于基础表统计信息计算分区视图统计信息之艺术。

  1. QUERY_REWRITE_ENABLE:

假设设置为TRUE,优化器将用可用之物化视图来重新写SQL。

 

Thanks and Regards

参考:
http://blog.itpub.net/18474/viewspace-1060730/

参考:
http://www.cnblogs.com/dongzhiquan/archive/2012/01/20/2328365.html

图片 13

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图