Oracle表空間介紹

2021-07-16 21:22:56 字數 2866 閱讀 6526

oracle培訓教程:表空間,在資料庫系統中,儲存空間是較為重要的資源,合理利用空間,不但能節省空間,還可以提高系統的效率和工作效能。oracle可以存放海量資料,所有資料都在資料檔案中儲存。而資料檔案大小受作業系統限制,並且過大的資料檔案對資料的訪問效能影響非常大。同時oracle是跨平台的資料庫,oracle資料可以輕鬆的在不同平台上移植,那麼如何才能提供統一訪問格式的大容量呢?oracle採用表空間來解決。

表空間只是乙個邏輯概念,若干作業系統檔案(檔案可以不是很大)可以組成乙個表空間。表空間統一管理空間中的資料檔案,乙個資料檔案只能屬於乙個表空間。乙個資料庫空間由若干個表空間組成。如圖所示:

圖1 資料空間、表空間和資料檔案

oracle中所有的資料(包括系統資料),全部儲存在表空間中,常見的表空間有:

·系統表空間:存放系統資料,系統表空間在資料庫建立時建立。表空間名稱為system。存放資料字典和檢視以及資料庫結構等重要系統資料資訊,在執行時如果system空間不足,對資料庫影響會比較大,雖然在系統執行過程中可以通過命令擴充空間,但還是會影響資料庫的效能,因此有必要在建立資料庫時適當的把資料檔案設定大一些。

·tmep表空間:臨時表空間,安裝資料庫時建立,可以在執行時通過命令增大臨時表空間。臨時表空間的重要作用是資料排序。比如當使用者執行了諸如order by等命令後,伺服器需要對所選取資料進行排序,如果資料很大,記憶體的排序區可能裝不下太大資料,就需要把一些中間的排序結果寫在硬碟的臨時表空間中。

·使用者表自定義空間:使用者可以通過create tablespace命令建立表空間。

建立表空間需要考慮資料庫對分割槽(extent,乙個oracle分割槽是資料庫檔案中一段連續的空間,oracle分割槽是oracle管理中最小的單位)的管理,比如當乙個表建立後先申請乙個分割槽,在insert執行過程中,如果分割槽資料已滿,需要重新申請另外的分割槽。如果乙個資料庫中的分割槽大小不一,建立表空間時需要考慮一系列問題。因此在oracle8i之後,建立表空間都推薦使用「本地管理表空間」,這種表空間中的分割槽是乙個固定大小的值,建立表空間的語法是:

語法結構:建立表空間

create tablespace 空間名稱

datafile '檔名1' size 數字m

[,'檔名2' size 數字….]

extent management local

uniform size 數字m

語法解析:

1. 檔名包括完整路徑和檔名,每個資料檔案定義了檔案的初始大小,初始大小一般以「m」為單位。乙個表空間中可以有多個資料檔案。

2. extent management local指明表空間型別是:本地管理表空間。本地管理表空間要求oracle中的資料分割槽(extent)大小統一。

3. uniform size:指定每個分割槽的統一大小。

案例5:建立乙個表空間,包含兩個資料檔案大小分別是10mb,5mb,要求extent的大小統一為1m。

**演示:建立表空間

sql> create tablespace myspace

2  datafile 'd:/a.ora' size 10m,

3             'd:/b.ora' size 5m

4  extent management local

5  uniform size 1m

6  /

tablespace created

必須是管理員使用者才能建立表空間,當表空間的空間不足時可以使用alter tablespace命令向表空間中追加資料檔案擴充表空間。

**演示:擴充表空間

sql> alter tablespace myspace

2  add datafile 'd:/c.ora' size 10m

3  /

tablespace altered

表空間可以在不使用時刪除,使用drop tablespace命令。

資料庫的所有資料全部在某一表空間中存放,在建立使用者時,可以為使用者指定某一表空間,那麼該使用者下的所有資料庫物件(比如表)預設都儲存在該空間中。

**演示:為某一使用者指定預設表空間

sql> create user acong identified by acong

2   default tablespace myspace

3  /

user created

在建立表時,表中資料存放在使用者的預設表空間中,也可以通過tablespace子句為表指定表中資料存放在其他表空間中。

**演示:為表指定表空間

sql> create table scores

2  (

3          id number ,

4          term varchar2(2),

5         stuid varchar2(7) not null,

6         examno varchar2(7) not null,

7         writtenscore number(4,1) not null,

8         labscore number(4,1) not null

9  )

10  tablespace myspace

11  /

table created

建立索引時也可以為索引指定表空間。

**演示:為索引指定表空間

sql> create index uq_id on scores(id)

2  tablespace myspace;

index created

表和索引一旦建立,表空間無法修改。

oracle 建立表空間詳細介紹

1.如果在pl sql 等工具裡開啟的話,直接修改下面的 中 斜體加粗部分 執行 2.確保路徑存在,比如 d oracle oradata oracle9i 也就是你要儲存檔案的路徑存在 分為四步 第1步 建立臨時表空間 複製 如下 create temporary tablespace user ...

oracle 建立表空間詳細介紹

注意點 1.如果在pl sql 等工具裡開啟的話,直接修改下面的 中 斜體加粗部分 執行 2.確保路徑存在,比如 d oracle oradata oracle9i 也就是你要儲存檔案的路徑存在 分為四步 第1步 建立臨時表空間 複製 如下 create temporary tablespace u...

Oracle表空間 表

表 table 表空間是對儲存系統檔案 使用者資訊等資料的乙個空間。oracle表空間屬於oracle中的儲存結構,是由資料檔案組成,乙個資料庫例項可以有n個表空間,每個資料庫至少有乙個表空間 system表空間 乙個表空間下可以有n張表。可以通過表空間來實現對oracle的調優 oracle資料庫...