freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

oracleblogstudy-資料下載頁

2025-06-26 12:14本頁面
  

【正文】 ed out的,當寫滿的時候,如果再有新塊要裝到keep池中,就會把他裝到default池中!版本二:(1)來自Oracle文檔Oracle174。 Database Performance Tuning Guide 10g Release 2 () PartNumber B1421103(2)Each buffer pool uses the same LRU replacement policy (for example, if the KEEP pool is not large enough to store all of the segments allocated to it, then the oldest blocks age out of the cache).來自metalinkBUFFER_POOL KEEP LRU usuageThe buffer pool LRU algorithm operates independently on each pool. Therefore if you fill up your keep cache and additional blocks need to be allocated, then LRU blocks will be aged out.對此我的理解是新塊會把最久使用過(LRU)的塊替換掉。版本三:來自yangtingkun的博文:KEEP池的CACHE特點(二)而KEEP池沒有采用這種算法,KEEP池其實是一塊可用內(nèi)存采用類似循環(huán)的算法進行訪問。如果KEEP池里面還有剩余空間,則新的數(shù)據(jù)會首先使用剩余的空間,如果KEEP池已經(jīng)存儲滿了,Oracle會從頭開始重用KEEP池。對此我的理解是新塊會把最久裝入的塊替換掉。雖然跟Oracle文檔相左,但實驗是很有說服力的。Buffer headerBuffer header包含的主要信息有:1)該數(shù)據(jù)塊在buffer cache中實際的基本內(nèi)存地址。就是前圖中的虛線箭頭所表示的意思。2)該數(shù)據(jù)塊的類型,包括data、segment header、undo header、undo block等等。3)該buffer header所在的hash chain,是通過在buffer header里保存指向前一個buffer header的指針和指向后一個buffer header的指針的方式實現(xiàn)的。4)該buffer header所在的LRU、LRUW、CKPTQ等鏈表(這些鏈表我們后面都會詳細說明)。也是通過記錄前后buffer header指針的方式實現(xiàn)。5)當前該buffer header所對應的數(shù)據(jù)塊的狀態(tài)、動作以及標記信息。6)當前用戶和等待者信息正在等待該buffer header的進程列表(waiter list)和正在使用該buffer header的進程列表(user list)7)該buffer header被訪問(touch)的次數(shù)。8)各種CR區(qū)域,諸如redo rba,為實現(xiàn)多種操作Hash Buckets and Chains從如何搜索buffer這個角度講,存在這么一個數(shù)據(jù)結(jié)構:有一定數(shù)量的hash bucket,每個bucket下面是一個雙向鏈表cache buffer chain,鏈表上掛著一個一個buffer。如何搜索一個buffer在哪里,以及如何定位一個buffer應該放到哪里,是通過hash算法找到那個bucket,然后遍歷cache buffer chain。bucket的數(shù)量由_db_block_hash_buckets控制。這個鏈表上的latch是cache buffer chain,latch的數(shù)量由_db_block_hash_latches控制。對hash chain的訪問都必須被cache buffer chain latch所保護。Hash chain本身更新是通過普通的鏈表機制。每次訪問都必須加latch。,每一個hash bucket都有一個cache buffers chains latch(hash latch),并且hash bucket都只有一個hash chain鏈表。換句話說,hash latch,hash backet和hash chain之間是1:1:1的關系。默認的hash bucket個數(shù)為大于db_block_buffers / 4的最小質(zhì)數(shù),通過隱含參數(shù)_db_block_hash_buckets可以修改該值。例如,假如db_block_buffers = 50000,則該實例中有12501個hash latch,有12501個hash bucket,有12501個hash chain。從oracle8i開始,oracle將hash latch和hash bucket之前的關系改成了1:m,但hash bucket和hash chain之間還是1:1,也就是一個hash latch可以同時保護多個hash chain鏈表。這樣,可以顯著的減少系統(tǒng)中hash latch的個數(shù)。Hash latch的默認個數(shù)還是和db_block_buffers的值相關。當數(shù)據(jù)緩沖區(qū)小于1G時,一般都是1024個。通過隱含參數(shù)_db_blocks_hash_latches可以修改該值。備注:buffer cache所指向的數(shù)據(jù)塊(buffer)的狀態(tài)。一共有六種狀態(tài):178。FREE(0)=可以被重用的數(shù)據(jù)塊;178。XCURRENT(1)=實例以排它方式獲取的當前模式數(shù)據(jù)塊;178。SCURRENT(2)=可以與其它實例共享的當前模式數(shù)據(jù)塊;178。CR(3)=作為一致性讀鏡像的數(shù)據(jù)塊,永遠不會被寫入磁盤;178。READING(4)=正在從磁盤讀出的數(shù)據(jù)塊;178。MRECOVERY(5)=正在進行介質(zhì)恢復的數(shù)據(jù)塊;178。IRECOVERY(6)=正在進行實例恢復的數(shù)據(jù)塊。buffer cache中獲取所需要的數(shù)據(jù)塊的過程當前臺進程發(fā)出SELECT或者其它DML語句時,oracle根據(jù)SQL語句的執(zhí)行計劃所找到的數(shù)據(jù)塊,會構造一個名為數(shù)據(jù)塊描述(buffer descriptor)的內(nèi)存結(jié)構。該buffer descriptor位于session的PGA中,所包含的內(nèi)容主要是數(shù)據(jù)塊所在的物理地址、數(shù)據(jù)塊的類型、數(shù)據(jù)塊所屬對象的object id等信息。隨后,oracle會把對數(shù)據(jù)塊請求的鎖定模式以及所構造出來的buffer descriptor傳入專門搜索數(shù)據(jù)塊的函數(shù)中。在該函數(shù)中,oracle根據(jù)buffer descriptor所記錄的信息,應用hash算法以后,得到要找的數(shù)據(jù)塊所處的hash bucket,也就是確定該數(shù)據(jù)塊在哪條hash chain上。然后,oracle進入該hash chain,從上面所掛的第一個buffer header開始搜索,一直搜索到最后一個buffer header。在hash chain上搜索的邏輯如下:1)比較buffer header上所記錄的數(shù)據(jù)塊的地址,如果不符合,則跳過該buffer header。2)跳過狀態(tài)為CR的buffer header。3)如果遇到狀態(tài)為READING的buffer header,則等待,一直等到該buffer header的狀態(tài)改變以后再比較所記錄的數(shù)據(jù)塊的地址是否符合。4)如果發(fā)現(xiàn)數(shù)據(jù)塊地址符合的buffer header,則查看該buffer header是否位于正在使用的列表上(正在使用該數(shù)據(jù)塊的列表),如果是,則判斷已存在的鎖定模式與當前所要求的鎖定模式是否兼容,如果是,則返回該buffer header所記錄的數(shù)據(jù)塊地址,并將當前進程號放入該buffer header所處的正在使用的列表(user list)上。5)如果發(fā)現(xiàn)鎖定模式不兼容,則根據(jù)找到的buffer header所指向的數(shù)據(jù)塊的內(nèi)容,構建一個新的、內(nèi)容一樣的、狀態(tài)為XCURRENT的復制數(shù)據(jù)塊,并且構造一個狀態(tài)為CR的buffer header,同時該buffer header指向所新建立的復制數(shù)據(jù)塊。然后,返回該復制數(shù)據(jù)塊的地址,并將當前進程號放入該buffer header所處的正在使用的列表(user list)上。6)如果比較完整個hash chain以后;還沒發(fā)現(xiàn)所要找的buffer header,則從LRU list中,獲取可用buffer header,調(diào)用物理I/O到數(shù)據(jù)文件里把該塊所含有的內(nèi)容復制一份到一個可用的buffer里(內(nèi)存數(shù)據(jù)塊通常叫做buffer,數(shù)據(jù)文件里的數(shù)據(jù)塊通常叫做block,二者是一個意思),并構建該塊的buffer header,然后將該buffer header掛到hash chain上去。將當前進程號放入該buffer header所處的正在使用的列表(user list)上。cache主要鏈及其作用LRU list (replacement list)LRU AUX(auxiliary list)是LRU鏈的一個子鏈。從LRU AUX頭開始的BLOCK是被確認為CLEAR的,其來源包括DBWR已經(jīng)刷回文件的BLOCK和UNPIN的CLEARBLOCK。LRUW list (write list):臟數(shù)據(jù)鏈LRUW就不說了,引入AUX鏈的目的是為了異步DBWR作業(yè),在這個鏈沒有引入以前,當一個DBWR作業(yè)沒有完成前,是無法進行下一個DBWR作業(yè)的。引入AUX后,AUX鏈存放的是當前DBWR正在寫入的數(shù)據(jù),LRUW就騰出來處理下一個DBWR作業(yè)了。LRUXO list (reuse object list):REUSE對象鏈 這個鏈主要是為了對TRUNCATE,DROP等操作的對象相關的BUFFER進行CHECKPOINT操作。當reuse object cross instance call發(fā)生的時候,CKPT會將這個對象的臟數(shù)據(jù)塊放入LRUXO鏈,供DBWR刷回磁盤。當CKPT發(fā)現(xiàn)這個鏈已經(jīng)空的時候,本次CHECKPOINT可告結(jié)束。LRUXR list (reuse range list):REUSE RANGE對象鏈:當reuse range cross instance call發(fā)生的時候(比如OFFLINE表空間),CKPT搜索這些BUFFER,把臟數(shù)據(jù)塊放入LRUXR鏈,供DBWR刷回磁盤。當CKPT發(fā)現(xiàn)這個鏈已經(jīng)空的時候,本次CHECKPOINT可告結(jié)束 set詳解oracle引入了working set的概念。每個working set都具有它自己的一組LRU和LRUW鏈表。每個working set都由一個名為“cache buffers lru chain”的latch(也叫做lru latch)來治理,所以從這個意義上說,每一個lru latch就是一個working set。而每個被加載到buffer cache的buffer header都以輪詢的方式掛到working set上去。也就是說,當buffer cache加載一個新的數(shù)據(jù)塊時,其對應的buffer header會去找一個可用的lru latch,假如沒有找到,則再找下一個lru latch,直到找到為止。假如輪詢完所有的lru latch也沒能找到可用的lru latch,該進程只有等待latch free等待事件,同時出現(xiàn)在v$session_wait中,并增加“l(fā)atch misses”。假如啟用了多個DBWR后臺進程的話,每個DBWR進程都會對應一個不同的working set,而且每個DBWR只會處理分配給它的working set,不會處理其他的working set。數(shù)據(jù)緩沖區(qū)中工作集的個數(shù)是由cache buffers lru chain latch的個數(shù)決定的。而lru latch的數(shù)量是由一個隱藏參數(shù):_db_block_lru_latches決定的。該參數(shù)缺省值為DBWR進程的數(shù)量8。該參數(shù)最小必須為8,假如強行設置比8小的數(shù)值,oracle將忽略你設置的值,而使用8作為該參數(shù)值。通過內(nèi)部視圖x$kcbwds (kernelcachebufferworking setsdescriptors)可以知道工作集的個數(shù)。x$kcbwds的set_latc的值就是v$latch_children的addr列。一個lru latch就是一個working set,那么working set的數(shù)量也就是lru latch的數(shù)量。一個working set示意圖如下所示:33 / 33
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1