Oracle SecureFile的功能第3/4頁
COMMIT;
END;
/
EXEC DBMS_STATS.gather_table_stats(USER, 'nocompress_tab');
EXEC DBMS_STATS.gather_table_stats(USER, 'compress_tab');
COLUMN segment_name FORMAT A30
SELECT segment_name, bytes
FROM user_segments
WHERE segment_name IN ('COMPRESS_LOB', 'NOCOMPRESS_LOB');
SEGMENT_NAME BYTES
------------------------------ ----------
COMPRESS_LOB 131072
NOCOMPRESS_LOB 71565312
2 rows selected.
SQL>
我們可以看到壓縮的LOB段比沒有壓縮的LOB段明顯要小得多,空間節(jié)約的程度依賴于LOB段數(shù)據(jù)的存儲類型。
可以使用ALTER TABLE命令重新設置壓縮模式。
ALTER TABLE compress_tab MODIFY LOB(clob_data) ( NOCOMPRESS ); EXEC DBMS_STATS.gather_table_stats(USER, 'compress_tab'); COLUMN segment_name FORMAT A30 SELECT segment_name, bytes FROM user_segments WHERE segment_name IN ('COMPRESS_LOB', 'NOCOMPRESS_LOB'); SEGMENT_NAME BYTES ------------------------------ ---------- COMPRESS_LOB 76808192 NOCOMPRESS_LOB 71630848 2 rows selected. SQL> |
LOB加密
SecureFile LOB的加密功能依賴于錢夾或硬件安全模型(HSM)掌管加密密鑰,錢夾設置與透明數(shù)據(jù)加密(TDE)和表空間加密描述的一樣,因此在嘗試下面的例子前先完成那兩個實驗。
SecureFile的ENCRYPT選項執(zhí)行塊級別的LOB內容加密,一個可選的USING子句定義了使用哪種加密算法(3DES168, AES128, AES192, 或AES256),默認使用AES192算法,NO SALT選項對于SecureFile加密不可用,加密是應用在每一列上的,因此它會影響所有使用LOB的分區(qū),DECRPT選項用于明確地阻止加密,下面的例子顯示了使用加密的SecureFile LOB數(shù)據(jù)類型創(chuàng)建表。
CREATE TABLE encrypt_tab ( id NUMBER, clob_data CLOB ) LOB(clob_data) STORE AS SECUREFILE encrypt_lob( ENCRYPT USING 'AES256' ); |
ALTER TABLE命令可以用于加密或解密現(xiàn)有的列,要切換加密算法你必須使用REKEY選項。
ALTER TABLE encrypt_tab MODIFY ( clob_data CLOB DECRYPT ); ALTER TABLE encrypt_tab MODIFY ( clob_data CLOB ENCRYPT USING '3DES168' ); ALTER TABLE encrypt_tab REKEY USING 'AES192'; |
加密是不受原來的導入導出工具或表空間傳輸支持的,因此必須使用數(shù)據(jù)泵導入導出工具來傳輸數(shù)據(jù)。
LOB緩存和日志
BasicFile和SecureFile LOB共享了部分基礎的緩存和日志選項,常見的緩存選項有:
◆CACHE - LOB數(shù)據(jù)被放在緩沖區(qū)中。
◆CACHE READES - 僅讀取LOB數(shù)據(jù)過程中它放在緩沖區(qū)中,寫操作時不放進去。
◆NOCACHE - LOB數(shù)據(jù)不放在緩沖區(qū)中,這是BasicFile和SecureFile LOB的默認值。
基本的日志選項有:
◆LOGGING - 創(chuàng)建和修改LOB時產生完全重做日志,這是默認設置。
◆NOLOGGING - 操作不記錄在重做日志中,因此不能恢復,在首次創(chuàng)建和巨大的載入過程中有用。
而且,SecureFile LOB還有一個日志選項FILESYSTEM_LIKE_LOGGING,只記錄元數(shù)據(jù),在出現(xiàn)故障后仍然允許段的恢復。
CACHE選項意味著LOGGING,因此你不能將CACHE與NOLOGGING或FILESYSTEM_LIKE_LOGGING合在一起使用。
下面的代碼顯示了一個在表創(chuàng)建過程中和創(chuàng)建后明確設置了緩存和日志選項的例子。
CREATE TABLE caching_and_logging_tab ( id NUMBER, clob_data CLOB ) LOB(clob_data) STORE AS SECUREFILE( NOCACHE FILESYSTEM_LIKE_LOGGING ); ALTER TABLE caching_and_logging_tab MODIFY LOB(clob_data) ( CACHE ); PL/SQL API |
相關文章
Oracle Translate 統(tǒng)計字符出現(xiàn)的次數(shù)示例代碼
這篇文章主要介紹了Oracle Translate 統(tǒng)計字符出現(xiàn)的次數(shù)示例代碼,非常不錯具有參考借鑒價值,需要的朋友可以參考下2017-03-03oracle中左填充(lpad)和右填充(rpad)的介紹與用法
這篇文章主要跟大家介紹了關于oracle中左填充(lpad)和右填充(rpad)的相關資料,通過填充我們可以固定字段的長度,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。2017-08-08Oracle怎么刪除數(shù)據(jù),Oracle數(shù)據(jù)刪除的三種方式
這篇文章主要介紹了Oracle中刪除數(shù)據(jù)的三種方式小結,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02Oracle數(shù)據(jù)庫優(yōu)化策略總結篇
本文介紹了一些很實用但卻不是很常見的Oracle數(shù)據(jù)庫的優(yōu)化策略,包括批量FETCH、SQL預解析等,需要的朋友可以參考下2015-08-08