今天我們來(lái)討論一下Oracle 11.2.4版本的一些特性以及使用方法。
首先,哪些特性在該版本中得到了改進(jìn)或增加呢?其中最值得一提的就是針對(duì)分區(qū)表的增強(qiáng)分區(qū)修復(fù)工具Enhanced Partition Maintenance Utility。這個(gè)工具能夠幫助用戶進(jìn)行增量修復(fù),避免了需要對(duì)整個(gè)表進(jìn)行修復(fù)的耗時(shí)和風(fēng)險(xiǎn),相當(dāng)于給了DBA一把多功能的武器。
# syntax example of enhanced partition maintenance utility ALTER TABLE orders SPLIT PARTITION p1 INTO (PARTITION p2 VALUES LESS THAN (TO_DATE('01-MAR-2008', 'DD-MON-YYYY')), PARTITION p3 VALUES LESS THAN (TO_DATE('01-APR-2008', 'DD-MON-YYYY'))) UPDATE INDEXES KEYS PARALLEL 4;
除此之外,11.2.4還增強(qiáng)了parallel execution。比如說(shuō)在parallel DDL操作進(jìn)行的時(shí)候,optimizer會(huì)自動(dòng)將數(shù)據(jù)字典鎖定的操作轉(zhuǎn)變成串行操作,避免了因?yàn)閙etadata contention帶來(lái)的瓶頸。同時(shí)在parallel的情境下也可以對(duì)binary XML進(jìn)行更高效的查詢,增強(qiáng)了處理文檔的能力。
# syntax example of parallel execution ALTER SESSION ENABLE PARALLEL DDL; CREATE TABLE customers PARALLEL 16 AS SELECT * FROM orders WHERE customer_id BETWEEN 100 AND 200;
此外,可以看到在這個(gè)版本中提供了一些新的表達(dá)式和函數(shù),比如user-defined aggregate functions和listagg,能夠更高效地進(jìn)行一些常見(jiàn)的計(jì)算和處理。listagg函數(shù)在將多個(gè)值合并成一個(gè)字符串的時(shí)候非常有用,而user-defined aggregate functions則可以自定義一些聚合計(jì)算來(lái)滿足特定需求。
# syntax example of listagg function SELECT department_id, LISTAGG(employee_Name, ',') WITHIN GROUP (ORDER BY employee_name) "Emp_list" FROM employees GROUP BY department_id; # syntax example of user-defined aggregate functions CREATE OR REPLACE TYPE WMA_Type AS OBJECT ( n NUMBER, total NUMBER, STATIC FUNCTION ODCIAggregateInitialize(ctx IN OUT WMA_Type) RETURN NUMBER, MEMBER FUNCTION ODCIAggregateIterate(SELF IN OUT WMA_Type, wma IN NUMBER) RETURN NUMBER, MEMBER FUNCTION ODCIAggregateTerminate(SELF IN WMA_Type, returnValue OUT NUMBER, flags IN NUMBER) RETURN NUMBER, MEMBER FUNCTION ODCIAggregateMerge(SELF IN OUT WMA_Type, ctx2 IN WMA_Type) RETURN NUMBER );
最后還有一個(gè)想提一下的特性就是Online Move數(shù)據(jù)文件。在11.2.4之前,Oracle需要將表空間設(shè)置成offline模式之后才能完成數(shù)據(jù)文件的移動(dòng)。這種方式不僅繁瑣,還帶來(lái)了業(yè)務(wù)上的影響。而通過(guò)Online Move功能之后,讓數(shù)據(jù)文件的遷移過(guò)程更加輕松有力,不會(huì)影響到操作效率。
# syntax example of online move data file ALTER TABLESPACE users OFFLINE NORMAL; ALTER DATABASE DATAFILE '/u02/oradata/users.dbf' RENAME TO /u02/oradata/users_new.dbf'; ALTER TABLESPACE users RENAME DATAFILE '/u02/oradata/users.dbf' TO '/u02/oradata/users_backup.dbf'; ALTER TABLESPACE users ONLINE;
以上就是關(guān)于11.2.4 Oracle版本的一些特性和使用方法的簡(jiǎn)要介紹。當(dāng)然,不同的業(yè)務(wù)和應(yīng)用場(chǎng)景肯定需要使用到不同的數(shù)據(jù)庫(kù)技巧和方法,希望本文能夠?qū)Υ蠹矣兴鶈l(fā)。