[20140729]關於LOB欄位儲存特性3.txt
[20140729]關於LOB欄位儲存特性3.txt
--前面我們看到只要lob資訊在塊外,掃描執行讀到這些資訊都存在物理讀。
SCOTT@test> @ver
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
create table t (id number,idx number,col1 clob,col2 clob, col3 clob) lob (col3) store as (disable storage in row);
create unique index i_t_id on t(id);
insert into t values (1,1,lpad('b',100,'b'),lpad('a',4000,'a'),lpad('a',4000,'a'));
commit ;
execute dbms_stats.gather_table_stats(user,'t',cascade=>true,method_opt=>'for all columns size 1',no_invalidate=>false);
--安裝的語言選擇NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK.這樣即使1個英文字元也佔用2個位元組.
--這樣都是插入8000位元組,lob的資訊儲存在塊外(我的資料庫是8k的).
--題外話題:最好使用blob型別,這樣可以原樣儲存,特別儲存的文字是英文的情況下,空間浪費比較嚴重,對於中文字符集.
--col1=lpad('b',100,'b'),應該在塊內。
--col2=lpad('a',4000,'a'),長度超出3964,應該在塊外。
--col3=lpad('b',4000,'b'),使用ENABLE STORAGE IN ROW,無論如何都在塊外。
SCOTT@test> select id,col2 from t where id=1;
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
4 consistent gets
2 physical reads
0 redo size
--如果col2是ENABLE STORAGE IN ROW,由於長度大於3964,儲存在塊外,導致 consistent gets增加到4,同時存在
--2個physical reads,無論執行多少次.
SCOTT@test> select id,col3 from t where id=1;
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
11 consistent gets
2 physical reads
0 redo size
--對比發現,ENABLE/DISABLE STORAGE IN ROW兩者的邏輯讀差異很大,前者僅僅4個邏輯讀,而後者僅僅11個邏輯讀,而且每次都是2個物理讀。
SCOTT@test> alter table t modify lob (col2) (CACHE);
Table altered.
SCOTT@test> alter table t modify lob (col3) (CACHE);
Table altered.
SCOTT@test> select id,col2 from t where id=1;
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
4 consistent gets
0 physical reads
0 redo size
SCOTT@test> select id,col3 from t where id=1;
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
11 consistent gets
0 physical reads
0 redo size
--可以發現修改lob屬性為cache後,物理讀消失。
--如果應用要反覆讀取lob欄位,設定lob的cache屬效能提高讀取效能,特別對於asm以及使用裸裝置的情況。
--但是必須權衡,如果lob佔用data buffer 太多,也可能會影響其他塊在data buffer。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-1244295/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE LOB大欄位維護Oracle
- [20181020]lob欄位的索引段.txt索引
- [20181031]lob欄位與布隆過濾.txt
- [20181022]lob欄位的lobid來之那裡.txt
- [20210208]lob欄位與查詢的問題.txt
- LOB欄位相關概念(自動建立LOB索引段和重建索引方法)索引
- 主表子表動態欄位儲存實現方式總結
- SAP WM中階儲存型別裡的Full stk rmvl 欄位和Return Storage type欄位型別
- [201804012]關於hugepages 3.txt
- 儲存容量及相關計算單位
- 【ORA-01555】Oracle LOB欄位匯出 報錯 ORA-01555Oracle
- mssql sqlserver 可以儲存二進位制資料的欄位型別詳解SQLServer型別
- Oracle資料庫高水位釋放——LOB欄位空間釋放Oracle資料庫
- [重慶思莊每日技術分享]-重建LOB欄位上的IndexIndex
- 關於Entity Freamwork 儲存過程操作儲存過程
- 如何在Spring Data MongoDB 中儲存和查詢動態欄位SpringMongoDB
- 關於日期及時間欄位的查詢
- 關於Thinkphp 使用AdvModel來讀取Blob欄位PHP
- SAP QM 主檢驗特性主資料關鍵欄位解釋
- 關於LaravelAdmin和Dcat在$form->saving修改了表單提交的欄位值,但儲存時卻不生效的解決方法LaravelORM
- dbms_lob儲存過程導致臨時表空間100%儲存過程
- 物件儲存服務的Lambda特性物件
- 物件儲存服務的加密特性物件加密
- [20181124]關於降序索引問題3.txt索引
- 關於儲存及CSS的一些技巧CSS
- 關於Mysql資料儲存,你瞭解多少?MySql
- SAP CRM銷售訂單UI上的欄位對應的資料庫表儲存欄位:requested start date和end dateUI資料庫
- MySQL8.0 新特性:Partial Update of LOB ColumnMySql
- [BUG反饋]模型中的欄位型別為日期是隻儲存了年份模型型別
- Spark儲存Parquet資料到Hive,對map、array、struct欄位型別的處理SparkHiveStruct型別
- 物件儲存服務的事件通知特性物件事件
- 物件儲存服務的壓縮特性物件
- Oracle12C新特性_不可見欄位(二)Oracle
- Python3中關於cookie的建立與儲存PythonCookie
- ORACLE 資料匯出LOB欄位報錯ORA-31693,ORA-02354,ORA-22924Oracle
- 【Django drf】 序列化類常用欄位類和欄位引數 定製序列化欄位的兩種方式 關係表外來鍵欄位的反序列化儲存 序列化類繼承ModelSerializer 反序列化資料校驗原始碼分析Django繼承原始碼
- 阿里雲物件儲存OSS支援版本管理特性阿里物件
- 物件儲存服務的影像處理特性物件
- 關於InnoDB表資料和索引資料的儲存索引