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資料庫...