自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

DB2 V9.7啟用索引壓縮大揭秘

數(shù)據(jù)庫
我們今天主要向大家講述的是DB2 V9.7啟用索引壓縮的正確際操作步驟,以及對CPU 比較繁忙時再啟用索引壓縮可能會帶來一些負面影響的描述。

此文章主要向大家描述的是DB2 V9.7啟用索引壓縮的實際操作步驟,我們大家都知道在缺省情況下,當(dāng)對相關(guān)表啟動壓縮后,一般的情況下索引壓縮也處在啟動狀態(tài)。對于未壓縮的表索引壓縮處于禁用狀態(tài)。

我們可以使用 CREATE INDEX 語句的 COMPRESS YES 選項可以更改此缺省行為。創(chuàng)建索引之后,我們還可以使用 ALTER INDEX 語句來啟用或禁用索引壓縮功能;然后,必須執(zhí)行 INDEX REORG 以重建索引。

啟用索引壓縮功能后,DB2 將根據(jù)數(shù)據(jù)庫管理器所選擇的壓縮算法對索引頁在磁盤上和內(nèi)存中的格式進行修改,以便最大程度地減少存儲空間耗用量。根據(jù)所創(chuàng)建索引類型以及索引所包含數(shù)據(jù)的不同,DB2 實現(xiàn)的壓縮程度也會有所變化。

例如,通過存儲重復(fù)鍵的記錄標(biāo)識(RID)的縮寫格式,數(shù)據(jù)庫管理器可以對包含大量重復(fù)鍵的索引進行壓縮。在索引鍵前綴的公共程度很高的索引中,數(shù)據(jù)庫管理器可以根據(jù)索引鍵前綴的相似性來進行壓縮。

索引壓縮是使用 CPU 的空閑周期或者是 CPU 在等待 IO 時的周期對索引數(shù)據(jù)進行壓縮、解壓縮的。因此在帶來 IO 成本節(jié)約的同時,索引壓縮技術(shù)增加了系統(tǒng)的 CPU 負擔(dān),如果我們的系統(tǒng)不受到 CPU 的約束,我們在對數(shù)據(jù)進行 Select、Insert、Update 時都能感覺到索引壓縮技術(shù)帶來的性能提升。

如果我們的系統(tǒng)本身 CPU 就已經(jīng)比較繁忙了,再啟用索引壓縮可能會帶來一些負面影響。

清單 1. 創(chuàng)建表時指定表壓縮

 

  1. db2 "create table t1 (col1 int) compress yes"   
  2. db2 "create index idx_col1 on t1(col1) "   
  3. db2 "select substr(INDNAME,1,18),substr(TABNAME,1,18),COMPRESSION,PCTPAGESSAVED   
  4. from syscat.indexes where tabname='T1'"   
  5. 1 2   
  6. COMPRESSION PCTPAGESSAVED   
  7. IDX_COL1 T1 Y -1   

上面的語句中首先創(chuàng)建了一張表 T1,并對該表啟動行壓縮。在創(chuàng)建索引 idx_col1 時,由于基表啟動了壓縮,DB2 V9.7索引壓縮也被自動啟動。上述代碼的第三句就是驗證索引 idx_col1 確實啟動了壓縮,而由于未收集統(tǒng)計信息因此當(dāng)前壓縮比例是 -1 。當(dāng)我們向表中 Insert 或者 Update 數(shù)據(jù)時,索引自動被壓縮維護到物理存儲上。

 

如果我們在創(chuàng)建表時未指定表進行壓縮,那么此表上創(chuàng)建的索引默認情況下是不壓縮的,如果期望對索引進行壓縮需要進行以下步驟。

  1. db2 "create table t2 (col1 int)   
  2. db2 "create index idx_col2 on t2(col1) "   
  3. db2 "select substr(INDNAME,1,18),substr(TABNAME,1,18),COMPRESSION,PCTPAGESSAVED   
  4. from syscat.indexes where tabname='T2'"   
  5. 1 2 COMPRESSION PCTPAGESSAVED    
  6. IDX_COL2 T2 N   
  7. -1   
  8. db2 "alter index idx_col2 compress yes"   
  9. db2 "select substr(INDNAME,1,18),substr(TABNAME,1,18),COMPRESSION,PCTPAGESSAVED   
  10. from syscat.indexes where tabname='T2'"   
  11. 1 2 COMPRESSION PCTPAGESSAVED   
  12. IDX_COL2 T2 Y -1   

上面語句中開始創(chuàng)建表時未指定表進行壓縮,后繼創(chuàng)建的索引默認情況下不壓縮。如果希望索引啟動壓縮功能,則可以使用 alter 語句進行更改。

 

注意,即使我們更改將索引更改為壓縮后,后來插入的數(shù)據(jù)還是未壓縮的,直到我們使用 reorg 語句重組索引。 DB2 考慮中間更改索引的壓縮屬性,需要對更改前、更改后的插入的數(shù)據(jù)保持一致性,不可能在索引中同時存在非壓縮、壓縮數(shù)據(jù)。

我們對上面的 IDX_COL2 執(zhí)行以下腳本,插入 1 萬行數(shù)據(jù):

  1. INSERT INTO t2 (col1)   
  2. WITH TEMP (COUNTER, col1) AS   
  3. (   
  4. VALUES (0, INT(RAND() * 1000))   
  5. UNION ALL   
  6. SELECT   
  7. (COUNTER + 1), INT(RAND() * 1000)   
  8. FROM   
  9. TEMP   
  10. WHERE   
  11. (COUNTER + 1) < 10000   
  12. )   
  13. SELECT   
  14. col1   
  15. FROM   
  16. TEMP   
  17. ;   

然后我們收集表和索引的統(tǒng)計信息。

 

  1. db2 "runstats on table db2admin.t2 and indexes all"   
  2. db2 "select substr(INDNAME,1,18),substr(TABNAME,1,18),COMPRESSION,PCTPAGESSAVED   
  3. from syscat.indexes where tabname='T2'"   
  4. 1 2 COMPRESSION PCTPAGESSAVED   
  5. IDX_COL2 T2 Y 0   

大家會發(fā)現(xiàn)壓縮率為 0,這是因為我們還沒有對索引進行 reorg 。當(dāng)然,除了上面 Select 語句我們也可以使用 REORGCHK 工具檢查是否需要對索引進行 Reorg 。

 

  1. db2 "reorg indexes all for table db2admin.t2"   
  2. db2 "runstats on table db2admin.t2 and indexes all"   
  3. db2 "select substr(INDNAME,1,18),substr(TABNAME,1,18),COMPRESSION,PCTPAGESSA   
  4. VED from syscat.indexes where tabname='T2'"   
  5. 1 2 COMPRESSION PCTPAGESSAVED   
  6. IDX_COL2 T2 Y 40   
  7. TAG: db2 DB2 dB2   

以上的相關(guān)內(nèi)容就是對DB2 V9.7 如何啟用索引壓縮的介紹,望你能有所收獲。

 

【編輯推薦】

  1. DB2雙機HA的實現(xiàn)在Linux上很簡單!
  2. linux下DB2中在命令行狀態(tài)下如何實現(xiàn)DB2實例?
  3. DB2數(shù)據(jù)庫CODESET在Linux下的實現(xiàn)流程
  4. windows系統(tǒng)下知道DB2端口號的“妙招”
  5. DB2數(shù)據(jù)類型轉(zhuǎn)換要用到的操作代碼描述
責(zé)任編輯:佚名 來源: 網(wǎng)絡(luò)整理
相關(guān)推薦

2010-08-19 08:49:41

DB2 V9.7 索引

2010-08-16 13:53:26

2010-08-11 09:56:20

DB2 V9.7

2010-08-16 11:34:11

IBM DB2 V9.

2010-08-10 10:23:16

IBM DB2 V9.

2010-08-11 11:39:06

IBM DB2 V9.

2010-08-19 09:30:31

DB2 V9.7

2010-08-10 10:42:27

DB2 V9.7

2010-08-19 09:22:03

DB2 V9.7 分區(qū)

2010-08-10 17:24:15

2010-08-19 09:37:41

DB2 V9.7 語句

2010-08-10 11:01:12

DB2 V9.7

2010-07-30 15:21:35

DB2 9.7三大武器

2009-04-30 08:59:13

DB2 9.7InfoSphereIBM

2010-07-29 11:20:03

DB2 9.7

2009-06-29 10:04:47

DB2 9.7

2010-08-16 17:07:43

DB2 trc

2010-07-29 13:09:48

DB2 9.7 兼容

2010-09-06 13:06:08

DB2 9.7

2010-10-25 10:08:30

ibmdwDB2
點贊
收藏

51CTO技術(shù)棧公眾號