首頁  >  文章  >  資料庫  >  oracle中什麼是表空間

oracle中什麼是表空間

青灯夜游
青灯夜游原創
2022-02-23 11:52:517602瀏覽

在oracle中,表空間是Oracle資料物件和資料儲存的容器,是一個邏輯概念,若干作業系統檔案就可以組成一個表空間。表空間統一管理空間中的資料文件,一個資料檔案只能屬於一個表空間;而一個資料庫空間由若干個表空間組成。

oracle中什麼是表空間

本教學操作環境:Windows7系統、Oracle 11g版、Dell G3電腦。

Oracle表空間

在資料庫系統中,儲存空間是較為重要的資源,合理利用空間,不但能節省空間,還可以提高系統的效率和工作性能。 

Oracle 可以存放大量數據,所有數據都儲存在數據檔案中。而資料檔案大小受作業系統限制,過大的資料檔案對資料的存取效能影響非常大。同時Oracle 是跨平台的資料庫, Oracle 資料可以輕鬆的在不同平台上移植,那麼如何提供統一存取格式的大容量呢? Oracle 採用表空間來解決。

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

Oracle 中所有的資料(包含系統資料),全部保存在表空間中,常見的表空間有:

  • 系統表空間:

    存放系統數據,系統表空間在資料庫建立時建立。表空間名稱為SYSTEM。存放資料字典和視圖以及資料庫結構等重要係統資料訊息,在運行時如果SYSTEM 空間不足,對資料庫影響會比較大,雖然在系統運作過程中可以透過指令擴充空間,但還是會影響資料庫的效能,因此有必要在建立資料庫時適當的把資料檔設定大一些。

  • TMEP 表空間:

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

  • 使用者表自訂空間:

    #使用者可以透過CREATE TABLESPACE 指令建立表格空間

建立表空間

Oracle建立表格空間語法結構如下:

create tablespace tab_name
datafile 'filename'
size n
[autoextend on next n1 maxsize m /of]
[permanent] 
[extent management local/dictionary];

語法解析:

  • create tablespace:建立表格空間的關鍵字。

  • tab_name:建立後表空間的名字。

  • datafile:指定資料檔案的路徑為filename。

  • size n:指定資料檔案的大小。

  • [autoextend on next n1 maxsize m /of ]:表示表空間是否是自動擴展的,on 為自動擴展,of為不擴展,當自動擴展時,next n1表示自動擴展的大小,max size m 表示資料檔最大擴展到m大小。

  • [permanent] :表示建立的表格空間的類型,permanent表示永久表空間,不填都是預設永久表空間。

  • [extent management local/dictionary]:表示表格空間管理的方式,local表示本地的管理模式,dictionary表示資料字典管理模式,預設都是本機管理方式。

案例1、根據表空間建立語法,建立一個100M大小資料檔(student.dbf)的表空間student,程式碼如下:

create tablespace student
datafile 'E:\APP\ADMIN\ORADATA\ORCL\student.DBF'
size 100m
autoextend on next 10m maxsize 500m
permanent
extent management local;

案例解析:

建立一個student表空間,指定了資料檔案為“E:\APP\ADMIN\ORADATA\ORCL\student.DBF”,表空間是自動擴充的,每次自動擴充大小為10M,最大擴展到500M,創建的是永久表空間,用來儲存student使用者的資料庫物件和數據,管理模式為本地管理。

我們查看資料字典dba_data_files和dba_tablespaces對建立好後的student表空間進行查詢,查詢程式碼如下:

select t.TABLESPACE_NAME, --表空间名
       t.FILE_NAME, --文件名
       t.AUTOEXTENSIBLE, --是否自动扩展
       t.BYTES / 1024 / 1024, --表空间初始大小
       t.MAXBYTES / 1024 / 1024, --表空间最大扩展到多少
       b.CONTENTS, --表空间类型
       b.EXTENT_MANAGEMENT --表空间管理模式
  from dba_data_files t, dba_tablespaces b
 where t.TABLESPACE_NAME = b.TABLESPACE_NAME

oracle中什麼是表空間

推薦教學:《Oracle教學

以上是oracle中什麼是表空間的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn