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

DB2中的聚集目標(biāo)表

數(shù)據(jù)庫
在DB2數(shù)據(jù)庫中有一種比較特殊的表,叫做聚集目標(biāo)表。這個(gè)聚集目標(biāo)表是一個(gè)只讀表,它使用SQL列函數(shù),如sum通機(jī)函數(shù)或者avg求平均值函數(shù)來計(jì)算源表中的全部內(nèi)容或者追蹤源表數(shù)據(jù)的最新更改。

DB2數(shù)據(jù)庫中有各類的表,本文將為您介紹其中的聚集目標(biāo)表,該表是DB2中比較特殊的一種表,如果您對(duì)此有興趣的話,不妨一看。

在DB2數(shù)據(jù)庫中有一種比較特殊的表,叫做聚集目標(biāo)表。這個(gè)聚集目標(biāo)表是一個(gè)只讀表,它使用SQL列函數(shù),如sum通機(jī)函數(shù)或者avg求平均值函數(shù)來計(jì)算源表中的全部內(nèi)容或者追蹤源表數(shù)據(jù)的***更改。這個(gè)聚集目標(biāo)表跟視圖類似,都是只讀的,是對(duì)基礎(chǔ)表的統(tǒng)計(jì)。但是在本質(zhì)上是不同的,即隨著時(shí)間的推移,系統(tǒng)會(huì)向聚集目標(biāo)表中追加行。也就是說,表中的數(shù)據(jù)是在數(shù)據(jù)庫中實(shí)際存在的,而不是像視圖一樣是一種虛表??梢娋奂繕?biāo)表能夠起著視圖類似的作用,但是又可能保證數(shù)據(jù)的穩(wěn)定性。

一、了解DB2數(shù)據(jù)庫中的CD表。

在分析具體目標(biāo)表對(duì)DB2數(shù)據(jù)庫的作用之前,筆者認(rèn)為首先需要了解一下CD表。這也是DB2數(shù)據(jù)庫中一種特有的標(biāo)。聚集目標(biāo)表就是在這個(gè)CD表的基礎(chǔ)上建立起來的。在DB2數(shù)據(jù)庫中,可以實(shí)現(xiàn)類似其他數(shù)據(jù)庫的數(shù)據(jù)復(fù)制功能。即可以在源數(shù)據(jù)庫與預(yù)訂集成員之間進(jìn)行數(shù)據(jù)的復(fù)制與同步,以生成數(shù)據(jù)庫副本。有時(shí)候在預(yù)訂集成員中,可能需要追蹤數(shù)據(jù)源表的更改,此時(shí)就需要使用這個(gè)CD表。DB2的官方文檔對(duì)于CD表是這么定義的:對(duì)于為DB2數(shù)據(jù)庫服務(wù)器上的更改捕獲復(fù)制而注冊(cè)的每個(gè)用戶表,都有一個(gè)對(duì)應(yīng)的更改數(shù)據(jù)表。簡單的說,這個(gè)CD表,又稱之為更改數(shù)據(jù)表,就是用來幫助數(shù)據(jù)庫管理員追蹤源表中更改的數(shù)據(jù)(包括更新、刪除、插入等等)。某種應(yīng)用程序會(huì)讀取在更改數(shù)據(jù)表中已經(jīng)遞交的行,并將他們復(fù)制到映射至已經(jīng)注冊(cè)的表的任何目標(biāo)表中。對(duì)于剛接觸DB2數(shù)據(jù)庫的管理人員來說,只需要知道,這個(gè)CD表(數(shù)據(jù)更新表)中,就是用來分析、追蹤源表中用戶所做的更改。

二、聚集目標(biāo)表的類型與差異分析。

在DB2數(shù)據(jù)庫中,聚集表主要有兩種類型,分別為基本聚集表與更改聚集表。這兩種表雖然都是聚集表,但是有很大的差異。作為數(shù)據(jù)庫管理員必須了解他們之間的差異,并在實(shí)際工作中,根據(jù)用戶的需求來選擇合適的聚集目標(biāo)表。簡單的說,這兩種目標(biāo)表的差異主要在于統(tǒng)計(jì)的源表不同。而源表的數(shù)據(jù)不同,最終導(dǎo)致兩種聚集表的結(jié)果有天壤之別。 #p#

基本聚集表其統(tǒng)計(jì)的是數(shù)據(jù)庫的基本表中的內(nèi)容。數(shù)據(jù)庫之所以要采用基本聚集表,主要是用來定期追蹤特定表中數(shù)據(jù)的狀態(tài)。如現(xiàn)在有一張客戶信息表,表中記錄著企業(yè)當(dāng)前的所有客戶信息,包括新增加的客戶、已經(jīng)終止交易的客戶等等。利用聚集目標(biāo)表的sum函數(shù)或者avg函數(shù)就可以實(shí)現(xiàn)對(duì)這張表中數(shù)據(jù)的追蹤分析。如現(xiàn)在用戶需要知道某個(gè)年度每個(gè)月份的實(shí)際有效的客戶數(shù)量,則就可以按月來計(jì)算源表中的平均行數(shù)(利用avg函數(shù)來是想)然后將結(jié)果存儲(chǔ)在基本聚集表中。由于基本聚集表中的數(shù)據(jù)雖然是來自于源表,但是是數(shù)據(jù)庫中實(shí)際存在的記錄。為此在下一次運(yùn)算的時(shí)候,不會(huì)隨著源表中內(nèi)容的更改,而影響到原有的統(tǒng)計(jì)結(jié)果。這個(gè)特性就是聚集目標(biāo)表與視圖的***差別。由于前幾個(gè)月的統(tǒng)計(jì)結(jié)果不會(huì)隨著源表中數(shù)據(jù)的更改而改變,如此的話,用戶就可以用來統(tǒng)計(jì)、分析每個(gè)月用戶數(shù)量的變化情況。

不過這個(gè)基本聚集表有一個(gè)很大的缺陷,就是不能夠反映出源表中數(shù)據(jù)的更改情況。如在7月份,企業(yè)增加了5個(gè)新客戶,但是同時(shí)也終止了5個(gè)新客戶。此時(shí)在基本聚集表中,反映的7月份有效客戶數(shù)量跟6月份是相同的。但是實(shí)際情況是,雖然***的結(jié)果是相同的,但是客戶明細(xì)發(fā)生了變化。由于基本聚集表只是對(duì)源表進(jìn)行簡單的sun與avg等統(tǒng)計(jì),所以不能夠追蹤到這些變化。這就是基本聚集表的特點(diǎn),也是其***的缺陷之一。

為了彌補(bǔ)基本聚集表的這個(gè)缺陷,在DB2數(shù)據(jù)庫中又提出了更改聚集表的概念。更改聚集表與基本聚集表***的差異就是他們所統(tǒng)計(jì)的源表是不同的?;揪奂硭y(tǒng)計(jì)的源表是基本數(shù)據(jù)表,如客戶信息表等等。而更改聚集表所統(tǒng)計(jì)的源表是使用上面談到的CD(更改數(shù)據(jù)表)表中的內(nèi)容,而不是采用源表中的內(nèi)容。而因?yàn)楦臄?shù)據(jù)表記錄了某張?jiān)幢淼淖兏闆r,所以這個(gè)更改聚集表就能夠反映出源表中數(shù)據(jù)的具體變化情況。如在上面這個(gè)例子中,用戶不僅僅只滿足與統(tǒng)計(jì)當(dāng)前每月的有效客戶數(shù)量,還需要了解每個(gè)月得到的客戶數(shù)量與書去的客戶數(shù)量。因?yàn)閷?duì)于企業(yè)來說,得到一個(gè)新客戶的成本很大。從某種角度來說,企業(yè)寧愿千方百計(jì)的留住現(xiàn)有的客戶,也不愿意再去開發(fā)新的客戶。也就是說,如果企業(yè)一邊在增加新的客戶,一邊又不斷的在失去老客戶,那么對(duì)于企業(yè)來說這是一種失敗的經(jīng)營方式。為此,不少企業(yè)一方面在追求客戶的數(shù)量,另一方面可能更加的關(guān)注老客戶的流失。筆者已經(jīng)碰到過不少的企業(yè)用戶,他們非常的關(guān)注與當(dāng)月客戶流失數(shù)量與新增加客戶的比例。如果新增加客戶的數(shù)量大于客戶的流失數(shù)量,那么銷售人員不僅得不到應(yīng)有的獎(jiǎng)勵(lì),***還有可能受到懲罰。所以從這種角度來講,這個(gè)需求就比統(tǒng)計(jì)客戶的有效數(shù)量還要來得重要。要實(shí)現(xiàn)這個(gè)需求,就需要用到更改聚集表。更改聚集表會(huì)根據(jù)客戶信息表對(duì)應(yīng)的CD表,來追蹤客戶信息表中數(shù)據(jù)的變化情況。如會(huì)統(tǒng)計(jì)當(dāng)月客戶信息表中新顧客增加的數(shù)量(表中有了insert插入操作)與老客戶失去的數(shù)量(表中有了刪除操作)。通過這個(gè)手段,就可以統(tǒng)計(jì)新老客戶的變化情況,從而為企業(yè)決策提供數(shù)據(jù)上的支持。 #p#

三、基本聚集表與更改聚集表相互依存。

從以上的分析中可以看出,雖然兩個(gè)類型的聚集目標(biāo)表所依據(jù)的基礎(chǔ)表不同,他們產(chǎn)生的結(jié)果也有天壤之別,但是他們并不是對(duì)立的。從用戶的需求來講,這兩個(gè)類型的聚集目標(biāo)表是相互依存的。如企業(yè)可能需用同時(shí)統(tǒng)計(jì)每個(gè)月有效客戶數(shù)量的變化情況與新老客戶的變化情況,此時(shí)就需要同時(shí)用到這兩個(gè)基本目標(biāo)表。

其實(shí)筆者有時(shí)候更喜歡從另一個(gè)角度來考慮這兩個(gè)表的差異。對(duì)于基本聚集表來說,其與源表的關(guān)系比較親,即源表-基本聚集表,中間沒有任何的中介。而對(duì)于更改聚集表來說,其源表與更改聚集表之間的關(guān)系就比較遠(yuǎn),中介夾著一個(gè)CD數(shù)據(jù)更改表。他們的關(guān)系就變?yōu)榱嗽幢?CD數(shù)據(jù)更改表-更改聚集表。正是因?yàn)橛辛薈D數(shù)據(jù)更改表在中間起了一個(gè)過濾的作用,所以才導(dǎo)致更改聚集表與基本聚集表他們之間結(jié)果上的差異。由于CD數(shù)據(jù)更改表保存了源表中的數(shù)據(jù)的變化情況,才使得更改聚集表能夠統(tǒng)計(jì)分析出源表中數(shù)據(jù)的變化情況。所以,我們可以把基本聚集表當(dāng)作是兩層結(jié)構(gòu),而將更改聚集表當(dāng)作是三層結(jié)構(gòu)。從而可能更加容易理解這兩個(gè)類型的聚集目標(biāo)中的差異。在實(shí)際工作中,也更容易選擇。在何時(shí)的情況下,選擇使用合適的聚集目標(biāo)表。不過在開發(fā)一些套裝軟件中,筆者喜歡同時(shí)使用他們。最終讓用戶選擇到底使用哪個(gè)聚集目標(biāo)表。

 

責(zé)任編輯:段燃 來源: 賽迪網(wǎng)
相關(guān)推薦

2010-07-28 11:20:51

DB2 聚集目標(biāo)表

2011-04-11 15:33:47

DB2聚集目標(biāo)表

2010-07-28 13:38:34

DB2數(shù)據(jù)庫

2010-11-03 15:49:32

DB2刪除表

2010-09-01 14:46:16

DB2表空間

2010-11-01 12:11:43

DB2表空間

2010-11-01 11:13:57

DB2表管理

2010-11-01 16:07:22

DB2表空間

2010-11-02 14:45:12

DB2創(chuàng)建表空間

2010-11-01 16:38:13

DB2表空間

2010-11-01 16:44:43

DB2表空間

2010-09-01 09:32:08

DB2恢復(fù)

2010-11-03 11:26:39

DB2表空間

2010-11-03 14:57:44

DB2備份所有表

2010-09-01 11:17:29

DB2備份

2010-09-01 14:00:01

DB2表空間

2010-11-02 14:37:58

DB2臨時(shí)表定義

2010-11-03 15:56:13

DB2創(chuàng)建表

2010-11-03 15:35:27

DB2修改表

2010-09-01 10:38:47

DB2統(tǒng)計(jì)信息
點(diǎn)贊
收藏

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