TimesTen記憶體資料庫評估和計算表大小及碎片
在TimesTen記憶體資料庫的規劃階段,我們需要評估記憶體資料庫表佔用記憶體空間的大小,以合理的規劃記憶體資料庫的大小和評估需要遷移到記憶體資料庫的表及欄位;在實際運維過程中,系統上線一定的時間以後,我們需要計算表的大小,甚至需要評估記憶體資料庫表是否存在碎片等。
TimesTen中分別使用ttsize和ttcomputetabsizes評估和計算表的大小;兩個built的作用不同,ttsize用於儲存規劃時計算需要分配的記憶體空間大小;ttcomputetabsizes用於在專案運維中,詳細計算當前各個表所佔用空間大小。
TimesTen中運維和支援的時候,客戶和開發商經常會問到關於表大小的估算方法,以及在系統執行一段時間後,為什麼進行了表資料的清理,但是空間無法釋放,在11.2.2.x之前的版本,只有使用dsmap的方式才能計算每個表的大小及存在多少空行,從11.2.2版本開始,TimesTen提供了ttComputeTabSizes可以用於計算表的大小及目前有多少空行。
1、ttsize是用於估算表或檢視的大小,包括索引的大小的一個儲存過程。也可以指定要估算的行數和估算的VARBINARY或VARCHAR型別的比例。
使用方法:
ttSize('tblName', [nRows],[frac]);
tblName為要估算的表名;nRows引數預設為當前表的資料量,也可以指定要估算的資料量。frac引數是指定估算的表中每個VARBINARY和VARCHAR型別的估算定義長度的比例(比如varchar(20)的0.5就是假設每行的長度均為10),預設值為0.5,該引數的取值範圍是0~1之間的小數。
e.g:
Command> select count(*) from TY.TANGYUN;
< 200 >
1 row found.
Command> call ttsize('TY.TANGYUN');
< 1273989.00000000 >
Command> call ttsize('TY.TANGYUN',200);
< 1273989.00000000 >
1 row found.
Command> call ttsize('TY.TANGYUN',500);
< 2522277.00000000 >
1 row found.
Command> call ttsize('TY.TANGYUN',200,1);
< 4731589.00000000 >
1 row found.
Command> call ttsize('TY.TANGYUN',200,0.1);
< 1633989.00000000 >
1 row found.
這裡的單位是Byte,計算的大小中已經包括索引的大小。當然,也可以使用ttsize工具:
$ ttsize -tbl ty.tangyun tytt
Rows = 200
Total in-line row bytes = 1273989
Out-of-line columns:
Column MVIDS total 0 avg size 0
Column CGFKIDS total 0 avg size 0
Column VALTBLIDS total 0 avg size 0
Total out-of-line column bytes = 0
Total = 1273989
2、ttcomputetabsizes是用於計算當前表的大小,該儲存過程是11.2.2的新特性。
使用方法:
ttComputeTabSizes (['tblName'], [includeOutOfLine]);
這裡兩個引數都是可選的,如果不指定表名,那麼就計算所有有許可權訪問的表,包括有許可權訪問的系統表、CacheGroup表、物化檢視表,計算結果儲存更新在DBA_TAB_SIZES,USER_TAB_SIZES或ALL_TAB_SIZES檢視中;includeOutOfLine參數列示是否計算out-of-line的大小,預設值為1表示全部計算,0表示不計算out-of-line的大小。
Command> call ttcomputetabsizes('TY.TANGYUN');
Command> select * from sys.dba_tab_sizes;
OWNER: TY
TABLE_NAME: TANGYUN
INLINE_ALLOC_BYTES: 2496576
NUM_USED_ROWS: 200
NUM_FREE_ROWS: 312
AVG_ROW_LEN: 4880
OUT_OF_LINE_BYTES: 0
METADATA_BYTES: 2048
TOTAL_BYTES: 2498624
LAST_UPDATED: 2014-05-23 03:24:16.000000
1 row found.
Command> call ttcomputetabsizes('TY.TANGYUN',0);
Command> select * from sys.dba_tab_sizes;
OWNER: TY
TABLE_NAME: TANGYUN
INLINE_ALLOC_BYTES: 2496576
NUM_USED_ROWS: 200
NUM_FREE_ROWS: 312
AVG_ROW_LEN:
OUT_OF_LINE_BYTES:
METADATA_BYTES: 2048
TOTAL_BYTES:
LAST_UPDATED: 2014-05-23 03:45:33.000000
1 row found.
---------------End-----------------
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24930246/viewspace-1414308/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【記憶體資料庫】TimesTen記憶體資料庫
- [轉帖]關於記憶體管理:計算頁表大小記憶體
- 手機記憶體卡大小的計算記憶體
- 資料庫效能需求分析及評估模型資料庫模型
- struct結構體大小的計算(記憶體對齊)Struct結構體記憶體
- Oracle資料庫表碎片整理Oracle資料庫
- [轉帖]達夢資料庫-統計資料表資料量及空間表大小資料庫
- Oracle 資料庫整理表碎片Oracle資料庫
- 如何獲取 PostgreSQL 資料庫中的表大小、資料庫大小、索引大小、模式大小、表空間大小、列大小SQL資料庫索引模式
- 記憶體碎片與緩解記憶體
- 非易失性記憶體技術及資料庫記憶體資料庫
- 記憶體資料庫如何發揮記憶體優勢?記憶體資料庫
- 一文看懂資料分析必備計算功能—記憶體計算記憶體
- 倉庫精益的指標:庫存週轉率的計算方式及評估指標
- Redis記憶體碎片深入分析Redis記憶體
- 【大頁記憶體】Oracle資料庫配置大頁記憶體記憶體Oracle資料庫
- 計算資料庫中所有表的記錄條數資料庫
- 分散式資料庫的健康評估分散式資料庫
- expdp在匯出時對資料大小進行評估
- Postgresql資料庫體系結構-程式和記憶體結構SQL資料庫記憶體
- MySQL命令檢視資料庫和表容量大小MySql資料庫
- linux kernel記憶體碎片防治技術Linux記憶體
- Redis效能篇(四)Redis記憶體碎片Redis記憶體
- Android中一張圖片佔據的記憶體大小是如何計算Android記憶體
- Oracle - 資料庫的記憶體結構Oracle資料庫記憶體
- Oracle - 資料庫的記憶體調整Oracle資料庫記憶體
- 瀚高資料庫記憶體結構資料庫記憶體
- 解DBA之惑:資料庫承載能力評估及優化手段資料庫優化
- 統計資料庫中表大小資料庫
- Oracle資料表碎片整理Oracle
- node計算記憶體佔用記憶體
- 解決golang 的記憶體碎片問題Golang記憶體
- 寫個方法近似計算指定陣列或物件佔用記憶體的大小陣列物件記憶體
- 資料庫新兵:分散式實時分析記憶體資料庫eSight資料庫分散式記憶體
- 磁碟資料庫與記憶體資料庫的特點比較資料庫記憶體
- SQL server資料庫表碎片比例查詢語句SQLServer資料庫
- tracemalloc庫追蹤程式碼申請的記憶體大小記憶體
- Java記憶體模型(MESI、記憶體屏障、volatile和鎖及final記憶體語義)Java記憶體模型
- 資料庫實現原理#6(共享記憶體)資料庫記憶體