Oracle 11gr2 的新特性-延遲段建立
在Oracle 11gr2中建立表所採用的預設模式是延遲段建立(deferred segment creation),即create table時,不會分配任何儲存空間,要延遲到insert時才會真正建立段(segment),下面通過一個小例子來說明:
1. 11gr2之前:
1) 確認資料庫版本:
A105024@O02DMS1>select * from v$version where rownum<2;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Prod
2) 建立測試表:
A105024@O02DMS1>create table test (id number);
Table created.
3) 檢視空間分配情況:
A105024@O02DMS1>select segment_name,EXTENTS,BLOCKS,BYTES from user_segments where segment_name='TEST';
SEGMENT_NAME EXTENTS BLOCKS BYTES
------------------------------------ ---------- ---------- ----------
TEST 1 8 65536
可以發現在11gr2之前,建立表的同時就已經為該表預設分配了一個8 block的segment。
2. 11gr2:
1) 確認資料庫版本:
A105024@O07DMS0>select * from v$version where rownum<2;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
2) 建立測試表:
A105024@O07DMS0>create table test (id number);
Table created.
3) 檢視空間分配情況:
A105024@O07DMS0>select segment_name,EXTENTS,BLOCKS,BYTES from user_segments where segment_name='TEST';
no rows selected
可以發現在11gr2中,建立表並不為該表分配任何空間。
4) 插入資料:
A105024@O07DMS0>insert into test values(1);
1 row created.
5) 再次檢視空間分配情況:
A105024@O07DMS0>select segment_name,EXTENTS,BLOCKS,BYTES from user_segments where segment_name='TEST';
SEGMENT_NAME EXTENTS BLOCKS BYTES
-------------------------------------------- ---------- ----------
TEST 1 128 1048576
可以看到知道第一個insert後,才真正為表分配空間。
11gr2中這樣做無非就是為了節省空間,不過本人倒是覺得這樣節省下來的空間很少,卻帶來了一些意想不到的壞處,比如我就曾碰到用exp/expdp無法匯出延遲段建立的表,導致用imp/impdp匯入時丟失了這些表的定義。
1. 11gr2之前:
1) 確認資料庫版本:
A105024@O02DMS1>select * from v$version where rownum<2;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Prod
2) 建立測試表:
A105024@O02DMS1>create table test (id number);
Table created.
3) 檢視空間分配情況:
A105024@O02DMS1>select segment_name,EXTENTS,BLOCKS,BYTES from user_segments where segment_name='TEST';
SEGMENT_NAME EXTENTS BLOCKS BYTES
------------------------------------ ---------- ---------- ----------
TEST 1 8 65536
可以發現在11gr2之前,建立表的同時就已經為該表預設分配了一個8 block的segment。
2. 11gr2:
1) 確認資料庫版本:
A105024@O07DMS0>select * from v$version where rownum<2;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
2) 建立測試表:
A105024@O07DMS0>create table test (id number);
Table created.
3) 檢視空間分配情況:
A105024@O07DMS0>select segment_name,EXTENTS,BLOCKS,BYTES from user_segments where segment_name='TEST';
no rows selected
可以發現在11gr2中,建立表並不為該表分配任何空間。
4) 插入資料:
A105024@O07DMS0>insert into test values(1);
1 row created.
5) 再次檢視空間分配情況:
A105024@O07DMS0>select segment_name,EXTENTS,BLOCKS,BYTES from user_segments where segment_name='TEST';
SEGMENT_NAME EXTENTS BLOCKS BYTES
-------------------------------------------- ---------- ----------
TEST 1 128 1048576
可以看到知道第一個insert後,才真正為表分配空間。
11gr2中這樣做無非就是為了節省空間,不過本人倒是覺得這樣節省下來的空間很少,卻帶來了一些意想不到的壞處,比如我就曾碰到用exp/expdp無法匯出延遲段建立的表,導致用imp/impdp匯入時丟失了這些表的定義。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26277071/viewspace-708835/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【延遲段建立】Oracle 11gR2的延遲段建立(deferred segment creation)特性Oracle
- 【11gR2新特性】extent延遲建立
- Oracle11gr2延遲段建立Oracle
- Unlimited Tablespace 許可權 及 “延遲段”特性MIT
- oracle 11g deferred_segment_creation段延遲建立Oracle
- oracle 11GR2 新特性Oracle
- oracle11g 新特性 - rman自動備份控制檔案延遲Oracle
- 關於SYS使用者無法使用延遲段建立的示例
- ES6新特性:JavaScript中內建的延遲物件PromiseJavaScript物件Promise
- oracle的延遲約束Oracle
- 【Deferred Segment Creation】Oracle 11g新特性-延期建立段Oracle
- 11g新特性 密碼錯誤驗證延遲特性的相關驗證密碼
- 11G新特性-控制檔案延遲自動備份
- oracle11g控制檔案自動備份延遲特性Oracle
- oracle 11gR2 新特性 diskgroup 重新命名Oracle
- SYS使用者物件不支援延遲段物件
- oracle 11GR2新特性 Cluster Time Synchronization Service 配置Oracle
- ORACLE 11GR2 新特性CACHE表與以前的區別Oracle
- 11GR2新特性(轉)
- RabbitMQ延遲訊息的延遲極限是多少?MQ
- oracle10G新特性之段顧問的應用Oracle
- 【RAC】11gR2 新特性:Oracle Cluster Health Monitor(CHM)簡介Oracle
- 如何建立 Laravel 延遲載入的服務提供者Laravel
- Mysql 建立心跳錶來監控Replication的Slave是否延遲MySql
- Oracle 11g中的密碼延遲功能Oracle密碼
- ORACLE密碼錯誤驗證延遲Oracle密碼
- oracle 塊延遲清除(delayed block cleanout) 理解OracleBloC
- oracle block cleanout塊清除_延遲塊清除OracleBloC
- 【RAC】11gR2 新特性: Rebootless RestartbootREST
- Oracle 11gR2 ASM磁碟組管理與新特性實踐[1]OracleASM
- oracle 11gR2 新特性 orc和vote盤可以放在ASM中OracleASM
- script的延遲執行
- 延遲釋出
- oracle 12c 新特性 Temporary UNDO 臨時回滾段Oracle
- Oracle資料庫密碼延遲驗證Oracle資料庫密碼
- 【11gR2新特性】result cache 的三種模式模式
- 11GR2的新特性Deferred Segment Creation
- 11gR2新特性---Gpnp守護程式