-
1 # 用戶8235558358049
-
2 # 王氵每15206132
按照由小到大的順序,邏輯存儲單元可以做如下劃分:
(1)塊(Block)。塊是Oracle邏輯存儲結構中個頭最小的存儲單元,所有數據的存取都是以塊為單位進行的。初始化參數文件中有一個參數叫BLOCK_SIZE,就是專門用來指定這個小家夥個頭的。天哪,初始化參數文件,那可是傳說中作用於整個Oracle數據庫的存在啊,想不到"塊"這個家伙個頭雖小,地位這麼崇高。不錯,Oracle數據庫的塊大小在數據庫創建時指定,一經指定就無法修改,除非重建數據庫。
(2)區(Extent)。區是Oracle數據庫的最小分配單位,由一組連續的塊組成,這些塊物理上可能並不連續,但是必須都存在於同一個物理文件,單個區在分配時不能跨文件分配。創建對象時,最少會為該對象分配一個區,初始分配的空間叫做初始區(Initial Extent),隨著對象的不斷擴展,超出初始區後,Oracle就會再為其分配擴展區(Incremental Extent),擴展區不一定要與初始區連續存放,甚至大小也可以與初始區不同(基本上同一個對象中的每一個區的大小都可以不同),不過擴展區也必然是由連續的塊組成。
(3)段(Segment)。很久很久一前,段可以直接被理解成對象,不過隨著軟件版本的變化,功能的提昇,關於段的定義也越來越複雜,如果仍用一句話來形容的話,可以將段看作是對象的全部或者某個部分。從邏輯的角度看,段由一個或多個區組成,它是一個真正的邏輯結構,很難將其對應到某個物理對象上去。例如,創建一個普通的堆組織表(不含分區、LOB類型及索引等),那麼該表就對應一個段,不管這個表中被存放多少記錄,它都仍然只對應這一個段,不過如果為該表創建了索引,那麼索引數據會存儲到專門的索引段,如果該表有LOB類型,LOB數據也會被存入單獨的數據段等。
(4)表空間(Tablespace)。一個表空間從邏輯上定義,是由一個或多個段組成
回覆列表
Oracle一線DBA簡答。不要迷信所謂大牛。這種問題隨便抓個搞Oracle數據庫的即可。Oracle內存組件中,有一個叫做SGA的部分,這個部分如果設置了7G,啟動之後,立馬從內存中分割出7G,哪怕當前Oracle只用了100M。這7G也是不可以被其他任何機制回收和利用的。而且Oracle是典型的耗內存應用,SGA組件裡的BufferCache放的是真實的用戶數據。可以避免分散的磁盤操作,而直接在SGA中完成對數據庫的修改加工。SGA是主要佔內存的組件。其他PGA等等為用多少分配多少的基本原則。會發生回收機制的。除此之外,你可以通過show parameter sga查看SGA的具體設置。