oracle資料表空間簡介
Oracle資料表空間是資料管理的基本方法,所有使用者的對象要存放在資料表空間中,也就是使用者有空間的使用權,才能建立使用者物件。否則是不充許建立對象,因為就是想建立對象,如表,索引等,也沒有地方存放,Oracle會提示:沒有儲存配額。因此,在建立對象之前,首先要分配儲存空間。分配儲存,就要建立資料表空間:
Oracle可以建立的資料表空間有三種類型:
(1)temporary: 暫存資料表空間,用於臨時資料的存放;建立暫存資料表空間的文法如下:create temporary tablespace test_temp ......
(2)undo: 還原資料表空間。用於存入重做記錄檔。建立還原資料表空間的文法如下:create undo tablespace test_undo ......
(3)使用者(資料)資料表空間: 最重要,也是用於存放使用者資料資料表空間可以直接寫成: create tablespace test_data .......
temporaty 和 undo 資料表空間是Oracle 管理的特殊的資料表空間。只用於存放系統相關資料。
查看錶空間 select tablespace_name,file_id,bytes,file_name from dba_data_files
select tablespace_name,file_id,bytes,file_name from dba_data_files
建立(資料)資料表空間
(建立資料表空間stu_data,datafile指定資料資料表空間的隱藏檔的位置,用來存放資料的檔案)
--第一種 create tablespace stu_data logging datafile 'D:\oracle\product\10.2.0\oradata\orcl\stu_data.dbf' size 32m autoextend on next 32m maxsize 2048m extent management local;
--第一種create tablespace stu_data loggingdatafile 'D:\oracle\product\10.2.0\oradata\orcl\stu_data.dbf' size 32m autoextend on next 32m maxsize 2048m extent management local;
建立資料表空間參數講解
1、logging
有 nologging和 logging兩個選項,nologging:建立資料表空間時,不建立重做日誌。logging和nologging正好相反, 就是在建立資料表空間時產生重做日誌。用nologging時,好處在於建立時不用組建記錄檔,這樣資料表空間的建立較快,但是沒能日誌,資料丟失後,不能恢複,但是一般我們在建立資料表空間時,是沒有資料的,按通常的做法,是建完資料表空間,並匯入資料後,是要對資料做備份的,所以通常不需要資料表空間的建立日誌,因此,在建立資料表空間時,選擇nologging,以加快資料表空間的建立速度。
2、datafile 用於指定資料檔案的具體位置和大小。
如: datafile 'D:\Oracle\ORADATA\ORA92\LUNTAN.ora' SIZE 5M 說明檔案的存放位置是'D:\Oracle\ORADATA\ORA92\LUNTAN.ora' ,檔案的大小為5M。如果有多個檔案,可以用逗號隔開:
datafile 'D:\ORACLE\ORADATA\ORA92\LUNTAN.ora' SIZE 5M, 'D:\ORACLE\ORADATA\ORA92\dd.ora' SIZE 5M
但是每個檔案都需要指明大小。單位以指定的單位為準,如 5M 或 500K。對具體的檔案,可以根據不同的需要,存放大不同的介質上,如磁碟陣列,以減少IO竟爭。指定檔案名稱時,必須為絕對位址,不能使用相對位址。
3、extent management local:儲存區管理方法
在Oracle 8i以前,可以有兩種選擇,一種是在字典中管理(dictionary),另一種是本地管理(local),從9I開始,只能是本地管理方式。因為local管理方式有很多優點。在字典中管理(dictionary): 將資料檔案中的每一個儲存單元做為一條記錄,所以在做DM操作時,就會產生大量的對這個管理表的Delete和Update操作。做大量資料管理時,將會產生很多的DM操作,嚴得的影響效能,同時,長時間對錶資料的操作,會產生很多的磁碟片段,這就是為什麼要做磁碟整理的原因。本地管理(local): 用二進位的方式管理磁碟,有很高的效率,同進能最大限度的使用磁碟。 同時能夠自動追蹤記錄臨近空閑空間的情況,避免進行空閑區的合併作業。
4、segment space management:磁碟擴充管理方法:
◆segment space management: 使用該選項時區大小由系統自動確定。由於 Oracle 可確定各區的最佳大小,所以區大小是可變的。
◆uniform segment space management:指定區大小,也可使用預設值 (1 MB)。
5、段空間的管理方式:
◆auto: 只能使用在本地管理的資料表空間中。 使用LOCAL管理Oracle資料表空間時,資料區塊中的空閑空間增加或減少後,其新狀態都會在位元影像中反映出來。位元影像使 Oracle 管理空閑空間的行為更加自動化,並為管理空閑空間提供了更好的性,但對含有LOB欄位的表不能自動管理。
◆nanual: 目前已不用,主要是為向後相容。
--第二種 create tablespace stu_data datafile 'D:\oracle\product\10.2.0\oradata\orcl\stu_data.dbf' size 800M autoextend on next 50M maxsize unlimited --maxsize unlimited 是大小不受限制
--第二種create tablespace stu_data datafile 'D:\oracle\product\10.2.0\oradata\orcl\stu_data.dbf' size 800M autoextend on next 50M maxsize unlimited --maxsize unlimited 是大小不受限制
--第三種 create tablespace stu_data datafile 'D:\oracle\product\10.2.0\oradata\orcl\stu_data.dbf' size 800M autoextend on next 50M maxsize 1000M extent management local uniform; --unform表示區的大小相同,預設為1M
--第三種create tablespace stu_data datafile 'D:\oracle\product\10.2.0\oradata\orcl\stu_data.dbf' size 800M autoextend on next 50M maxsize 1000Mextent management local uniform; --unform表示區的大小相同,預設為1M
--第四種 create tablespace stu_data datafile 'D:\oracle\product\10.2.0\oradata\orcl\stu_data.dbf' size 800M autoextend on next 50M maxsize 1000M extent management local uniform size 500K; --unform size 500K表示區的大小相同,為500K
--第四種create tablespace stu_data datafile 'D:\oracle\product\10.2.0\oradata\orcl\stu_data.dbf' size 800M autoextend on next 50M maxsize 1000M extent management local uniform size 500K; --unform size 500K表示區的大小相同,為500K
--第五種 create tablespace stu_data datafile 'D:\oracle\product\10.2.0\oradata\orcl\stu_data.dbf' size 800M autoextend on next 50M maxsize 1000M extent management local autoallocate; --autoallocate表示區的大小由隨表的大小自動動態改變,大表使用大區小表使用小區