日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Oracle10g內(nèi)存結(jié)構(gòu)之系統(tǒng)全局區(qū)簡介

我們知道,內(nèi)存結(jié)構(gòu)是Oracle體系結(jié)構(gòu)中最重要的部分之一。按照系統(tǒng)對內(nèi)存使用方法的不同,可以分為系統(tǒng)全局區(qū)(SGA)、程序全局區(qū)(PGA)、排序區(qū)(Sort Area)、大池(Large Pool)、及java池(java Pool),本文我們先介紹一下Oracle 10g內(nèi)存結(jié)構(gòu)之系統(tǒng)全局區(qū)的內(nèi)容,接下來我們就開始介紹這部分內(nèi)容。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序定制開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了蔡家坡免費建站歡迎大家使用!

系統(tǒng)全局區(qū)(System Global Area)

它是一組為系統(tǒng)分配的內(nèi)存共享結(jié)構(gòu),可以包含一個數(shù)據(jù)庫實例的數(shù)據(jù)和控制信息。如果多個用戶連接到一個實例,在實例的系統(tǒng)全局區(qū)中,數(shù)據(jù)可以被多個用戶共享,所以又稱共享全局區(qū)。系統(tǒng)全局區(qū)按其作用不同,可以分為數(shù)據(jù)緩沖區(qū)、日志緩沖區(qū)及共享池。

數(shù)據(jù)緩沖區(qū):

數(shù)據(jù)緩沖區(qū)用于從磁盤讀入的數(shù)據(jù),供所有用戶共享。

修改的數(shù)據(jù)、插入的數(shù)據(jù)存儲在數(shù)據(jù)緩沖區(qū)中,修改完成或DBWR進程的其他條件引發(fā)時,數(shù)據(jù)被寫入數(shù)據(jù)文件

數(shù)據(jù)緩沖區(qū)工作原理:

LRU (Least recently used):最近最少使用原則的縮寫,是一種數(shù)據(jù)緩沖區(qū)的一種管理機制,,只保留最近數(shù)據(jù),不保留舊數(shù)據(jù)。

Dirty:表示臟數(shù)據(jù),臟數(shù)據(jù)是修改后還沒有寫到數(shù)據(jù)文件的數(shù)據(jù)。

Oracle10g 的數(shù)據(jù)庫內(nèi)存的設(shè)置參數(shù)不再由DB_BLOCK_BUFFERS確定,而是由oracle的新參數(shù)DB_CACHE_SIZE 和DB_nK_CACHE_SIZE確定,不同的數(shù)據(jù)段可以使用不同的數(shù)據(jù)塊。大表可以存儲在大的數(shù)據(jù)塊表空間中,小表可以存儲在小的數(shù)據(jù)塊表空間中,以優(yōu)化i/o性能。對于系統(tǒng)表空間、臨時表空間、及其它默認(rèn)設(shè)置的表空間,可以使用標(biāo)準(zhǔn)的數(shù)據(jù)塊DB_BLOCK_SIZE確定。

標(biāo)準(zhǔn)數(shù)據(jù)塊DB_BLOCK_SIZE用于系統(tǒng)表空間及默認(rèn)表空間,其他表空間可以使用非標(biāo)準(zhǔn)數(shù)據(jù)塊BLOCKSIZE(創(chuàng)建表空間時使用),其值分別為 2k 4k 8k 16k 32k ,非標(biāo)準(zhǔn)數(shù)據(jù)塊的數(shù)據(jù)緩沖區(qū)使用參數(shù)DB_Nk_CACHE_SIZE確定。

需要注意的是BLOCKSIZE不得用于標(biāo)準(zhǔn)塊。如果設(shè)置了DB_BLOCK_SIZE=2048,則不得設(shè)置DB_2K_CACHE_SIZE,標(biāo)準(zhǔn)塊必須使用參數(shù)DB_CACHE_SIZE 來設(shè)置。同時可以在線修改數(shù)據(jù)緩沖區(qū)參數(shù):SQL> alter system set db_2k_cache_size = 10M ;如果要查詢數(shù)據(jù)緩沖區(qū)大小,可以如下:SQL> show parameter db。

在創(chuàng)建不同數(shù)據(jù)塊表空間時,要使用參數(shù)BLOCKSIZE指出數(shù)據(jù)塊的大小,同時在參數(shù)文件中要使用DB_Nk_CACHE_SIZE 進行配置,與BLOCKSIZE的個數(shù)相對應(yīng),否則會出現(xiàn)錯誤。

設(shè)置動態(tài)內(nèi)存時,可以將多個參數(shù)全部寫入?yún)?shù)文件,格式如下:

 
 
 
  1. # cache and i/o  
  2.  DB_BLOCK_SIZE=4096 
  3.  DB_CACHE_SIZE=20971520 
  4.  DB_2K_CACHE_SIZE=8M 
  5.  DB_8K_CACHE_SIZE=4M 
  6.  …….. 

其中,參數(shù) DB_CACHE_SIZE 只適用于系統(tǒng)表空間、臨時表空間、及默認(rèn)表空間,DB_2K_CACHE_SIZE  適合 BLOCKSIZE 為2K的表空間。8K 也是一樣的道理。

數(shù)據(jù)緩沖區(qū)對數(shù)據(jù)庫德存取速度又直接影響。一般的緩沖區(qū)命中率應(yīng)該在90% 以上。例如,使用數(shù)據(jù)字典 v$sysstat 計算數(shù)據(jù)緩沖區(qū)命中率:

 
 
 
  1. SQL> select a.value+b.value “l(fā)ogical_reads” , c.value “phys_reads”,  
  2.       Round(100* ( ( a.value+b.value)- c.value) /  
  3.       ( a.value+b.value ) ) “buffer hit radio “  
  4.       From v$sysstat a, v$sysstat b,v$sysstat c  
  5.       Where a.statistic#=38 and b.statistic#=39 and c.statistic#=40; 

下面是計算數(shù)據(jù)緩沖命中率的另一種方法:

 
 
 
  1. SQL> select name, value  
  2.       From v$sysstat  
  3.       Where name in ( ‘session logical reads’,’physical reads’,physical reads direct’, ‘physical reads direct (lob)’); 

其中:Session logical reads 為讀的總量。Physical reads為從數(shù)據(jù)文件讀。Physical reads direct 為從緩沖區(qū)讀(不含lobs)。Physical reads direct (lobs) 為從緩沖區(qū)讀(含lobs)。Hit Ratio = 1- ( ( physical reads- physical reads direct – physical reads direct(lob) ) /session logical reads) = 95%。

日志緩沖區(qū)

日志緩沖區(qū)用來存儲數(shù)據(jù)庫的修改信息。日志信息首先在日志緩沖區(qū)中產(chǎn)生,當(dāng)日志緩沖區(qū)的日志達到一定數(shù)量時,由日志寫入進程LGWR將日志數(shù)據(jù)寫入日志文件組,再經(jīng)過切換,由歸檔進程ARCH將日志數(shù)據(jù)寫入歸檔介質(zhì)。

日志緩沖區(qū)大小由參數(shù)LOG_BUFFER確定,要查詢?nèi)罩揪彌_區(qū)大小可以用以下方法:

方法一:參數(shù)文件中:

 
 
 
  1.  ……  
  2.  Processes = 150 
  3.  Parallel_max_servers = 5 
  4. Log_buffer = 32768 
  5. …….. 

方法二:

 
 
 
  1. SQL> select name,value from v$parameter where name like ‘%buffer’; 

方法三:

 
 
 
  1. SQL> show parameter log_buffer 

對于日志緩沖區(qū)而言可以計算失敗率,使用數(shù)據(jù)字典v$latch 計算日志緩沖區(qū)的失敗率

 
 
 
  1. SQL>select name,gets,misses,immediate_gets,immediate_misses,  
  2.      Decode(gets,0,0,misses/gets*100) ratiol,  
  3.      Decode (immediate_gets+immediate_misses,0,0,  
  4. immediate_misses/(immediate_gets+immediate_misses)*100)   ratio2  
  5.      from v$latch  
  6.      where name in (‘redo allocation’, ‘redo copy’); 

其中

Gets 表示成功等待日志緩沖區(qū)的次數(shù)。

Immediate gets 表示成功立即得到日志緩沖區(qū)的次數(shù)。

Immediate misses 表示未成功立即得到日志緩沖區(qū)的次數(shù)。

等待表示日志在進入日志緩沖區(qū)時,因為日志緩沖區(qū)過小而沒有空閑空間,所以日志緩沖區(qū)的失敗可以表示日志緩沖區(qū)是否足夠大,不夠大時,用戶的日志寫將產(chǎn)生等待過程。日志緩沖區(qū)的失敗率應(yīng)該小于1%。

此外,可以查詢用戶進程等待日志緩沖區(qū)時的次數(shù),通過數(shù)據(jù)字典v$sysstat 得到:

 
 
 
  1. SQL> select name,value from v$sysstat  
  2.       Where name = ‘ redo buffer allocation retries’ ; 

關(guān)于Oracle 10g內(nèi)存結(jié)構(gòu)之系統(tǒng)全局區(qū)的相關(guān)知識就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!

【編輯推薦】

  1. Oracle 11g R2數(shù)據(jù)庫示例用戶安裝說明
  2. Oracle 11g數(shù)據(jù)庫審計功能應(yīng)用實例解析
  3. Oracle 11g數(shù)據(jù)庫默認(rèn)審計選項說明詳解
  4. Oracle 11g數(shù)據(jù)庫使用XML Table的BUG解決
  5. PowerDesigner15連接Oracle出錯的解決方案

文章題目:Oracle10g內(nèi)存結(jié)構(gòu)之系統(tǒng)全局區(qū)簡介
本文地址:http://m.5511xx.com/article/dhogjdp.html