當前位置:學問君>人在職場>IT認證>

oca認證考試指南全冊

學問君 人氣:3.17W

IT業對專家的要求很高,職業競爭壓力很大。無論是新進入這個行業的人,還是此行業中的老手,都需要知道他們的那些技術背景能真正吸引到僱主的眼光。下面是小編整理的關於oca認證考試指南全冊,歡迎大家參考!

oca認證考試指南全冊

1.4 實例內存結構

Oracle實例由稱爲系統全局區(SGA)的共享內存塊以及大量的後臺進程構成,SGA至少包含三種數據結構

數據庫快取區快取

日誌緩衝區

共享池

還可能包含

大池

Java池

流池

用戶會話還需要服務器端的內存。此內存不共享,也稱爲程序全局區域或PGA,每個會話都有自己專用的PGA。

1.4.1 數據庫緩衝區快取

數據庫緩衝區快取是Oracle用來執行SQL的工作區域

在更新數據時,用戶的會話不直接更新磁盤上的數據。包含關鍵數據的數據塊首先複製到數據庫緩衝區快取。更改(如插入新行、刪除或修改現有行)應用於數據緩衝區快取中這些數據塊副本。此後,塊將在快取中保留一段時間,直至其佔有的緩衝區需要快取另一塊爲止。

在查詢數據時,數據也要經過快取。會話計算出哪些塊包含關鍵的行,並將它們複製到數據庫緩衝區快取(如果那裏還未存在)。此後,相關行傳輸到會話的PGA作進一步處理。此後塊會在數據庫緩衝區快取中保留一段時間。

數據檔案的格式被設定爲固定大小的塊。錶行和其他數據對象(如索引鍵),存儲在這些塊中。數據庫緩衝區快取的格式被設定爲內存緩衝區,每個可以容納一個塊,與塊不同,行的長度是變化的,行的長度取決於爲表定義的列的.數量(不管列是否真的包含內容,也不考慮包含什麼內容)。根據塊的大小(由DBA選擇)和行的大小(取決於表設計和使用)。每個塊中可能有多個行,也可能有一個行延伸到多個塊中。

理想狀況下,包含頻繁訪問的數據的所有塊將位於數據庫緩衝區快取中,從而最大程度地減少磁盤I/O的需要。

select customer_id,customer_name from customers;

update customers set customer_name='Sid' where customer_id=100;

commit

爲了執行用戶進程提交的SELECT語句,會話的服務器進程將掃描緩衝區快取中包含相關行的數據塊。如果找到了,就會發生一次緩衝區快取命中。在本例中,假定緩衝區快取未命中,服務器進程在將結果發送給用戶進程(格式化數據後顯示給銷售代表)之前,會將包含相關行的數據從數據檔案讀入緩衝區。

然後,用戶進程將UPDATE和COMMIT語句提交給服務器進程執行。在執行UPDATE語句時,如果包含行的塊在快取中仍然可用,那麼在緩衝區快取中獎更新行。在本例中,緩衝區快取命中率爲50%:對快取中的塊有兩次訪問,但只有一次從磁盤讀取塊。如果數據庫緩衝區快取調整得當,快取命中率將在90%以上。

注意,緩衝區的更新頻率(或COMMIT的數量)與何時寫回數據檔案沒有任何關係。對數據檔案執行寫操作由數據庫寫入器後臺進程完成。

數據庫緩衝區快取的大小會對性能產生至關重要的影響。

數據庫緩衝區快取在實例啓動時分配,從9i開始,可以隨時將其調大或調小。可以採用手動方式重調,也可以根據工作負荷(從10g版本開始)自動重調大小(如果啓用了自動化機制)