Oracle Clob的一致讀
表裡只儲存了一個指標,指向LOB的儲存位置。而具體到儲存,還分為lobindex,和lobsegment。表中的LOB實際上是指向lobindex, 而lobindex再指向LOB本身的各個部分。為了得到LOB中的N~M位元組,要使用表中的指標(LOB定位器)解除引用,遍歷lobindex來找到所需的資料庫(chunk), 然後按順序訪問。這使得隨機訪問LOB的任何部分都同樣迅速,你可以用同樣快的速度來得到LOB的最前面,中間或者最後面的部分而無需再從頭遍歷LOB。
LOB的儲存可以指定儲存方式:
CREATE TABLE "SCOTT"."TEST_CLOB2"
( "A" CLOB
) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
TABLESPACE "USERS"
LOB ("A") STORE AS BASICFILE (
TABLESPACE "USERS" DISABLE STORAGE IN ROW CHUNK 8192 RETENTION
NOCACHE LOGGING ) ;
TOM Kyte:
預設行為是啟用行記憶體儲(ENABLE STORAGE IN ROW),而且一般來講,如果你知道LOB 總是能
在表本身中放下,就應該採用這種預設行為。例如,你的應用可能有一個某種型別的DESCRIPTION 欄位。
這個DESCRIPTION 可以儲存0~32KB 的資料(或者可能更多,但大多數情況下都少於或等於32KB)。
已知很多描述都很簡短,只有幾百個字元。如果把它們單獨儲存,並在每次獲取時都通過索引來訪問,就
會存在很大的開銷,你完全可以將它們內聯儲存,即放在表本身中,這就能避免單獨儲存的開銷。不僅如
此,如果LOB 還能避免獲取LOB 時所需的物理I/O。
create table test_clob(a clob);
declare
v_result varchar2(4000);
begin
v_result := dbms_metadata.get_ddl(object_type => 'TABLE',name => 'TEST_CLOB');
dbms_output.put_line(v_result);
end;
CREATE TABLE "SCOTT"."TEST_CLOB"
( "A" CLOB
) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
TABLESPACE "USERS"
LOB ("A") STORE AS BASICFILE (
TABLESPACE "USERS" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION
NOCACHE LOGGING )
另外, LOB的一致讀的實現方式與其他資料型別是不一樣的:
LOB的一致讀映像來自於LOB段本身,而不是undo段。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8520577/viewspace-769067/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JDBC複習,oracle的blob,clob的讀寫-zhaiJDBCOracleAI
- oracle的一致讀和當前讀Oracle
- 關於Oracle的BLOB和CLOBOracle
- 【SQL】Oracle建立CLOB型別上傳下載讀取檔案SQLOracle型別
- Oracle Blob 轉換為ClobOracle
- Oracle一致性讀(consistents gets)Oracle
- Oracle一致性讀(Consistent Read)的原理Oracle
- 簡單介紹2種Java讀取Oracle大欄位資料(CLOB)的方法JavaOracle
- java jdbc存取oracle clob型別JavaJDBCOracle型別
- oracle9i replace clob 的一個bugOracle
- Oracle資料庫中一致讀行為的改變Oracle資料庫
- 讀取顯示CLOB的值,不能讀取啊,請高手指點11!
- ORACLE 物理讀 邏輯讀 一致性讀 當前模式讀總結淺析Oracle模式
- oracle clob欄位去除html標籤OracleHTML
- Oracle中Clob型別處理解析Oracle型別
- Oracle 10g Logminer clob bugOracle 10g
- 構造一致性CR塊讀,ORACLE需要做的工作:Oracle
- oracle中同一事務內的一致性讀Oracle
- zt_oracle一致性讀consistent readOracle
- 實驗演示Oracle“多版本一致讀”和“Cross DDL”OracleROS
- 【基礎篇一致性讀】一致性讀分析
- 【一致性讀的計算】
- 轉:Oracle資料庫一致性讀的原理(Consistent Read)Oracle資料庫
- 【基礎篇一致性讀】一致性讀分析(三)
- 【基礎篇一致性讀】一致性讀分析(續)
- Oracle 中LONG RAW BLOB CLOB型別介紹Oracle型別
- Oracle Long型別轉換為Clob型別Oracle型別
- 如何檢視ORACLE的LOB(BLOB和CLOB)物件佔用的大小Oracle物件
- oracle如何變更varchar2型別的列為clobOracle型別
- mysql一致性讀MySql
- clob處理
- CLOB與BLOB的轉換
- 參考oracle官方文件關於髒讀、一致性讀、undo中已提交資料塊的理解Oracle
- oracle小知識點2--一致性讀中的重啟動更新Oracle
- oracle blob_clob列的表如何指定sement_name及index nameOracleIndex
- Oracle DBLink中CLOB報錯ORA-22992Oracle
- 讀寫一致性的一些思考
- [20130902]Oracle 11G資料庫的一致讀性讀取行為的改變.txtOracle資料庫