WEB开发网      濠电姷鏁告繛鈧繛浣冲洤纾瑰┑鐘宠壘閻ょ偓銇勯幇鍫曟闁稿鍠愰妵鍕冀閵娧佲偓鎺楁⒒閸曨偄顏柡宀嬬畱铻e〒姘煎灡绗戦梻浣筋嚙濮橈箓顢氳濠€浣糕攽閻樿宸ュΔ鐘叉啞缁傚秹宕滆绾惧ジ寮堕崼娑樺缂佹宀搁弻鐔风暋閻楀牆娈楅梺璇″枓閺呯姴鐣疯ぐ鎺濇晝闁靛牆妫欓蹇旂節閻㈤潧浠﹂柛銊ョ埣楠炴劙骞橀鑲╋紱闂佽宕樼粔顔裤亹閹烘挸浜归梺缁樺灦閿曗晛螞閸曨垱鈷戦柟鑲╁仜婵″ジ鎮楀☉鎺撴珖缂侇喖顑呴鍏煎緞濡粯娅囬梻浣瑰缁诲倿寮绘繝鍥ㄦ櫇闁稿本绋撻崢鐢告煟鎼淬垻鈯曢柨姘舵煟韫囥儳绋荤紒缁樼箖缁绘繈宕橀妸褌绱濋梻浣筋嚃閸ㄤ即宕弶鎴犳殾闁绘梻鈷堥弫鍌炴煕閳锯偓閺呮瑧妲愬Ο琛℃斀闁绘劕妯婇崵鐔封攽椤旇棄鍔ら摶鐐烘煕閺囥劌澧柛娆忕箻閺屽秹宕崟顒€娅g紓浣插亾濠㈣泛顑囩粻楣冩煙鐎涙ḿ绠橀柨娑樼У椤ㄣ儵鎮欓鍕紙闂佽鍠栫紞濠傜暦閹偊妲诲┑鈩冨絻椤兘寮诲☉銏犖╅柕澶堝労閸斿绱撴担绋库偓鍝ョ矓瑜版帒鏋侀柟鍓х帛閺呮悂鏌ㄩ悤鍌涘 ---闂傚倸鍊烽悞锔锯偓绗涘厾娲煛閸涱厾顔嗛梺璺ㄥ櫐閹凤拷
开发学院数据库Oracle oracle性能调整:数据库配置和IO问题-性能调优 阅读

oracle性能调整:数据库配置和IO问题-性能调优

 2008-09-02 12:47:51 来源:WEB开发网 闂傚倸鍊风欢姘缚瑜嶈灋闁圭虎鍠栫粻顖炴煥閻曞倹瀚�闂傚倸鍊风粈渚€骞夐敓鐘插瀭闁汇垹鐏氬畷鏌ユ煙閹殿喖顣奸柛搴$У閵囧嫰骞掗幋婵冨亾閻㈢ǹ纾婚柟鐐灱濡插牊绻涢崱妤冃℃繛宀婁簽缁辨捇宕掑鎵佹瀸闂佺懓鍤栭幏锟�濠电姷鏁告慨顓㈠箯閸愵喖宸濇い鎾寸箘閹规洟姊绘笟鈧ḿ褍煤閵堝悿娲Ω閳轰胶鍔﹀銈嗗笂閼冲爼鍩婇弴銏$厪闁搞儮鏅涙禒褏绱掓潏鈺佷槐闁轰焦鎹囬弫鎾绘晸閿燂拷闂傚倸鍊风欢姘缚瑜嶈灋闁圭虎鍠栫粻顖炴煥閻曞倹瀚�  闂傚倸鍊烽懗鑸电仚缂備胶绮〃鍛村煝瀹ュ鍗抽柕蹇曞У閻庮剟姊虹紒妯哄妞ゆ劗鍘ч埥澶娢熼柨瀣偓濠氭⒑瑜版帒浜伴柛鎾寸☉閳绘柨顫濋懜纰樻嫼闂佸憡绋戦オ鏉戔枔閺冣偓缁绘稓浠﹂崒姘瀳闂佸磭绮幑鍥嵁鐎n亖鏀介柟閭﹀墯椤斿倹淇婇悙顏勨偓鏍ь潖婵犳艾鍌ㄧ憸蹇涘箟閹绢喗鏅搁柨鐕傛嫹
核心提示:降低磁盘的IO分散磁盘的IO1、表空间使用本地管理,将文件分散到不同的设备上1)将数据文件与日志文件分开2)减少与服务器无关的磁盘IO3)评估裸设备的使用4)分割表数据 2、表空间的使用 系统表空间保留给数据字典对象创建本地管理表空间以避免空间管理问题将表和索引分散到独立的表空间中使用独立的回滚表空间将大的数据库对象保

降低磁盘的IO

分散磁盘的IO

1、表空间使用本地管理,将文件分散到不同的设备上

1)将数据文件与日志文件分开

2)减少与服务器无关的磁盘IO

3)评估裸设备的使用

4)分割表数据

2、表空间的使用

系统表空间保留给数据字典对象

创建本地管理表空间以避免空间管理问题

将表和索引分散到独立的表空间中

使用独立的回滚表空间

将大的数据库对象保存在各自独立的表空间中

创建一个或多个独立的临时表空间

下列数据库对象应该有单独的表空间:

数据字典、回滚段、索引、临时段、表、大对象

3、检查IO统计数据

select phyrds,phywrts,d.name from v$datafile d,v$filestat f where f.file#=d.file# order by d.name;

检查最有可能引起磁盘IO瓶颈的文件。

4、分割文件

可以通过RAID和手工进行

alter table table_name allocate extent (datafile ‘fiile_name’ size 10M);

但手工操作工作量很大。

5、优化全表扫描操作

1)检查有多少全表发生:

select name,value from v$sysstat where name like ‘%table scan%’;

table scans (short tables)/ table scans (long tables)与全表扫描相关,如果table scans (long tables)的值很高,说明大部分的table access 没有经过索引查找,应该检查应用或建立索引,要确保有效的索引在正确的位置上。

合理的DB_FILE_MULTIBLOCK_READ_count能减少table scan需要调用的IO次数,提高性能(与OS相关)。

2)查看full table scan操作:

select sid,serial#,opname,target,to_char(start_time,’HH24:MI:SS’) “start”,(sofar/totalwork)*100 “percent_complete” from v$session_longops;

通过v$session_longops里的sql_hash_value与v$sqltext关联,可以查询导致full table scan的sql。

6、Checkpoint

Checkpoint进行的操作:DBWn进行IO操作;CKPT更新数据文件头和控制文件。

经常进行Checkpoint的结果:减少恢复所需的时间;降低了系统运行时的性能。

LGWR以循环的方式将日志写到各个日志组,当一个日志组满时,oracle server必须进行一个Checkpoint,这意味着:DBWn将对应log覆盖的所有或部分脏数据块写进数据文件;CKPT更新数据文件头和控制文件。如果DBWn没有完成操作而LGWR需要同一个文件,LGWR只能等待。

在OLTP环境下,如果SGA很大并且checkpoint的次数不多,在Checkpoint的过程中容易出现磁盘竞争的状况,在这种情况下,经常进行Checkpoint可以减少每次Checkpoint涉及到的脏数据块的数目。

调节Checkpoint次数的办法:

增大日志文件;增加日志组以增加覆盖的时间间隔。

7、日志文件

建立大小合适的日志文件以最小化竞争;

提供足够的日志文件组以消除等待现象;

将日志文件存放在独立的、能快速访问的存储设备上(日志文件可以创建在裸设备上)。日志文件以组的方式组织管理,每个组里的日志文件的内容完全相同。

8、归档日志文件

如果选择归档模式,必须要有两个或两个以后的日志组,当从一个组切换到另一个组时,会引起两种操作:DBWn进行Checkpoint;一个日志文件进行归档。 中国网管联盟bitsCN.com

归档有时候会报错: 

ARC0:Beginningtoarchivelog#4seq#2772
  Currentlog#3seq#2773……
  ARC0:Failedtoarchivelog#4seq#2772
  ARCH:Completedtoarchivinglog#4seq#2772
  建议init参数修改如下:
  log_archive_max_processes=2
  #log_archive_dest=‘/u05/prodarch’
  log_archive_dest_1="location=/u05/prodarchMANDATORY’
  log_archive_dest_state_1=enable 
  log_archive_dest_2="location=/u05/prodarch2OPTIONALreopen=10"(或其它目录)
  log_archive_dest_state_2=enable
  log_archive_min_succeed_dest=1 
  log_archive_dest_state_3=DEFER
  log_archive_dest_state_4=DEFER
  log_archive_dest_state_5=DEFER

Tags:oracle 性能 调整

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接