ORACLE學習之路 資料庫的儲存結構

2021-05-04 08:29:08 字數 1677 閱讀 7877

最近特別忙,連上網的時間都沒有。今天把oracle的儲存結構介紹一下。

oracel資料庫中的資料邏輯儲存在tablespace中,同時物理地儲存在資料檔案中。要了解資料庫的儲存結構,就要先了解資料庫中的資料是存放在**,以及存放資料庫的邏輯空間名。

oracle中對資料的儲存分了四層,根據儲存大小以及從屬關係依次為:

tablespace   表空間

segment        段

extents         區

block            資料塊

1、block 資料塊

block是oracle中資料的最小儲存單位,它的大小是在建立tablespace的時候就定義了,一旦在tablespace中定義了block的大小,那麼在該tablespace中建立的table都會使用且只能用該尺寸來建立block。block大小的定義一定是作業系統資料塊(os block)大小的整數倍。oracle中block的大小有2k、4k、8k、16k、32k五種,其中8k在oracle中被定義為標準block size,其他幾種為非標準block size。使用oracle自動管理來建立的tablespace時使用的就是標準block size。

標準block size是在資料庫建立時定義的,它對應引數檔案中的引數為db_block_size。非標準block szie 對應的引數為db_nk_size,當n為8時,就會和db_block_size衝突,導致無效。使用者在使用oracle建立表空間時可以使用標準block size也可以使用非標準的block szie,但是有兩個表空間是必須要使用標準block size來定義:system(系統表空間)、temporary(臨時表空間)。

好不容易用畫筆工具畫個小圖,下面這個圖就是block機構的示意圖:

header為block的頭,裡面存放的是block的控制引數,free為空閒空間,data為存放在block中的資料。block中data的儲存時從下往**。block常用控制引數為:initrans,maxtrans,pctfree,pctused。

initrans,maxtrans為連線事物槽,控制併發。initrans為初始連線數,如果該block中存放的是data則預設為1,如果存放的是index則預設為2,maxtrans 預設為255。

pctfree 最小為10%,這個引數不是用來顯示還有多少空間沒被使用,而是在block被建立時候用來定義該block中有多少空間被做為空閒空間。因為一條記錄存放在乙個block中,當初始化時候可能不全面,後面還要使用update來更新該記錄,pctfree就是為了update而預留的用於已儲存資料擴充套件用的。所以可以通過配置pctfree的值來使用效能調優,通常如果表中資料經常性的進行update則需要把pctfree配大點,反之則配小點。

pctused,說來慚愧,我還不清楚是有什麼用。嘿嘿!!

配置語句:

create table employee(

id number(10) not null,

emp_id varchar2(10),

emp_name varchar2(50),

emp_dept_id varchar2(10)

tablespace employee

pctfree 10

initrans 1

maxtrans 255

pctfree 引數後面的10表示的是10%。

今天先到這裡,有事要出去。

Oracle學習之 Oracle資料庫的儲存結構

資料庫以有組織的方式儲存資料資訊。oracle資料庫使用各種儲存結構來儲存資料。oracle資料庫的主要儲存結構 oracle的基本儲存資料的結構有表空間,資料檔案,控制檔案,各種段 包括資料段,索引段,臨時段,以及回滾段等 區間,資料塊等。表空間 tablespace 表空間 tablespace...

DBA成長之路 資料庫設計避坑之路 持續更新

最後 筆者最近正在享受成為一名dba帶來的快感,同時總結一些自己在設計過程中的理念和一些避坑指南,適用於對資料庫有一定了解和應用的童鞋 注 以下提到的數字均來自筆者4次資料庫 分別來自cms 出遊旅行 倉儲物流 許可權設計 的設計經驗值 作為一名dba 必要的理論基礎必不可少,也就說在我們準備設計資...

資料庫學習之路

資料庫入門 什麼是資料庫 資料庫的工具,如何使用 1 資料庫 2 流行資料庫 mysql sqlserver oracle 3 如何學 資料庫操作 設計資料庫 設定資料之間的關係 建立模型 資料庫操作的相關命令 資料庫sql 語句學習 4 連線資料庫 用工具連線資料庫 資料庫通常不在本地 5 資料庫...