oracle中什么是表空間

oracle中,表空間是Oracle數據對象和數據存儲的容器,是一個邏輯概念,若干操作系統文件就可以組成一個表空間。表空間統一管理空間中的數據文件,一個數據文件只能屬于一個表空間;而一個數據庫空間由若干個表空間組成。

oracle中什么是表空間

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

Oracle表空間

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

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:APPADMINORADATAORCLstudent.DBF' size?100m autoextend?on?next?10m?maxsize?500m permanent extent?management?local;

案例解析:

創建一個student表空間,指定了數據文件為“E:APPADMINORADATAORCLstudent.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教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享