block
,
extent
和
segment的區別:
1、block:是Oracle中存儲數據塊的最小單位,所以數據最終都是存儲在block中。它也被稱為邏輯blocks或是頁(pages)。每個操作系統都有自己的block
size。而這裏的block是Oracle自己的,不同於OS的blocks。可以通過設置DB_BLOCK_SIZE設置Oracle的block為OS的block的幾倍,從而減少不必要的I/O。不管block中存放的數據是表、索引還是clusterdata,block的結構都是壹致。
2、extent:extent
是每次分配給壹個對象的邏輯最小單位,是由壹定數量連續的block組成。壹個或多個extent又組成了壹個segment。
3、segment:它是extents的集合,它包含了在表空間中所包含的具體邏輯存儲機構的所有extents。例如壹個未分區的table,index,cluster被成為壹個段,壹個被分區的index,table的壹個partition
被成為壹個段。對於temporary
segment,主要用於排序等操作,只有當DB的內存無法存放相應的排序操作並無法找到其他更好的解決辦法時,才會在臨時表空間中創建temporarysegment。