oracle的內部空間結構非常複雜,就像乙個擁有龐大面積的國家一樣。因此,它也採取了自元朝以來沿襲下來的「行省制度」------資料庫database,表空間tablespace,段segment,區extent,塊block,資料庫由乙個或多個表空間組成,表空間包含段,段包含區,區包含塊。這些所謂的表空間,段空間,區空間,塊空間實際是不存在的,就像我們為了方便治理北緯30度08分到北緯24度38分,東經108度47分至東經114度15分之間的這塊21.18萬平方公里的土地,於是我們便將其命名為"湖南省",後面又命名了各個市,區,鄉鎮。
01.段segment
段是表空間中主要的組織結構,就是占用儲存空間的資料庫物件,如表,索引及回滾段。
例如你在建立表時,會建立乙個表段;你在建立索引時,就會建立乙個索引段;
你在建立函式時,就會建立乙個函式段,依次類推,占用儲存空間的每乙個物件最後都會儲存在乙個段中。我們可以通過檢視
dba_segments
檢視段空間的主要資訊:
02 區extent
段本身又由乙個或多個區段組成。傳統的每個段都至少有乙個區段,自11gr2起oracle引入了「延遲」段的概念------當你建立物件時,oracle不會立即為段分配乙個新的區段,只有當資料真正寫入到這個物件(比如說insert語句),oracle才會為這個段分配第乙個 段。第二個區段不一定在磁碟位置上緊挨著第乙個區段,甚至有可能不在第乙個區段所在的檔案中,這就像某個市的a區和b區是相鄰,但是物理結構上b區並不在a區那522平方公里裡面。區段的大小可能不同,可以是乙個oracle資料塊,也可以大到2gb. 檢視
dba_extents
可以方便我們了解區:
03 塊block
塊是oracle中最小的空間分配單位,可以理解為鄉鎮。行資料,索引條目或臨時排序結果就儲存在塊中。
通常oralce從磁碟讀寫的就是塊。資料塊的大小是通過kb位元組個數來指定的,預設為8kb。oracle中塊的常見大小有4種:2kb,4kb,8kb,16kb。可以檢視下block大小:8192kb=1024kb*8
無論塊大小如何,基本所有塊都遵守下圖內部結構:
表目錄+行目錄+空閒空間+資料空間。
04 表空間tablespace
表空間是乙個容器,其中包含有段。每個段都只屬於乙個表空間,正如每個市都屬於固定的省份一樣。乙個表空間中可能有多個段。乙個段的所有區段都在段所屬的表空間中。段絕對不會跨越表空間邊界。表空間(邏輯結構)本身可以有乙個或多個資料檔案(dbf,資料結構)。乙個區段僅會存放於乙個資料檔案中。不過,段可以有來自多個不同資料檔案的區段。所以在實際工作中我們經常要去檢視表空間使用率:
select a.tablespace_name,
round(a.maxbytes /1024/1024/1024) "sum gb",
round((a.bytes - b.free_bytes) /1024/1024/1024) "used gb",
(a.bytes - b.free_bytes) "used ",
round((a.maxbytes-(a.bytes - b.free_bytes)) /1024/1024/1024) "free_all gb",
round(((a.bytes - b.free_bytes) / a.maxbytes) * 100, 2) "percent_used"
from (select tablespace_name, sum(decode(maxbytes,0,decode(autoextensible,'yes',34359721984,bytes),maxbytes)) maxbytes,sum(bytes) bytes
from dba_data_files
group by tablespace_name) a,
(select tablespace_name, sum(bytes) free_bytes
from dba_free_space
group by tablespace_name) b
where a.tablespace_name = b.tablespace_name
and a.tablespace_name in ('users')
order by ((a.bytes - b.free_bytes) / a.maxbytes) desc;
表空間不夠的時候,我們可以通過給指定表空間增加資料檔案:
總結下oracle"行省制"的邏輯結構和物理結構(dbf)的關係:
1>資料庫由乙個或多個表空間組成;
2>表空間由乙個或多個資料檔案組成。表空間包含段。
3>段(table,index等)由乙個或多個區段組成。段不能跨表空間存放,但是,段中的資料可以跨檔案(當然,隸屬於同一表空間)存放。
4>區段是磁碟上一組邏輯連續的塊。區段只能在乙個表空間中,而且總是在該錶空間內的乙個檔案中。
5>塊是資料庫最小的分配單位,也是資料庫使用的最小的i/o單位。
css 多行省略的幾種寫法
class box 想起從前呆在南方 許多那裡的氣息 許多那裡的顏色 不知覺心已經輕輕飛起 class desc 我第一次戀愛在那裡 不知她現在怎麼樣 我家門前的湖邊 這時誰還在流連b 時間過得飛快 轉眼這些已成回憶 每天都有新的問題 不知何時又會再憶起span class box2 it s al...
制度梳理的體會(一)
老闆一直都想對公司的制度,做乙個梳理,理清哪些制度已基本事實廢止,哪些已有但需要修訂,還需補充哪些制度等,即 從內部需要出發,來梳理公司的規章制度。考慮到公司的主要定位在工程專案方面,因此,突破口就選在,建立一套較完整的全生命週期的工程專案管理制度。現就將這套制度制定過程中的體會,做一簡單的總結。首...
團隊 的制度(完善中)
古語云 無規矩不成方圓。作為乙個團隊,乙個要發展得越來越好的團隊。必須擁有相對應的制度。特別是在起步階段。只有有了規矩,團隊的積極性和凝聚力才能有效地提高並保證不衰減。廣東海洋大學rfid團隊章則 一 會議 1 每週三下午3 00 4 30為團隊例會時間。2 除非特殊情況外,不能輕易請假。3 請假必...