Oracle 18c新特性詳解 - 表和表空間相關的新特性

Sun雪發表於2018-11-09

18c新特性系列回顧:

Oracle 18c新特性詳解-多租戶專題:www.jianshu.com/p/4d4fc1d51…

Oracle 18c新特性詳解:In-Memory 專題:www.jianshu.com/p/239447b8c…

今天分享跟表相關的特性。

新特性1:聯機表操作

在Oracle 12.2中,支援表兩種聯機操作:

1、線上表移動 online table move:將表從一個表空間線上移動到另一個表空間。

2、分割槽分裂:對分割槽表中現有分割槽再次進行分裂

3、線上分割槽:將非分割槽表改為分割槽表

在Oracle 18c中,將增加以下兩種表的線上操作:

4、表分割槽合併:將現在的分割槽表改變為非分割槽表

5、表分割槽重構:一種形式的分割槽變更為另一種形式的分割槽。

如下:

Oracle 18c新特性詳解 - 表和表空間相關的新特性
那麼,我們來回顧一下,Oracle在不同的版本中對錶的操作都可以實現哪些,又經過了怎麼樣的發展過程。

•Oracle Database 11g Release 1

–建立索引

–列上加預設值

–加約束

•Oracle Database 12c Release 1

–刪除索引

–刪除約束

–設定為unused列

–表分割槽移動

如果你的表分割槽太多不方便,而資料又不太頻繁地更新,可以將分割槽合併為更大的分割槽,簡化管理。這在資料庫的以前版本中也可以做到,但是不能聯機操作,合併的同時資料無法訪問。在Oracle資料庫18c中,你可以線上合併分割槽並維護索引。這個版本里,對錶的所有線上操作都齊全了,功能算是完整了。

新特性2:多型表的支援

在18c中,提出了對多型表的支援,多型表中行的型別可以在定義時宣告或不宣告。多型表函式利用動態SQL功能來建立功能強大且複雜的自定義函式。這對於要求具有適用於任意輸入表或查詢的通用擴充套件的介面的應用程式很有用。

在多型表中封裝了更復雜的演算法,從而實現隱藏演算法,能夠利用強大的,動態SQL功能,通過任何表格式進行處理,最終返回SQL行集 (表,JSON, XML doc等)

Oracle 18c新特性詳解 - 表和表空間相關的新特性
新特性3:Inline外部表

Inline外部表能夠透明訪問外部表。使外部表的執行時定義成為SQL語句的一部分,通過SQL直接呼叫,無需建立僅需一次使用的外部表,也無需在資料字典中建立外部表作為持久資料庫物件。這使得開發靈活了很多,簡化了訪問外部資料的過程。也減少了大量後設資料的處理,實現更高效的資料庫應用程式。

以前的版本中,訪問外部表是這樣操作的:

CREATE TABLE sales_xt

(prod_idnumber, …)

TYPE ORACLE_LOADER

LOCATION ’new_sales_kw13')

REJECT LIMIT UNLIMITED );

INSERT INTO sales SELECT * FROM sales_xt;

DROP TABLE sales_xt;

通過inline外部表的引入,可以以更簡單的方式實現:

INSERT INTO sales

SELECT sales_xt.*

FROM EXTERNAL( (prod_idnumber, …)

TYPE ORACLE_LOADER

LOCATION’new_sales_kw13')

REJECT LIMIT UNLIMITED);

新特性4:In-Memory 對外部表的支援

Oracle 18c中支援IM對外部表的訪問,外部表使得Oracle對外部資料操作更加靈活,並且基於記憶體列式儲存壓縮,能夠更快的支援大資料量的運算,對於資料倉儲環境將會是極大的增強。並且由於外部表的資料基本處於靜態,更適合使用In-Memory來處理,Oracle聲稱這一改進將會帶來100倍的提升。

Oracle 18c新特性詳解 - 表和表空間相關的新特性
新特性5:私有臨時表

我們知道,臨時表是短暫存在的表,只適用於報表類程式。在Oracle資料庫18c中,Oracle為臨時表提供了更靈活的使用:私有臨時表,一個在記憶體中用完即棄的臨時物件。如果開發人員需要為不同的事務建立不同的臨時表,或在只讀資料庫使用臨時表時,都可以使用私有臨時表。這種方法為開發人員提供了更大的靈活性。

Oracle 18c新特性詳解 - 表和表空間相關的新特性
新特性6:Shadow Tablespaces

18c中,推出了 Shadow lost write新特性,Shadow lost write在可能導致嚴重資料損壞之前檢測到丟失的寫入。 可以為資料庫,表空間或資料檔案啟用Shadow lost write保護,在故障時提供快速檢測和即時響應,最大限度地減少因資料損壞而在資料庫中發生的資料丟失,而無需Oracle Data Guard備用資料庫。

該特性的實現方式就是在資料庫中建立shadow tablespace,在建立表空間的語句中附加 LOST WRITE PROTECTION即可。

在建立表空間之後,需要使用alter Database/alter pluggable database 語句為資料庫開啟或者禁用shadow tablespace。

這一新特性,我們在18c體系架構圖中也有表達:

Oracle 18c新特性詳解 - 表和表空間相關的新特性
更多新特性請檢視Oracle 18c官方文件。docs.oracle.com/en/database…

關於多租戶新特性:www.jianshu.com/p/4d4fc1d51…

關於In-Memory新特性:www.jianshu.com/p/239447b8c…

相關文章