日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
DB2V9.7索引壓縮的概念與正確啟用索引壓縮

文章主要描述的是DB2 V9.7 索引壓縮的新特性正確使用,DB2 V9.1 數(shù)據(jù)庫(kù)提出了行壓縮技術(shù),當(dāng)我們的系統(tǒng)中數(shù)據(jù)量很大,IO 需求超過(guò)了磁盤系統(tǒng)提供的容量(即 IO 成為系統(tǒng)的瓶頸)時(shí),行壓縮技術(shù)能夠有效的減少讀寫磁盤的次數(shù)。

10年積累的成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)制作后付款的網(wǎng)站建設(shè)流程,更有崖州免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

DB2 9.7 更進(jìn)一步提出了索引壓縮技術(shù),減少索引磁盤空間的占用,減少讀取索引時(shí)的 IO 次數(shù)從而提高了性能。

DB2 壓縮不僅有助于減少在線數(shù)據(jù)庫(kù)存儲(chǔ)區(qū)需求,還有助于減少在備份和災(zāi)難恢復(fù)時(shí)所需的存儲(chǔ)器數(shù)量。此外,由于在備份與恢復(fù)過(guò)程中涉及到的數(shù)據(jù)量變小了,所以備份與恢復(fù)操作所花的時(shí)間也就變短了。所有這些因素都在無(wú)形中節(jié)約了 IT 成本。

簡(jiǎn)介

數(shù)據(jù)庫(kù)中占用物理存儲(chǔ)空間的對(duì)象主要是表和索引,這兩類對(duì)象的大小直接影響著磁盤空間的占用,同時(shí)也決定著數(shù)據(jù)庫(kù)的性能。當(dāng)前數(shù)據(jù)庫(kù)系統(tǒng)中,隨著時(shí)間的推移表會(huì)越來(lái)越大,對(duì)應(yīng)著索引也會(huì)越來(lái)越大,這也是我們的系統(tǒng)越來(lái)越慢的原因。

DB2 V9.1 中提出了全新的行深度壓縮(deep compression)的技術(shù),以應(yīng)對(duì)這種挑戰(zhàn)。盡管深度壓縮的主要目的是節(jié)省存儲(chǔ)空間,但是使用它也可以大大節(jié)省磁盤 I/O 并提高緩沖池命中率。因而可以提高性能,并無(wú)需成本——數(shù)據(jù)壓縮和解壓縮需要占用額外的 CPU 周期。深度壓縮的存儲(chǔ)節(jié)省和性能影響與數(shù)據(jù)、數(shù)據(jù)庫(kù)本身的設(shè)計(jì)、數(shù)據(jù)庫(kù)調(diào)優(yōu)程度以及應(yīng)用程序負(fù)載有關(guān)。

在 DB2 V9.7,IBM 在行壓縮的基礎(chǔ)上提出了DB2 V9.7 索引壓縮,其目標(biāo)與行壓縮一樣,都是為減少磁盤空間的占用,這同時(shí)適用于大型 OLTP 和數(shù)據(jù)倉(cāng)庫(kù)環(huán)境。 DB2 V9.7 采用多種壓縮算法對(duì)索引進(jìn)行自動(dòng)壓縮。本文不會(huì)對(duì)具體的壓縮算法進(jìn)行討論,而是將重點(diǎn)放在索引壓縮的應(yīng)用場(chǎng)景上,即如何啟動(dòng)索引壓縮、什么數(shù)據(jù)分布適合索引壓縮,什么數(shù)據(jù)不適合索引壓縮。

如何啟用索引壓縮

在缺省情況下,當(dāng)對(duì)表啟動(dòng)壓縮后,索引壓縮也處在啟動(dòng)狀態(tài)。對(duì)于未壓縮的表索引壓縮處于禁用狀態(tài),我們可以使用 CREATE INDEX 語(yǔ)句的 COMPRESS YES 選項(xiàng)可以更改此缺省行為。創(chuàng)建索引之后,我們還可以使用 ALTER INDEX 語(yǔ)句來(lái)啟用或禁用索引壓縮功能;然后,必須執(zhí)行 INDEX REORG 以重建索引。

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

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

索引壓縮是使用 CPU 的空閑周期或者是 CPU 在等待 IO 時(shí)的周期對(duì)索引數(shù)據(jù)進(jìn)行壓縮、解壓縮的。因此在帶來(lái) IO 成本節(jié)約的同時(shí),索引壓縮技術(shù)增加了系統(tǒng)的 CPU 負(fù)擔(dān),如果我們的系統(tǒng)不受到 CPU 的約束,我們?cè)趯?duì)數(shù)據(jù)進(jìn)行 Select、Insert、Update 時(shí)都能感覺(jué)到DB2 V9.7 索引壓縮技術(shù)帶來(lái)的性能提升。如果我們的系統(tǒng)本身 CPU 就已經(jīng)比較繁忙了,再啟用索引壓縮可能會(huì)帶來(lái)一些負(fù)面影響。

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

 
 
 
  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   

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

如果我們?cè)趧?chuàng)建表時(shí)未指定表進(jìn)行壓縮,那么此表上創(chuàng)建的索引默認(rèn)情況下是不壓縮的,如果期望對(duì)索引進(jìn)行壓縮需要進(jìn)行以下步驟。

 
 
 
  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   

上面語(yǔ)句中開(kāi)始創(chuàng)建表時(shí)未指定表進(jìn)行壓縮,后繼創(chuàng)建的索引默認(rèn)情況下不壓縮。如果希望索引啟動(dòng)壓縮功能,則可以使用 alter 語(yǔ)句進(jìn)行更改。

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

我們對(duì)上面的 IDX_COL2 執(zhí)行以下腳本,插入 1 萬(wàn)行數(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)計(jì)信息。

 
 
 
  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   

大家會(huì)發(fā)現(xiàn)壓縮率為 0,這是因?yàn)槲覀冞€沒(méi)有對(duì)索引進(jìn)行 reorg 。當(dāng)然,除了上面 Select 語(yǔ)句我們也可以使用 REORGCHK 工具檢查是否需要對(duì)索引進(jìn)行 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   

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

完整內(nèi)容的學(xué)習(xí),請(qǐng)?jiān)L問(wèn):

http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0907luohq2/


文章標(biāo)題:DB2V9.7索引壓縮的概念與正確啟用索引壓縮
文章來(lái)源:http://www.5511xx.com/article/cdecdpe.html