馬斌等
摘要:通過索引對(duì)象優(yōu)化方法的論述,提出解決業(yè)務(wù)系統(tǒng)性能瓶頸的一種方法。詳細(xì)論述了數(shù)據(jù)庫索引對(duì)象的概念、優(yōu)化方法,通過索引對(duì)象優(yōu)化案例闡述了優(yōu)化實(shí)施流程、風(fēng)險(xiǎn)防范措施,通過優(yōu)化結(jié)果分析比較驗(yàn)證了索引對(duì)象優(yōu)化方法可行性。
關(guān)鍵詞:數(shù)據(jù)庫;索引對(duì)象;優(yōu)化方法;風(fēng)險(xiǎn)防范
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)31-7241-03
在企業(yè)信息化建設(shè)的深入發(fā)展中,隨著業(yè)務(wù)量與數(shù)據(jù)量的逐年增大,信息系統(tǒng)的壓力越來越大,在系統(tǒng)設(shè)計(jì)、開發(fā)和測試中沒有考慮到的隱患也逐漸暴露,使得系統(tǒng)可靠性與高效性明顯降低,影響了對(duì)業(yè)務(wù)支持的質(zhì)量。
在系統(tǒng)設(shè)計(jì)和開發(fā)階段,項(xiàng)目組最注重的是系統(tǒng)的功能實(shí)現(xiàn),測試階段注重系統(tǒng)功能的正確性,而對(duì)于系統(tǒng)性能缺乏關(guān)注,主要是由于數(shù)據(jù)量較少,無法顯示出系統(tǒng)性能瓶頸。當(dāng)系統(tǒng)上線運(yùn)行后,隨著數(shù)據(jù)量和并發(fā)用戶的增多,數(shù)據(jù)庫性能問題逐漸顯現(xiàn),尤其是索引對(duì)象設(shè)計(jì)不當(dāng)、業(yè)務(wù)流程變更等原因,導(dǎo)致性能降低是最常見的現(xiàn)象。
1 索引對(duì)象簡介
1.1 索引對(duì)象的概念
數(shù)據(jù)庫對(duì)象是一種邏輯結(jié)構(gòu)的集合,索引是供用戶快速查找到記錄的數(shù)據(jù)庫結(jié)構(gòu),在邏輯上和物理上都獨(dú)立于表的數(shù)據(jù)。索引可以在表內(nèi)創(chuàng)建一個(gè)或多個(gè)列的組合,當(dāng)建立索引以后表中數(shù)據(jù)會(huì)按照索引創(chuàng)建語句所定義的排序方式返回給用戶。索引有多種類型,除了標(biāo)準(zhǔn)索引外,還包括唯一索引、位圖索引、組合索引、基于函數(shù)的索引、反向鍵索引等。
建立索引能夠提高 SQL 語句執(zhí)行的性能,減少磁盤I/O。無索引查詢,通常是全表搜索后才會(huì)得到結(jié)果,全表搜索會(huì)讓數(shù)據(jù)庫服務(wù)程序遍歷表中的所有記錄然后返回結(jié)果;而建立索引后查詢,可以讓數(shù)據(jù)庫服務(wù)程序快速地定位到表中的確定行。當(dāng)表被刪除時(shí)所有與表相關(guān)的索引也將被刪除。
索引可以被創(chuàng)建、重建和刪除,索引建立語句:CREATE INDEX item_index ON itemfile (itemcode) TABLESPACE index_tbs;索引重建語句:ALTER INDEX item_index REBUILD;索引刪除語句:DROP INDEX item_index。
創(chuàng)建索引是為了提升數(shù)據(jù)庫查詢性能,在使用索引時(shí)需要注意以下情況:
1) 對(duì)于小表來說,使用索引對(duì)于性能不會(huì)有任何提高;
2) 當(dāng)索引列中有極多的不同的數(shù)據(jù)和空值時(shí)索引會(huì)使性能有極大的提高;
3) 經(jīng)常執(zhí)行更新、修改操作的字段需要謹(jǐn)慎創(chuàng)建索引,因?yàn)楦滤饕拈_銷會(huì)降低創(chuàng)建索引所期望獲得的性能;
4) 不要將索引與表存儲(chǔ)在同一個(gè)驅(qū)動(dòng)器上,分開存儲(chǔ)會(huì)去掉訪問的沖突從而使結(jié)果返回得更快。
1.2 索引對(duì)象優(yōu)化方法
在業(yè)務(wù)系統(tǒng)中針對(duì)索引對(duì)象的優(yōu)化,主要包括三種方式:一是重建過高的索引層次;二是清除無效的索引;三是對(duì)索引碎片的清理。
2.2 風(fēng)險(xiǎn)防范措施
針對(duì)數(shù)據(jù)庫對(duì)象的優(yōu)化,總體應(yīng)該遵循如下的風(fēng)險(xiǎn)防范原則:
1) 確保數(shù)據(jù)庫備份完整可用;
2) 所有操作和檢查環(huán)節(jié)都使用事前完成并預(yù)演通過的腳本,避免臨時(shí)修改腳本;
3) 每部分完成,通過檢查確認(rèn)無誤,再進(jìn)行其它部分,避免互相干擾;
4) 專家現(xiàn)場支持,及時(shí)處理突發(fā)問題。
在遵循上述原則的基礎(chǔ)之上,對(duì)索引對(duì)象的優(yōu)化需要注意以下風(fēng)險(xiǎn):
1) 監(jiān)測時(shí)間不夠,在一個(gè)監(jiān)測周期內(nèi)未操作過表,監(jiān)測過后又用到了這個(gè)表,需要索引,但此時(shí)此索引已被列為被優(yōu)化的對(duì)象;
2) 監(jiān)控過后,需要取消在用索引的監(jiān)控;
3) 監(jiān)控時(shí)如果rebuild index ,會(huì)取消監(jiān)控,同時(shí)索引標(biāo)記為已使用,這種情況下會(huì)影響監(jiān)控效果;
4) 監(jiān)控時(shí)如果在做統(tǒng)計(jì)分析時(shí)涉及到此索引,索引也會(huì)標(biāo)記為已使用,同樣影響監(jiān)控效果。
為避免上述風(fēng)險(xiǎn)發(fā)生,通常采用的措施是在監(jiān)控期間停止database、schema、table、index等級(jí)別的索引收集,避免影響監(jiān)控效果。
2.3 優(yōu)化效果分析
數(shù)據(jù)庫級(jí)別的性能數(shù)據(jù)主要是以下關(guān)鍵指標(biāo):響應(yīng)時(shí)間、CPU時(shí)間、等待時(shí)間、物理讀,這些指標(biāo)可以看出目前平均每事務(wù)的反應(yīng)速度、每事務(wù)需要消耗的CPU與IO量。為了得到優(yōu)化的效果,還需要保證進(jìn)行數(shù)據(jù)對(duì)比的時(shí)間內(nèi),數(shù)據(jù)庫的負(fù)載基本相同。數(shù)據(jù)庫的負(fù)載指標(biāo)一般以執(zhí)行的事務(wù)數(shù)、Redo size等指標(biāo)來表示。表1是某業(yè)務(wù)系統(tǒng)的這些指標(biāo)在索引對(duì)象優(yōu)化前后的對(duì)比數(shù)據(jù)。
通過索引對(duì)象的優(yōu)化,可以從對(duì)比表中明顯看出性能得到了大幅提升,影響較大的數(shù)據(jù)庫操作瓶頸主要集中在大表的查詢操作、關(guān)聯(lián)表的更新操作、大業(yè)務(wù)數(shù)據(jù)的統(tǒng)計(jì)分析操作等,在優(yōu)化后其操作響應(yīng)時(shí)間已經(jīng)能夠滿足用戶的業(yè)務(wù)需求。這些數(shù)據(jù)對(duì)比符合數(shù)據(jù)庫索引優(yōu)化方案的預(yù)期成效,也說明索引對(duì)象對(duì)數(shù)據(jù)庫性能的重要影響。
3 總結(jié)
企業(yè)的業(yè)務(wù)系統(tǒng)經(jīng)過長期的運(yùn)作,積累了大量的業(yè)務(wù)數(shù)據(jù),同時(shí)隨著業(yè)務(wù)增長、流程優(yōu)化、人員變動(dòng)等因素,會(huì)造成系統(tǒng)性能瓶頸。此時(shí),需要運(yùn)維和管理人員根據(jù)實(shí)際需求,按照系統(tǒng)優(yōu)化原則,制定詳細(xì)、多番論證的優(yōu)化方案,對(duì)系統(tǒng)實(shí)施優(yōu)化,這樣才能滿足用戶不斷變化、業(yè)務(wù)不斷增長的需求。該文通過詳述數(shù)據(jù)庫索引對(duì)象的優(yōu)化方法、應(yīng)用案例,闡述了索引對(duì)象對(duì)系統(tǒng)性能影響的范圍和程度,并就優(yōu)化方案給出了應(yīng)遵循的原則和風(fēng)險(xiǎn)防范措施。在性能優(yōu)化中,針對(duì)數(shù)據(jù)庫性能瓶頸,索引對(duì)象優(yōu)化只是其中最常見的一種方案,具體優(yōu)化還需要根據(jù)對(duì)系統(tǒng)長時(shí)間監(jiān)測情況的分析,做出正確選擇。
參考文獻(xiàn):
[1] 羅海濱,范玉順,吳澄.工作流技術(shù)綜述[J].北京;軟件學(xué)報(bào),2000,11 (7).
[2] 蓋國強(qiáng).深入淺出Oracle數(shù)據(jù)庫——DBA入門、進(jìn)階與診斷案例[M].北京:人民郵電出版社,2006.
[3] 盧輝.數(shù)據(jù)挖掘與數(shù)據(jù)化運(yùn)營實(shí)踐:思路,方法,技巧與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2013.
[4] Kenneth E.Kendall, Julie E.Kendall .施平安,郝清賦,等,譯,系統(tǒng)分析與設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2010.
[5] 董榮勝,古天龍.計(jì)算機(jī)科學(xué)與技術(shù)方法論[M].北京:人民郵電出版社,2002.endprint
摘要:通過索引對(duì)象優(yōu)化方法的論述,提出解決業(yè)務(wù)系統(tǒng)性能瓶頸的一種方法。詳細(xì)論述了數(shù)據(jù)庫索引對(duì)象的概念、優(yōu)化方法,通過索引對(duì)象優(yōu)化案例闡述了優(yōu)化實(shí)施流程、風(fēng)險(xiǎn)防范措施,通過優(yōu)化結(jié)果分析比較驗(yàn)證了索引對(duì)象優(yōu)化方法可行性。
關(guān)鍵詞:數(shù)據(jù)庫;索引對(duì)象;優(yōu)化方法;風(fēng)險(xiǎn)防范
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)31-7241-03
在企業(yè)信息化建設(shè)的深入發(fā)展中,隨著業(yè)務(wù)量與數(shù)據(jù)量的逐年增大,信息系統(tǒng)的壓力越來越大,在系統(tǒng)設(shè)計(jì)、開發(fā)和測試中沒有考慮到的隱患也逐漸暴露,使得系統(tǒng)可靠性與高效性明顯降低,影響了對(duì)業(yè)務(wù)支持的質(zhì)量。
在系統(tǒng)設(shè)計(jì)和開發(fā)階段,項(xiàng)目組最注重的是系統(tǒng)的功能實(shí)現(xiàn),測試階段注重系統(tǒng)功能的正確性,而對(duì)于系統(tǒng)性能缺乏關(guān)注,主要是由于數(shù)據(jù)量較少,無法顯示出系統(tǒng)性能瓶頸。當(dāng)系統(tǒng)上線運(yùn)行后,隨著數(shù)據(jù)量和并發(fā)用戶的增多,數(shù)據(jù)庫性能問題逐漸顯現(xiàn),尤其是索引對(duì)象設(shè)計(jì)不當(dāng)、業(yè)務(wù)流程變更等原因,導(dǎo)致性能降低是最常見的現(xiàn)象。
1 索引對(duì)象簡介
1.1 索引對(duì)象的概念
數(shù)據(jù)庫對(duì)象是一種邏輯結(jié)構(gòu)的集合,索引是供用戶快速查找到記錄的數(shù)據(jù)庫結(jié)構(gòu),在邏輯上和物理上都獨(dú)立于表的數(shù)據(jù)。索引可以在表內(nèi)創(chuàng)建一個(gè)或多個(gè)列的組合,當(dāng)建立索引以后表中數(shù)據(jù)會(huì)按照索引創(chuàng)建語句所定義的排序方式返回給用戶。索引有多種類型,除了標(biāo)準(zhǔn)索引外,還包括唯一索引、位圖索引、組合索引、基于函數(shù)的索引、反向鍵索引等。
建立索引能夠提高 SQL 語句執(zhí)行的性能,減少磁盤I/O。無索引查詢,通常是全表搜索后才會(huì)得到結(jié)果,全表搜索會(huì)讓數(shù)據(jù)庫服務(wù)程序遍歷表中的所有記錄然后返回結(jié)果;而建立索引后查詢,可以讓數(shù)據(jù)庫服務(wù)程序快速地定位到表中的確定行。當(dāng)表被刪除時(shí)所有與表相關(guān)的索引也將被刪除。
索引可以被創(chuàng)建、重建和刪除,索引建立語句:CREATE INDEX item_index ON itemfile (itemcode) TABLESPACE index_tbs;索引重建語句:ALTER INDEX item_index REBUILD;索引刪除語句:DROP INDEX item_index。
創(chuàng)建索引是為了提升數(shù)據(jù)庫查詢性能,在使用索引時(shí)需要注意以下情況:
1) 對(duì)于小表來說,使用索引對(duì)于性能不會(huì)有任何提高;
2) 當(dāng)索引列中有極多的不同的數(shù)據(jù)和空值時(shí)索引會(huì)使性能有極大的提高;
3) 經(jīng)常執(zhí)行更新、修改操作的字段需要謹(jǐn)慎創(chuàng)建索引,因?yàn)楦滤饕拈_銷會(huì)降低創(chuàng)建索引所期望獲得的性能;
4) 不要將索引與表存儲(chǔ)在同一個(gè)驅(qū)動(dòng)器上,分開存儲(chǔ)會(huì)去掉訪問的沖突從而使結(jié)果返回得更快。
1.2 索引對(duì)象優(yōu)化方法
在業(yè)務(wù)系統(tǒng)中針對(duì)索引對(duì)象的優(yōu)化,主要包括三種方式:一是重建過高的索引層次;二是清除無效的索引;三是對(duì)索引碎片的清理。
2.2 風(fēng)險(xiǎn)防范措施
針對(duì)數(shù)據(jù)庫對(duì)象的優(yōu)化,總體應(yīng)該遵循如下的風(fēng)險(xiǎn)防范原則:
1) 確保數(shù)據(jù)庫備份完整可用;
2) 所有操作和檢查環(huán)節(jié)都使用事前完成并預(yù)演通過的腳本,避免臨時(shí)修改腳本;
3) 每部分完成,通過檢查確認(rèn)無誤,再進(jìn)行其它部分,避免互相干擾;
4) 專家現(xiàn)場支持,及時(shí)處理突發(fā)問題。
在遵循上述原則的基礎(chǔ)之上,對(duì)索引對(duì)象的優(yōu)化需要注意以下風(fēng)險(xiǎn):
1) 監(jiān)測時(shí)間不夠,在一個(gè)監(jiān)測周期內(nèi)未操作過表,監(jiān)測過后又用到了這個(gè)表,需要索引,但此時(shí)此索引已被列為被優(yōu)化的對(duì)象;
2) 監(jiān)控過后,需要取消在用索引的監(jiān)控;
3) 監(jiān)控時(shí)如果rebuild index ,會(huì)取消監(jiān)控,同時(shí)索引標(biāo)記為已使用,這種情況下會(huì)影響監(jiān)控效果;
4) 監(jiān)控時(shí)如果在做統(tǒng)計(jì)分析時(shí)涉及到此索引,索引也會(huì)標(biāo)記為已使用,同樣影響監(jiān)控效果。
為避免上述風(fēng)險(xiǎn)發(fā)生,通常采用的措施是在監(jiān)控期間停止database、schema、table、index等級(jí)別的索引收集,避免影響監(jiān)控效果。
2.3 優(yōu)化效果分析
數(shù)據(jù)庫級(jí)別的性能數(shù)據(jù)主要是以下關(guān)鍵指標(biāo):響應(yīng)時(shí)間、CPU時(shí)間、等待時(shí)間、物理讀,這些指標(biāo)可以看出目前平均每事務(wù)的反應(yīng)速度、每事務(wù)需要消耗的CPU與IO量。為了得到優(yōu)化的效果,還需要保證進(jìn)行數(shù)據(jù)對(duì)比的時(shí)間內(nèi),數(shù)據(jù)庫的負(fù)載基本相同。數(shù)據(jù)庫的負(fù)載指標(biāo)一般以執(zhí)行的事務(wù)數(shù)、Redo size等指標(biāo)來表示。表1是某業(yè)務(wù)系統(tǒng)的這些指標(biāo)在索引對(duì)象優(yōu)化前后的對(duì)比數(shù)據(jù)。
通過索引對(duì)象的優(yōu)化,可以從對(duì)比表中明顯看出性能得到了大幅提升,影響較大的數(shù)據(jù)庫操作瓶頸主要集中在大表的查詢操作、關(guān)聯(lián)表的更新操作、大業(yè)務(wù)數(shù)據(jù)的統(tǒng)計(jì)分析操作等,在優(yōu)化后其操作響應(yīng)時(shí)間已經(jīng)能夠滿足用戶的業(yè)務(wù)需求。這些數(shù)據(jù)對(duì)比符合數(shù)據(jù)庫索引優(yōu)化方案的預(yù)期成效,也說明索引對(duì)象對(duì)數(shù)據(jù)庫性能的重要影響。
3 總結(jié)
企業(yè)的業(yè)務(wù)系統(tǒng)經(jīng)過長期的運(yùn)作,積累了大量的業(yè)務(wù)數(shù)據(jù),同時(shí)隨著業(yè)務(wù)增長、流程優(yōu)化、人員變動(dòng)等因素,會(huì)造成系統(tǒng)性能瓶頸。此時(shí),需要運(yùn)維和管理人員根據(jù)實(shí)際需求,按照系統(tǒng)優(yōu)化原則,制定詳細(xì)、多番論證的優(yōu)化方案,對(duì)系統(tǒng)實(shí)施優(yōu)化,這樣才能滿足用戶不斷變化、業(yè)務(wù)不斷增長的需求。該文通過詳述數(shù)據(jù)庫索引對(duì)象的優(yōu)化方法、應(yīng)用案例,闡述了索引對(duì)象對(duì)系統(tǒng)性能影響的范圍和程度,并就優(yōu)化方案給出了應(yīng)遵循的原則和風(fēng)險(xiǎn)防范措施。在性能優(yōu)化中,針對(duì)數(shù)據(jù)庫性能瓶頸,索引對(duì)象優(yōu)化只是其中最常見的一種方案,具體優(yōu)化還需要根據(jù)對(duì)系統(tǒng)長時(shí)間監(jiān)測情況的分析,做出正確選擇。
參考文獻(xiàn):
[1] 羅海濱,范玉順,吳澄.工作流技術(shù)綜述[J].北京;軟件學(xué)報(bào),2000,11 (7).
[2] 蓋國強(qiáng).深入淺出Oracle數(shù)據(jù)庫——DBA入門、進(jìn)階與診斷案例[M].北京:人民郵電出版社,2006.
[3] 盧輝.數(shù)據(jù)挖掘與數(shù)據(jù)化運(yùn)營實(shí)踐:思路,方法,技巧與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2013.
[4] Kenneth E.Kendall, Julie E.Kendall .施平安,郝清賦,等,譯,系統(tǒng)分析與設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2010.
[5] 董榮勝,古天龍.計(jì)算機(jī)科學(xué)與技術(shù)方法論[M].北京:人民郵電出版社,2002.endprint
摘要:通過索引對(duì)象優(yōu)化方法的論述,提出解決業(yè)務(wù)系統(tǒng)性能瓶頸的一種方法。詳細(xì)論述了數(shù)據(jù)庫索引對(duì)象的概念、優(yōu)化方法,通過索引對(duì)象優(yōu)化案例闡述了優(yōu)化實(shí)施流程、風(fēng)險(xiǎn)防范措施,通過優(yōu)化結(jié)果分析比較驗(yàn)證了索引對(duì)象優(yōu)化方法可行性。
關(guān)鍵詞:數(shù)據(jù)庫;索引對(duì)象;優(yōu)化方法;風(fēng)險(xiǎn)防范
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)31-7241-03
在企業(yè)信息化建設(shè)的深入發(fā)展中,隨著業(yè)務(wù)量與數(shù)據(jù)量的逐年增大,信息系統(tǒng)的壓力越來越大,在系統(tǒng)設(shè)計(jì)、開發(fā)和測試中沒有考慮到的隱患也逐漸暴露,使得系統(tǒng)可靠性與高效性明顯降低,影響了對(duì)業(yè)務(wù)支持的質(zhì)量。
在系統(tǒng)設(shè)計(jì)和開發(fā)階段,項(xiàng)目組最注重的是系統(tǒng)的功能實(shí)現(xiàn),測試階段注重系統(tǒng)功能的正確性,而對(duì)于系統(tǒng)性能缺乏關(guān)注,主要是由于數(shù)據(jù)量較少,無法顯示出系統(tǒng)性能瓶頸。當(dāng)系統(tǒng)上線運(yùn)行后,隨著數(shù)據(jù)量和并發(fā)用戶的增多,數(shù)據(jù)庫性能問題逐漸顯現(xiàn),尤其是索引對(duì)象設(shè)計(jì)不當(dāng)、業(yè)務(wù)流程變更等原因,導(dǎo)致性能降低是最常見的現(xiàn)象。
1 索引對(duì)象簡介
1.1 索引對(duì)象的概念
數(shù)據(jù)庫對(duì)象是一種邏輯結(jié)構(gòu)的集合,索引是供用戶快速查找到記錄的數(shù)據(jù)庫結(jié)構(gòu),在邏輯上和物理上都獨(dú)立于表的數(shù)據(jù)。索引可以在表內(nèi)創(chuàng)建一個(gè)或多個(gè)列的組合,當(dāng)建立索引以后表中數(shù)據(jù)會(huì)按照索引創(chuàng)建語句所定義的排序方式返回給用戶。索引有多種類型,除了標(biāo)準(zhǔn)索引外,還包括唯一索引、位圖索引、組合索引、基于函數(shù)的索引、反向鍵索引等。
建立索引能夠提高 SQL 語句執(zhí)行的性能,減少磁盤I/O。無索引查詢,通常是全表搜索后才會(huì)得到結(jié)果,全表搜索會(huì)讓數(shù)據(jù)庫服務(wù)程序遍歷表中的所有記錄然后返回結(jié)果;而建立索引后查詢,可以讓數(shù)據(jù)庫服務(wù)程序快速地定位到表中的確定行。當(dāng)表被刪除時(shí)所有與表相關(guān)的索引也將被刪除。
索引可以被創(chuàng)建、重建和刪除,索引建立語句:CREATE INDEX item_index ON itemfile (itemcode) TABLESPACE index_tbs;索引重建語句:ALTER INDEX item_index REBUILD;索引刪除語句:DROP INDEX item_index。
創(chuàng)建索引是為了提升數(shù)據(jù)庫查詢性能,在使用索引時(shí)需要注意以下情況:
1) 對(duì)于小表來說,使用索引對(duì)于性能不會(huì)有任何提高;
2) 當(dāng)索引列中有極多的不同的數(shù)據(jù)和空值時(shí)索引會(huì)使性能有極大的提高;
3) 經(jīng)常執(zhí)行更新、修改操作的字段需要謹(jǐn)慎創(chuàng)建索引,因?yàn)楦滤饕拈_銷會(huì)降低創(chuàng)建索引所期望獲得的性能;
4) 不要將索引與表存儲(chǔ)在同一個(gè)驅(qū)動(dòng)器上,分開存儲(chǔ)會(huì)去掉訪問的沖突從而使結(jié)果返回得更快。
1.2 索引對(duì)象優(yōu)化方法
在業(yè)務(wù)系統(tǒng)中針對(duì)索引對(duì)象的優(yōu)化,主要包括三種方式:一是重建過高的索引層次;二是清除無效的索引;三是對(duì)索引碎片的清理。
2.2 風(fēng)險(xiǎn)防范措施
針對(duì)數(shù)據(jù)庫對(duì)象的優(yōu)化,總體應(yīng)該遵循如下的風(fēng)險(xiǎn)防范原則:
1) 確保數(shù)據(jù)庫備份完整可用;
2) 所有操作和檢查環(huán)節(jié)都使用事前完成并預(yù)演通過的腳本,避免臨時(shí)修改腳本;
3) 每部分完成,通過檢查確認(rèn)無誤,再進(jìn)行其它部分,避免互相干擾;
4) 專家現(xiàn)場支持,及時(shí)處理突發(fā)問題。
在遵循上述原則的基礎(chǔ)之上,對(duì)索引對(duì)象的優(yōu)化需要注意以下風(fēng)險(xiǎn):
1) 監(jiān)測時(shí)間不夠,在一個(gè)監(jiān)測周期內(nèi)未操作過表,監(jiān)測過后又用到了這個(gè)表,需要索引,但此時(shí)此索引已被列為被優(yōu)化的對(duì)象;
2) 監(jiān)控過后,需要取消在用索引的監(jiān)控;
3) 監(jiān)控時(shí)如果rebuild index ,會(huì)取消監(jiān)控,同時(shí)索引標(biāo)記為已使用,這種情況下會(huì)影響監(jiān)控效果;
4) 監(jiān)控時(shí)如果在做統(tǒng)計(jì)分析時(shí)涉及到此索引,索引也會(huì)標(biāo)記為已使用,同樣影響監(jiān)控效果。
為避免上述風(fēng)險(xiǎn)發(fā)生,通常采用的措施是在監(jiān)控期間停止database、schema、table、index等級(jí)別的索引收集,避免影響監(jiān)控效果。
2.3 優(yōu)化效果分析
數(shù)據(jù)庫級(jí)別的性能數(shù)據(jù)主要是以下關(guān)鍵指標(biāo):響應(yīng)時(shí)間、CPU時(shí)間、等待時(shí)間、物理讀,這些指標(biāo)可以看出目前平均每事務(wù)的反應(yīng)速度、每事務(wù)需要消耗的CPU與IO量。為了得到優(yōu)化的效果,還需要保證進(jìn)行數(shù)據(jù)對(duì)比的時(shí)間內(nèi),數(shù)據(jù)庫的負(fù)載基本相同。數(shù)據(jù)庫的負(fù)載指標(biāo)一般以執(zhí)行的事務(wù)數(shù)、Redo size等指標(biāo)來表示。表1是某業(yè)務(wù)系統(tǒng)的這些指標(biāo)在索引對(duì)象優(yōu)化前后的對(duì)比數(shù)據(jù)。
通過索引對(duì)象的優(yōu)化,可以從對(duì)比表中明顯看出性能得到了大幅提升,影響較大的數(shù)據(jù)庫操作瓶頸主要集中在大表的查詢操作、關(guān)聯(lián)表的更新操作、大業(yè)務(wù)數(shù)據(jù)的統(tǒng)計(jì)分析操作等,在優(yōu)化后其操作響應(yīng)時(shí)間已經(jīng)能夠滿足用戶的業(yè)務(wù)需求。這些數(shù)據(jù)對(duì)比符合數(shù)據(jù)庫索引優(yōu)化方案的預(yù)期成效,也說明索引對(duì)象對(duì)數(shù)據(jù)庫性能的重要影響。
3 總結(jié)
企業(yè)的業(yè)務(wù)系統(tǒng)經(jīng)過長期的運(yùn)作,積累了大量的業(yè)務(wù)數(shù)據(jù),同時(shí)隨著業(yè)務(wù)增長、流程優(yōu)化、人員變動(dòng)等因素,會(huì)造成系統(tǒng)性能瓶頸。此時(shí),需要運(yùn)維和管理人員根據(jù)實(shí)際需求,按照系統(tǒng)優(yōu)化原則,制定詳細(xì)、多番論證的優(yōu)化方案,對(duì)系統(tǒng)實(shí)施優(yōu)化,這樣才能滿足用戶不斷變化、業(yè)務(wù)不斷增長的需求。該文通過詳述數(shù)據(jù)庫索引對(duì)象的優(yōu)化方法、應(yīng)用案例,闡述了索引對(duì)象對(duì)系統(tǒng)性能影響的范圍和程度,并就優(yōu)化方案給出了應(yīng)遵循的原則和風(fēng)險(xiǎn)防范措施。在性能優(yōu)化中,針對(duì)數(shù)據(jù)庫性能瓶頸,索引對(duì)象優(yōu)化只是其中最常見的一種方案,具體優(yōu)化還需要根據(jù)對(duì)系統(tǒng)長時(shí)間監(jiān)測情況的分析,做出正確選擇。
參考文獻(xiàn):
[1] 羅海濱,范玉順,吳澄.工作流技術(shù)綜述[J].北京;軟件學(xué)報(bào),2000,11 (7).
[2] 蓋國強(qiáng).深入淺出Oracle數(shù)據(jù)庫——DBA入門、進(jìn)階與診斷案例[M].北京:人民郵電出版社,2006.
[3] 盧輝.數(shù)據(jù)挖掘與數(shù)據(jù)化運(yùn)營實(shí)踐:思路,方法,技巧與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2013.
[4] Kenneth E.Kendall, Julie E.Kendall .施平安,郝清賦,等,譯,系統(tǒng)分析與設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2010.
[5] 董榮勝,古天龍.計(jì)算機(jī)科學(xué)與技術(shù)方法論[M].北京:人民郵電出版社,2002.endprint