數據庫優化數據庫
一.日誌文件優化性能
1.聯機日誌:IO ---放在寫性能好的磁盤raid1+0,分開和數據文件控制文件存放,一個組下的日誌成員分開存放,可避免日誌文件的丟失和IO的性能優化
log--等待事件的優化日誌
log file switch---聯機日誌大小不夠對象
log file sync---日誌緩衝區不夠,磁盤IO的問題形成同步寫等待排序
項目中通常3-5個日誌文件組,或者5-8個日誌文件組隊列
加大日誌成員,或者增長日誌組解決日誌等待時間進程
日誌的切換在15-30min是正常現象事件
select recid,to_char(first_time,‘yyyy-mm-dd hh24:mi:ss’ )from v$log_history ;//查看日誌切換時間事務
如今日誌文件大小50m---5s/1(5秒鐘切一次)----想要15分鐘且一第二天志文件(日誌文件應設置的大小=12*15*50 是全部日誌組加起來的大小)
基本是IO的性能瓶頸
2.歸檔日誌:保證歸檔日誌的完整性,爲歸檔日誌作備份(cp 拷貝到其餘地方,rsync同步到其餘第方,rman備份歸檔日誌)
保證空間足夠,歸檔放在閃回區
db_recovery_file_dest_size=<> //歸檔日誌放到讀寫性能好的磁盤中,不要和聯機日誌放到一塊兒
db_recovery_file_dest //
在告警日誌中能夠看到歸檔日誌的空間,若是閃回區使用了80%咱們就要增長空間
2、數據文件優化
IO
1.每個表空間下的數據文件放到不一樣磁盤,不一樣分區,避免IO的爭用
2.每一個對象/用戶都給他指定一個表空間
v$datafile
select d.file#,name, phyblkrd ,phyblkwrt from v$datafile d ,v$filestat f where d.file#=f.file# //查看文件對物理讀寫的狀況,肯定熱點文件,熱點文件需分開放
3.segment 段
undo段:用戶對數據操做的前鏡像,一個段的大小,最大爲32G,一個事務的大小不能超過32個G,一個段分配給一個事務使用。用戶的事務操做達到了33G:1.限制事務的大小,2.建成大表表空間,3.使用自動管理,就會使用undo段
臨時段:通常能夠不用管,建立默認表空間建立的。存放臨時數據,作導入導出時,會用到,作排序時,PGA不夠就會使用臨時段,臨時段不能太大,排序會花大量的時間,也不能過小,會不夠存放,不要設置爲自動增加,使用默認建庫時建立的100m。
數據段/表段:用戶在執行DQL操做時,很長時間都不能返回結果,查看段的使用狀況。使用了delete 操做,這個塊就不會被使用,可是查詢的時候還會進行全表掃描,形成執行語句很是慢。
select table_name
logt表中爲0的狀況是由於沒有收集統計信息
exec dbms_stats.gather_table_stats('TABLE','LOGT') //爲logt表作統計信息
查詢放到哪個block中
排名從2開始顯示
刪除排名爲2之後的記錄,留下排名爲1的記錄
一條語句基本上佔用一個block
空間回收:
方法一:alter table logt move ; //縮小空間
方法二:
3、控制文件優化:記錄數據庫的結構與行爲,rman的備份信息,快照信息,閃回信息,ckpt事務的隊列信息都會記錄到控制文件中。
少去觸發ckpt,當日志切換的時候會觸發,減少控制文件的大小能夠優化控制文件
保證控制文件的大小在100m之內,超過100m出現問題時,咱們須要重建控制文件,因爲重建控制文件咱們須要當機,咱們須要慎重重建控制文件。
lgwr--- 優化方法,多跑一個lgwr,一個數據庫中只有一個lgwr,多跑一個須要增長節點,;增長IO
32--2g/s
64--4g/s
dbwr--- 優化方法:增長dbwr進程
0-9 10g之前
0-9 a-j 10g能夠達到20個
0-9 a-z 11g能夠到達26個
db