深度解析DB2數(shù)據(jù)統(tǒng)計與分析系統(tǒng)優(yōu)化
DB2數(shù)據(jù)統(tǒng)計與分析系統(tǒng)應(yīng)該如何優(yōu)化呢?可能很多人都提到過這個問題,下面就為您介紹DB2數(shù)據(jù)統(tǒng)計與分析系統(tǒng)優(yōu)化的方法,供您參考。
結(jié)合DB2數(shù)據(jù)庫數(shù)據(jù)統(tǒng)計和分析系統(tǒng)以及以上所述的優(yōu)化方法,得出了對DB2數(shù)據(jù)庫統(tǒng)計和分析系統(tǒng)的優(yōu)化方法。
(1)DB2數(shù)據(jù)統(tǒng)計與分析系統(tǒng)采用對后續(xù)用到的表建立索引的方法,插入之前建立的話,在表插入數(shù)據(jù)的過程中,索引也隨著更新,這樣的話需要較大的日志空間,因此速度會比較慢,可以采用不計日志的方式插入;數(shù)據(jù)插完之后再建立索引的話,該表的日志統(tǒng)計信息沒有更新,因此執(zhí)行計劃會很差,用不到索引,更新索引統(tǒng)計信息,這樣執(zhí)行計劃會考慮到使用索引,因此系統(tǒng)效率高。
(2)DB2數(shù)據(jù)統(tǒng)計與分析系統(tǒng)將比較大的表建立在多節(jié)點的表空間上,同時建立好索引。假如db2數(shù)據(jù)倉庫每個節(jié)點使用兩個CPU,4G內(nèi)存,DIM表空間計劃是存放維表的表空間,因此是單節(jié)點的。在使用這個表空間的中的表的時候,最多只會用到兩個CPU,4G內(nèi)存,加上其他的表空間也都要用到這兩個CPU和這4G內(nèi)存,因此資源比較有限。DB2數(shù)據(jù)統(tǒng)計與分析系統(tǒng)將較大的表不放在這個表空間中,而是建立好分區(qū)鍵,放在多節(jié)點的表空間中,這樣檢索這個表的時候32個節(jié)點同時檢索,***匯總到0節(jié)點上進(jìn)行展現(xiàn),系統(tǒng)性能當(dāng)然更加優(yōu)越。
(3)DB2數(shù)據(jù)統(tǒng)計與分析系統(tǒng)中將插入的表使用不計日志的方式插入。數(shù)據(jù)庫為了保證數(shù)據(jù)的一致性和可回退性,插入、更新或者刪除數(shù)據(jù)的時候要計日志,這樣在失敗的時候可以回退,但是如果并發(fā)較多或者操作非常大的話,會導(dǎo)致爭搶日志的情況,導(dǎo)致操作非常緩慢。如果使用不計日志的方式進(jìn)行插入、更新或者刪除操作的話,日志使用極少,但是如果操作失敗的話是無法回退的,這樣一致性得不到保證,這個表只能刪除重建。
(4)為表建立表級鎖,盡量減少鎖數(shù)量的使用。因為數(shù)據(jù)庫的鎖的***數(shù)量是有限制的,并且每個鎖都要占一定的內(nèi)存,因此如果鎖的數(shù)量非常多,使用的內(nèi)存也就多,導(dǎo)致資源緊張。
(5)建立臨時表的時候只插入用到的數(shù)據(jù),而不插入用不到的數(shù)據(jù)。程序中好多地方為了提高速度,將用到的數(shù)據(jù)先插入到一個臨時表中,但是插入了非常多的沒有使用的數(shù)據(jù),導(dǎo)致臨時表也非常大,所以盡可能只向臨時表中插入用的到的數(shù)據(jù),并且盡可能的使用索引,可以系統(tǒng)性能得到優(yōu)化。
【編輯推薦】