Oracle資料庫優化
一、資料庫優化規範
1.不同用途的資料放在不同的tablespace避免資源爭用
2.不同的tablespace放在不同的物理驅動器調高I/O併發能力
3.日誌檔案放在速度快的磁碟上,資料檔案可以放在速度慢的磁碟上
4.日誌檔案的同組中不同成員放在不同的物理磁碟
二、通過物理檔案的讀寫次數來調優
Select d.tablespace_name,d.file_name,f.phyrds,f.phywrts from v$filestat f,dba_data_files d
where f.file#=d.file_id;
三、可以通過設定Oracle讀寫塊的大小提高I/O效率,引數:DB_FILE_MULTIBLOCK_READ_COUNT
四、配置多個DBWn
Alter system db_writer_precesses //作業系統必須支援非同步I/O,多cpu使用
1.開啟非同步I/O
2.在不支援非同步I/O的情況下,修改dbwr_io_slaves數量也可以達到增加DBWn的效果
五、LGWR是使效能下將
select sid,event,seconds_in_wait,state from v$session_wait where event='log buffer space'
語句執行後應該沒有為空,即沒有log buffer space wait
select name,value from v$sysstat where name in ('redo entries','redo buffer allocation retries')
語句執行後,如果redo buffer allocation retries此值過大說明redo buffer太小
六、歸檔引起
1.增加redo log 組和成員
2.archive檔案太多,沒地方寫歸檔檔案,可以刪除檔案
3.增加歸檔程式 log_archive_max_proceses
七、執行計劃
必須在同一個視窗執行這2條語句
1.explain plan for select * from gy_gdxm;
2.select * from table(dbms_xplan.display());
八、索引壓縮
壓縮索引可以提高索引的查詢效率,節約空間
1.當建立索引時使用:
create index emp_last_idx on hr.employees(last name,first_name) compress;
2.重建索引時使用:
alter index emp_last_name_idx rebuild compress;
九、索引判斷回滾段競爭的SQL語句
select rn.name, rs.GETS, rs.WAITS, (rs.WAITS / rs.GETS) * 100 ratio
from v$rollstat rs, v$rollname rn where rs.USN = rn.usn;
當Ration>2時存在回滾段競爭,則需增加更多的回滾段
十、判斷恢復日誌競爭的SQL語句
select name,(t.IMMEDIATE_MISSES /decode((t.IMMEDIATE_GETS + t.IMMEDIATE_MISSES),0,-1,
(t.IMMEDIATE_GETS + t.IMMEDIATE_MISSES))) * 100 immediate_contention,
(t.MISSES / decode((t.GETS + t.MISSES), 0, -1, (t.GETS + t.MISSES))) * 100 wait_contention
from v$latch t where name in ('redo copy', 'redo allocation');
mmediate_contention或wait_contention的值大於1時存在競爭
十一、判斷表空間碎片
select t.tablespace_name,sum(t.bytes),max(t.bytes),count(*),max(t.bytes)/sum(t.bytes) radio
from dba_free_space t
group by t.tablespace_name order by t.tablespace_name;
如果最大空閒空間佔總空間很大比例則可能不存在碎片,如果比例較小,且有許多空閒空間,則可能碎片很多
十二、確定高速緩衝區命中率
select 1-sum(decode(name, 'physical reads', value, 0))/(sum(decode(name, 'db block gets', value, 0)) +
sum(decode(name, 'consistent gets', value, 0))) hit_ratio
from v$sysstat t where name in ('physical reads', 'db block gets', 'consistent gets');
如果命中率低於70%,則應該加大init.ora引數中的DB_BLOCK_BUFFER的值
十三、確定共享池命中率
select sum(pins) pins,sum(reloads) reloads ,(sum(reloads)/sum(pins) )* 100 ratio1 from v$librarycache ;
select sum(gets) gets,sum(getmisses) getmisses,(sum(getmisses) / sum(gets)) * 100 ratio2 from v$rowcache;
如果ratio1大於1時,需要加大共享池,如果ratio2大於10%時,需要加大共享池SHARED_POOL_SIZE
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29812844/viewspace-1988748/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle資料庫效能優化Oracle資料庫優化
- 【效能優化】ORACLE資料庫效能優化概述優化Oracle資料庫
- ORACLE資料庫效能優化概述Oracle資料庫優化
- Oracle資料庫訪問效能優化Oracle資料庫優化
- Oracle資料庫效能優化總結Oracle資料庫優化
- 【轉】Oracle資料庫優化之資料庫磁碟I/OOracle資料庫優化
- Oracle資料庫資料恢復、效能優化 ASKMACLEANOracle資料庫資料恢復優化Mac
- 資料庫優化 - SQL優化資料庫優化SQL
- oracle資料庫巡檢優化-快速定位資料庫瓶頸Oracle資料庫優化
- 大型ORACLE資料庫優化設計方案Oracle資料庫優化
- Oracle資料庫效能優化技術(zt)Oracle資料庫優化
- 資料庫優化資料庫優化
- Oracle學習系列—資料庫優化—效能優化工具Oracle資料庫優化
- oracle資料庫巡檢優化-快速定位資料庫瓶頸(轉)Oracle資料庫優化
- oracle資料庫:耗cpu sql語句優化Oracle資料庫SQL優化
- AIX 下oracle 資料庫記憶體優化AIOracle資料庫記憶體優化
- Oracle學習系列—資料庫優化—Sort OperationOracle資料庫優化
- Oracle學習系列—資料庫優化—Statistics SummaryOracle資料庫優化
- Oracle學習系列—資料庫優化—Collect StatisticsOracle資料庫優化
- MySQL資料庫優化MySql資料庫優化
- 資料庫優化SQL資料庫優化SQL
- 資料庫效能優化資料庫優化
- 資料庫優化流程資料庫優化
- Oracle DBA優化資料庫效能的心得體會Oracle優化資料庫
- 【轉】關於Oracle資料庫的效能優化心得Oracle資料庫優化
- Oracle 資料庫優化的R方法(Method R)(zt)Oracle資料庫優化
- 資料庫SQL優化大總結之 百萬級資料庫優化方案資料庫SQL優化
- 資料庫SQL優化大總結之百萬級資料庫優化方案資料庫SQL優化
- 資料庫優化之臨時表優化資料庫優化
- oracle資料庫調優描述Oracle資料庫
- MYSQL資料庫------SQL優化MySql資料庫優化
- 資料庫效能優化2資料庫優化
- 百萬級資料庫優化資料庫優化
- 資料庫查詢優化資料庫優化
- 如何優化資料庫物件優化資料庫物件
- 資料庫優化建議資料庫優化
- 資料庫的優化需要資料庫優化
- 資料庫及SQL優化資料庫SQL優化