1、對(duì)后續(xù)用到的表建立索引(注意在插入數(shù)據(jù)之前建立或者在插入后建立但是要runstats)
說(shuō)明:插入之前建立的話(huà),在表插入數(shù)據(jù)的過(guò)程中,索引也隨著更新,這樣的話(huà)需要較大的日志空間,因此速度會(huì)比較慢,可以采用不計(jì)日志的方式插入;數(shù)據(jù)差完之后再建立索引的話(huà),該表的日志統(tǒng)計(jì)信息沒(méi)有更新,因此執(zhí)行計(jì)劃會(huì)很差,用不到索引,runstats on tabble asiainfo.aaaa and indexes all之后,索引統(tǒng)計(jì)信息就會(huì)更新,這樣執(zhí)行計(jì)劃會(huì)考慮到使用索引,因此速度快。
2、將比較大的表建在多節(jié)點(diǎn)的表空間上,同時(shí)建好索引
說(shuō)明:現(xiàn)有的db2數(shù)據(jù)倉(cāng)庫(kù)每個(gè)節(jié)點(diǎn)使用2個(gè)CPU,4G內(nèi)存,DIM表空間計(jì)劃是存放維表的表空間,因此是單節(jié)點(diǎn)的。在使用這個(gè)表空間的中的表的時(shí)候,最多只會(huì)用到2個(gè)CPU,4G內(nèi)存,加上其他的表空間也都要用到這兩個(gè)CPU和這4G內(nèi)存,因此資源比較有限。建議較大的表不要放在這個(gè)表空間中,而是建立好分區(qū)鍵,放在多節(jié)點(diǎn)的表空間中,這樣檢索這個(gè)表的時(shí)候32個(gè)節(jié)點(diǎn)同時(shí)檢索,最后匯總到0節(jié)點(diǎn)上進(jìn)行展現(xiàn),速度當(dāng)然會(huì)非常的快。另外,雖然32節(jié)點(diǎn)并行性好,但是如果建立好索引的話(huà),速度會(huì)更快。
3、將插入的表使用不計(jì)日志的方式插入
說(shuō)明:數(shù)據(jù)庫(kù)為了保證數(shù)據(jù)的一致性和可回退性,插入、更新或者刪除數(shù)據(jù)的時(shí)候要計(jì)日志,這樣在失敗的時(shí)候可以回退,但是如果并發(fā)較多或者操作非常大的話(huà),會(huì)導(dǎo)致?tīng)?zhēng)搶日志的情況,導(dǎo)致操作非常緩慢。如果使用不計(jì)日志的方式進(jìn)行插入、更新或者刪除操作的話(huà),日志使用極少,但是如果操作失敗的話(huà)是無(wú)法回退的,這樣一致性得不到保證,這個(gè)表只能刪除重建。。!
4、將表建立表級(jí)鎖,減少鎖數(shù)量的使用
說(shuō)明:數(shù)據(jù)庫(kù)的鎖的最大數(shù)量是有限制的,并且每個(gè)鎖都要占一定的內(nèi)存,因此如果鎖的數(shù)量非常多,使用的內(nèi)存也就多,導(dǎo)致資源緊張。
5、建立臨時(shí)表的時(shí)候盡量只插入用的到的數(shù)據(jù),不插用不到的數(shù)據(jù)
說(shuō)明:程序中好多地方為了提高速度,將用到的數(shù)據(jù)先插入到一個(gè)臨時(shí)表中,但是插入了非常多的沒(méi)有使用的數(shù)據(jù),這樣導(dǎo)致臨時(shí)表也非常大,所以盡可能的只向臨時(shí)表中插入用的到的數(shù)據(jù),并且盡可能的使用索引,可以大大的提高速度。
6、關(guān)于左關(guān)聯(lián)的一點(diǎn)
使用心得:在on的條件里面盡量的只寫(xiě)關(guān)聯(lián)條件和對(duì)左關(guān)聯(lián)的表作限制,而對(duì)主表的限制不要寫(xiě)在這里。如果寫(xiě)在里面的話(huà),不但速度非常慢,而且可能會(huì)出現(xiàn)莫名其妙的結(jié)果。
轉(zhuǎn)帖于:軟件水平考試_考試吧
版權(quán)聲明 --------------------------------------------------------------------------------------
如果
軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請(qǐng)與我們聯(lián)系
,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本
軟件水平考試網(wǎng)內(nèi)容,請(qǐng)注明出處。