版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Word深入優(yōu)化DB2數(shù)據(jù)庫的五個最佳實踐
深入優(yōu)化DB2(數(shù)據(jù)庫)的五個最佳實踐
結(jié)構(gòu)化查詢語言(SQL)對于關(guān)系型DBMS是把雙刃劍,利弊參半。因為從關(guān)系型數(shù)據(jù)庫檢索任何數(shù)據(jù)都需要SQL,本文所要探討的話題就是:不論是終端用戶還是開發(fā)人員或是數(shù)據(jù)庫管理員(DBA),他們將如何訪問一個關(guān)系型數(shù)據(jù)庫。當(dāng)使用高效的SQL時,系統(tǒng)會變得易于升級、靈活、而且便于管理。當(dāng)使用低效的SQL時,響應(yīng)時間和程序運(yùn)行時間都會延長,并且還會產(chǎn)生應(yīng)用系統(tǒng)的中斷。鑒于通常的數(shù)據(jù)庫系統(tǒng)一般要花費(fèi)90%的處理時間用于從數(shù)據(jù)庫檢索數(shù)據(jù),由此很明顯的可以看出盡可能的保證SQL的高效是多么的重要??疾焱ǔ5腟QL語句問題譬如"SELECT*FROM"僅是冰山一角,我們將在本文中探討其他容易確定的普遍的問題。需要記住的是,檢索得到同一數(shù)據(jù)的SQL語句有很多種殊途同歸的寫法,所以不存在好的查詢語句或是壞的查詢語句,而只有滿足適當(dāng)需求的查詢語句。各關(guān)系型數(shù)據(jù)庫都有自己的方式來優(yōu)化和執(zhí)行查詢語句。因此,各DBMS都擁有自己的最佳性能的查詢技巧。本文將使用Quest(軟件)中QuestCentralforDB2的例子和概述來集中討論DB2forOS/390和z/0S。
要是在十七年前,這張技巧單會更長,并且會包含對最小化的SELECT場景的矯正方法。每一個新版本的DB2都會增加成千上萬行的新代碼,用以擴(kuò)展智能優(yōu)化,和查詢重寫及執(zhí)行。例如,多年來一種被稱為數(shù)據(jù)管理器的組件,通常被提供作為"第一階段處理"以增加它的過濾容量一百倍。另一組件是關(guān)系型數(shù)據(jù)服務(wù)器,通常被提供作為"第二階段處理"來進(jìn)行其主函數(shù)的查詢重寫和優(yōu)化。另一關(guān)鍵組件就是基于當(dāng)前的SQL,并使用存取路徑以決定檢索數(shù)據(jù)的DB2優(yōu)化器。DB2優(yōu)化器改善了每一個DB2的版本,考慮到另外的DB2目錄中的統(tǒng)計,可以提供新的和改善過的存取路徑。圖1顯示了這些組件及其他更多的部分,并描述了DB2如何處理數(shù)據(jù)或SQL的請求。這就是以下DB2SQL性能技巧的來源。
在這篇文章中,我們將回顧一些更具有代表性的SQL問題,有更多的SQL方面的性能技巧超出了本篇文章描述的范圍。像所有指導(dǎo)方針一樣,所有這些技巧也會有一些例外。
技巧1:核實是否提供了適當(dāng)?shù)慕y(tǒng)計:
對于DB2優(yōu)化器來說,最重要的資源除了SELECT語句本身,就是DB2目錄中創(chuàng)建的統(tǒng)計。優(yōu)化器基于眾多的選擇而使用這些統(tǒng)計。DB2優(yōu)化器為了查詢而選擇一條非最佳存取路徑的主要原因,歸結(jié)于無效的或缺失的統(tǒng)計。DB2優(yōu)化器使用以下目錄統(tǒng)計:
經(jīng)常的執(zhí)行"RUNSTATS"命令,用來更新DB2的目錄統(tǒng)計,這樣可以在特別繁忙的生產(chǎn)環(huán)境里中得到全貌。為了使執(zhí)行"RUNSTATS"命令的影響最小化,可以考慮使用采樣技術(shù)。即使取樣10%也夠了。另外"RUNSTATS"命令可以更新統(tǒng)計,DB2給您可以額外更新1,000個條目的能力,以用于不均勻的分類統(tǒng)計。當(dāng)心隨著每一條目隨著增量的增加,而涉及到對所有參考的綁定時間的影響。
假如當(dāng)您缺少統(tǒng)計的時候您怎么知道呢?當(dāng)目錄或使用(工具)不能提供這種功能的時候,您可以通過手工執(zhí)行查詢。當(dāng)前,DB2優(yōu)化器不能給缺失的統(tǒng)計提供具體的警告。
技巧2:盡可能的采用階段1和階段2的謂詞:
不論是階段1的數(shù)據(jù)管理器還是階段2的關(guān)系型數(shù)據(jù)服務(wù)器都將處理每一次查詢。當(dāng)您處理查詢時,使用階段1將會比使用階段2有著巨大的性能優(yōu)勢。當(dāng)謂詞確定階段1能夠處理的時候,通常謂詞會限制您只能使用階段1查詢。另外,每一個謂詞都會被(檢驗)評估是否比另一個謂詞更有資袼作為索引路徑。有一些謂詞不能作為階段1來處理,或是不符合索引的條件。關(guān)于您的查詢是否可以被索引并且能夠在階段1被處理,理解這一點是很重要的。下面是文擋化的階段1或Sargable(search+argument-able謂詞是一個可以由數(shù)據(jù)管理器來值的謂詞)謂詞:
還有一些謂詞不能看作階段1被文檔化,因為他們不能總處于階段1。加入表序列和查詢重寫也能夠影響謂詞被過濾掉的階段。讓我們通過例子查詢來顯示重寫您的SQL的影響。
例子1:COL1和COL1之間的值:
任何類型的謂詞如不能被階段1識別,就是階段2。如下所示就是階段2謂詞。然而,重寫可能促進(jìn)對可索引階段1的查詢:Value>=COL1ANDvalue:VALUE
GETNEXTRESULTROW
技巧5:使用常量和字面值,如果值在以后的3年中不改變(對于靜態(tài)查詢):
DB2優(yōu)化器對所有不均勻的分類統(tǒng)計都充分的使用,并為任何一個列統(tǒng)計提供了不同領(lǐng)域范圍內(nèi)的值,尤其當(dāng)沒有主機(jī)變量在謂詞中被發(fā)現(xiàn)時,(WHERECOL5>'X')。主機(jī)變量的目的是使一個事務(wù)能適應(yīng)一個可變化的變量;當(dāng)一個用戶請求輸入這個值的時候是最經(jīng)常被使用的。主機(jī)變量不需要重新綁定一個程序,當(dāng)這個變量每一次改變的時候。這種可延伸性能得到優(yōu)化器準(zhǔn)確的耗費(fèi)。當(dāng)主機(jī)變量剛被發(fā)現(xiàn),(WHERECOL5>:hv5),優(yōu)化器使用以下的圖表來評估過濾器要素,而不是使用目錄統(tǒng)計。
列的基數(shù)性越高,則謂詞的過濾器要素就越低(保留部分行的預(yù)測)。多數(shù)時候,這種評估有助于優(yōu)化器對適當(dāng)存取路徑的選取。然而,有時謂詞的過濾器要素遠(yuǎn)離實際。這就是通常需要對存取路徑進(jìn)行調(diào)優(yōu)的時候。
解決方案
QuestCentralforDB2是一個集成的控制臺,可以提供核心功能,DBA(數(shù)據(jù)庫管理員)需要執(zhí)行他們?nèi)粘5臄?shù)據(jù)庫管理任務(wù),空間管理,SQL調(diào)優(yōu)和分析,并且可以進(jìn)行性能診斷監(jiān)視。QuestCentralforDB2是由DB2軟件專家撰寫的,并且提供具豐富的功能,以利于視圖化的用戶界面,并且支持在Unix,(Linux),和windows主機(jī)上運(yùn)行DB2數(shù)據(jù)庫。DB2的客戶不再被要求用獨立的工具維護(hù)和使用他們的主機(jī)和分布式的DB2系統(tǒng)。
QuestCentral的SQL調(diào)優(yōu)組件提供一個完整的SQL調(diào)優(yōu)環(huán)境。QuestCentral是唯一可以提供完整的SQL調(diào)優(yōu)環(huán)境的針對DB2可用的產(chǎn)品。這個環(huán)境包括以下部分:
1.調(diào)優(yōu)實驗室:通過場景的使用,一個單獨的SQL語句能夠被改進(jìn)很多次。然后這些場景能夠立刻被比較以確定哪個SQL語句提供了最有效率的存取路徑。
3.建議:由SQL調(diào)優(yōu)組件提供的建議,將會發(fā)現(xiàn)所有的在白皮書指定的條件等等。另外,如果一個新場景可以利用,SQL調(diào)優(yōu)組件甚至將會重寫SQL,并綜合選擇的建議。
4.存取路徑和對應(yīng)的統(tǒng)計:在SQL的上下文中,對于DB2存取路徑,所有適合的統(tǒng)計應(yīng)被顯示出來。采取推測以設(shè)法理解為什么選擇一個特殊的存取計劃。
QuestCentralforDB2健壯的功能顯現(xiàn)了上述SQL調(diào)優(yōu)中的技巧以及更多。這篇白皮書剩余的部分將證明QuestCentral是由更豐富和更透徹的知識恰當(dāng)?shù)慕M成的。QuestCentral不僅可以提高您的SQL語句效率,更可以幫助您全面的提升數(shù)據(jù)庫的性能。上面描述的各種調(diào)優(yōu)技巧都被QuestCentral所包括。
解決的技巧1:核實特定提供的統(tǒng)計:
一旦一條SQL語句在QuestCentral中被描述,建議欄會提供一整套建議,包括當(dāng)沒有RUNSTATS時也可以發(fā)現(xiàn)的能力。QuestCentral一直以堅定的決心來探究這類建議。每一條建議都有相對應(yīng)的"建議操作"。這種建議操作會指導(dǎo)如何矯正建議發(fā)現(xiàn)的問題。這將會打開一個新的場景由被重寫的SQL或以促進(jìn)對象分析的腳本組成。在這個例子中,建議顯示,統(tǒng)計的缺失和相對應(yīng)的建議操作將建立一個腳本,它包含RUNSTATS命令,為了在建議操作的窗口中選擇任何一個對象。
并且能夠生成必要的命令對所有選擇對象的統(tǒng)計進(jìn)行更新。
另外,QuestCentralSpace的管理能夠自動的收集、維護(hù)和檢驗在表空間里的統(tǒng)計及表和索引等級。以下的例子顯示了在數(shù)據(jù)庫里所有表空間里的統(tǒng)計檢驗報告。
解決的技巧2:盡可能的提升階段2和階段1的謂詞:
SQL的調(diào)優(yōu)組件將列出所有的謂詞并指出那些謂詞是否是"Sargable"或"Non-Sargable"。另外,各個謂詞都將被檢查,以確定它是否具有索引存取的資袼。這種單獨的建議可以解決響應(yīng)時間的問題和在謂詞重寫的期間內(nèi)得到某些成果。在下面的例子中,一條查詢被看作non-sargable和non-indexable(階段2)。這條最初的查詢被輸入在一個謂詞間。一個新場景被打開了并且謂詞被重寫使用大于,小于符號。這種比較確定了查詢重寫對性能方面的影響。
一個新場景被創(chuàng)建并且查詢被重寫在列值中使用"a>="和"a"之間的性能,會發(fā)現(xiàn)""更有效的減少消耗的時間。
解決的技巧3:選擇唯一需要的列:
SQL調(diào)優(yōu)的特點不僅是相對于使用"SELECT*"的建議,更提供一個事半功倍的可以令產(chǎn)品自動重寫SQL的特點。建議和相對應(yīng)的建議操作將提供重寫您SQL的能力,簡單地檢查想要的列并選擇"(app)ly(ad)vice"按鈕,SQL調(diào)優(yōu)將用被選擇的列替換"*"。
解決的技巧4:選擇唯一需要的行:
越少的行被檢索,查詢將運(yùn)行的越快。使用QuestCentral能比較您最初的SQL相對于選擇較少行但相同的SQL語句。使用多個場景和利用比較特點,比較那些立刻顯示發(fā)生變化的性能影響的場景。在以下例子中,兩張表單的加入,產(chǎn)生了一個有意義的結(jié)果集。由于加入了"FetchFirst1RowOnly'"執(zhí)行時間顯著的減少了。
解決的技巧5:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 生物實驗攪拌機(jī)租賃合同
- 質(zhì)量監(jiān)控管理制度的秘訣
- 電商運(yùn)營兼職人員錄用合同
- 海上石油鉆探海域租賃合同
- 安防監(jiān)控勞務(wù)施工協(xié)議
- 幼兒園內(nèi)環(huán)保活動協(xié)議
- 聲學(xué)隔音涂料施工合同
- 網(wǎng)絡(luò)代理合同范本
- 設(shè)備拆除合同范本
- 證券投資木門安裝協(xié)議
- 淺談校園影視在學(xué)校教育中的作用
- 無公害農(nóng)產(chǎn)品查詢
- 試劑、試藥、試液的管理規(guī)程
- 研究生課程應(yīng)用電化學(xué)(課堂PPT)
- 通信綜合網(wǎng)管技術(shù)規(guī)格書doc
- 六宮數(shù)獨可直接打印共192題
- 班會:如何克服浮躁心理PPT優(yōu)秀課件
- 四宗宗義比較略記
- Monsters歌詞下載,Monsters原唱歌詞中文翻譯,Monsters簡譜KatieSky
- 全國各地區(qū)代碼
- 氣動系統(tǒng)內(nèi)部結(jié)露的機(jī)理研究
評論
0/150
提交評論