oracle資料庫優化學習筆記

2022-03-27 22:20:14 字數 1979 閱讀 6687

1.資料庫優化的時期:資料庫的優化從設計,資料庫的安裝已經開始。

2.資料庫效能的主要指標是響應時間。影響資料庫增長率的表的種類:

c資料表(事務表):增長的主要因素

d臨時/介面表

3.資料庫優化的主要方法:

a網路b硬體優化  主要在應用程式調整的初期。

c作業系統的優化

.unix系統

調整引數:共享記憶體和訊號燈

監測工具:

工具    主要關心的引數

iostat      bps和tps

vmstat     page fault,page pin,page pount

.windownt

使不必要的服務失效

取消螢幕保護

只將機器用做資料庫伺服器

如果是windowsnt系統

控制面扳中system tool—performance中boost選擇none,減少檔案系統緩衝

利用效能監視器監視資料庫伺服器,分析效能瓶頸

利用微軟資源工具箱(resources pake)中的工具(process viewer、process explode、quick slice、process stat)監視資料庫伺服器,決定作業系統是否優化

d資料庫系統優化

原理:合理的分配記憶體大小;合理的設定表空間體系和內部空間引數。

記憶體結構的優化是通過int.ora檔案的環境引數來配置。

主要引數:db_block_size可增大,shared_pool_size效能指標free memory,log_buffer

監測工具:a.toad或tora(linux) b.utlbstat和utlestat這兩個檔案在oracle_home/rdbms/admin下,在執行指令碼前注意更改tiemed_statistic為true,執行後檢視report檔案。

經驗:表空間設計的時候應遵循oracle的最優化體系結構建議;db_block_buffers和library_cache都要保證合理的命中率;為了使全表掃瞄的效率最高,每個extent(資料區)都應該db_block_size*db_fiel_multiblock_read_count的倍數;如果是非常大的表,做sql*loader或者export操作時要使用direct選項,建立非常大的表和索引時要使用nologing選項。selectsegment_name,bytes/1024/1024,blocks,extentsfromuser_segmentswheresegment_name = '&table_name';可以檢視表的大小,占用多少個資料塊,在segment上的extent數目;selectsegment_name,extent_id,bytes/64,blocksfromuser_extentswheresegment_name = '&table_name'可以檢視每個extents上有多少資料塊,每個extent需要做多少次多塊讀取。

e應用程式優化

單條sql語句的優化:查詢最影響效能的sql語句的方法

select executions,

disk_reads,

buffer_gets,

round((buffer_gets - disk_reads) / buffer_gets, 2) hit_radio,

round(disk_reads / executions, 2) reads_per_run,

sql_text

from v$sqlarea

where executions > 0

and buffer_gets > 0

and (buffer_gets - disk_reads) / buffer_gets < 0.8

order by 4 desc;

對大表建立索引:使用選擇性高的索引,同時要控制索引的大小。

資料庫效能優化學習

資料庫的效能優化不僅僅是dba的事情,我們程式設計師也是需要了解的。更何況不是每個公司都是有dba的。這就需要我們程式設計師更多的注意。現在的應用基本上都是關聯到對資料庫的操作,對於高併發的應用對資料庫的應用就更為重要。資料庫的優化主要包括資料庫表的設計和sql的優化。以下是學習和應用中的總結 資料...

資料庫效能優化學習小記

看了 構建高效能web站點 的資料庫效能優化,來寫一下學習筆記 索引類似於書籍目錄裡的章節 建立合適的索引是我們自己的事情 組合索引即先查詢哪一章再查詢哪一節,不至於找到某一章之後進行掃瞄,浪費時間 組合索引的 在應該使用全表掃瞄的時候使用了索引掃瞄,將導致時間的大量浪費 使用慢查詢分析工具,找出用...

ORACLE學習筆記(四) 資料庫優化

繫結變數包擴下面兩個部分 1 輸入集合 collections 使用forall語句,一般用來改善dml insert update和delete 操作的效能 2 輸出集合 collections 使用bulk collect子句 一般用來提高查詢 select 的效能。create or repl...