程 香
(安徽經(jīng)濟(jì)管理學(xué)院,安徽合肥 230059)
用回溯算法診斷數(shù)據(jù)庫(kù)性能故障
程 香
(安徽經(jīng)濟(jì)管理學(xué)院,安徽合肥 230059)
數(shù)據(jù)庫(kù)性能診斷至關(guān)重要,本文針對(duì)目前數(shù)據(jù)庫(kù)性能診斷過(guò)程依賴于經(jīng)驗(yàn)的狀況,研究了一種基于回溯算法的數(shù)據(jù)庫(kù)性能診斷方法,提出了數(shù)據(jù)庫(kù)性能診斷過(guò)程的解空間樹(shù)構(gòu)造方法,以及診斷過(guò)程詳細(xì)的形式化算法,最后給出該方法的使用實(shí)例。該方法能夠避免數(shù)據(jù)庫(kù)性能診斷的盲目性,也可為其他系統(tǒng)性能診斷提供參考。
性能診斷;回溯算法;數(shù)據(jù)庫(kù)性能;自底向上
數(shù)據(jù)庫(kù)出現(xiàn)性能故障,往往嚴(yán)重影響系統(tǒng)的運(yùn)行效率,甚至引發(fā)系統(tǒng)崩潰,造成巨大的損失,因此數(shù)據(jù)庫(kù)設(shè)計(jì)及其運(yùn)行過(guò)程中的性能故障診斷和優(yōu)化都具有重要意義。為了對(duì)數(shù)據(jù)庫(kù)進(jìn)行診斷和優(yōu)化,文獻(xiàn)[1]開(kāi)發(fā)了一個(gè)最大數(shù)目為60維的搜索應(yīng)用程序,幫助用戶鑒別自己偏好查詢。文獻(xiàn)[2]分析了初始化參數(shù)選擇對(duì)數(shù)據(jù)庫(kù)效率和處理時(shí)間的影響,分析得出Oracle數(shù)據(jù)庫(kù)調(diào)優(yōu)在一個(gè)純粹自動(dòng)化的方式下是不可能的。文獻(xiàn)[3]設(shè)計(jì)了一個(gè)名為CUDADB的內(nèi)存數(shù)據(jù)庫(kù),以擴(kuò)展帶CUDA的GPU數(shù)據(jù)庫(kù)系統(tǒng)性能。文獻(xiàn)[4]討論了屬性分配和聚集元組的組合問(wèn)題,通過(guò)應(yīng)用遺傳算法反復(fù)歸因分區(qū)和集群元組子問(wèn)題,為混合碎片問(wèn)題提出了一個(gè)新方法,實(shí)驗(yàn)分析了不同遺傳參數(shù)的效果。
現(xiàn)有的數(shù)據(jù)庫(kù)優(yōu)化方法主要從產(chǎn)品設(shè)計(jì)開(kāi)發(fā)階段著手[5-9],但在設(shè)計(jì)開(kāi)發(fā)階段對(duì)數(shù)據(jù)庫(kù)的性能管理有多全面,在實(shí)際的數(shù)據(jù)庫(kù)應(yīng)用中不可避免地出現(xiàn)運(yùn)行速度慢、客戶端卡死等故障。因此,數(shù)據(jù)庫(kù)的性能優(yōu)化應(yīng)該歷經(jīng)軟件系統(tǒng)的設(shè)計(jì)、開(kāi)發(fā)、上線整個(gè)生命周期。系統(tǒng)上線后數(shù)據(jù)庫(kù)性能的診斷是進(jìn)行數(shù)據(jù)庫(kù)性能優(yōu)化的前提。目前,對(duì)數(shù)據(jù)庫(kù)性能的診斷主要依賴各種性能分析和調(diào)優(yōu)工具[10-13]。而數(shù)據(jù)庫(kù)性能故障可能由多種軟硬件原因引起,故障的診斷過(guò)程和結(jié)果分析,不僅依賴于輔助工具,還要一個(gè)有效的測(cè)試過(guò)程[14]。數(shù)據(jù)庫(kù)診斷過(guò)程基本憑借測(cè)試人員的經(jīng)驗(yàn)執(zhí)行。為了優(yōu)化數(shù)據(jù)庫(kù)性能診斷過(guò)程,本文基于數(shù)據(jù)庫(kù)性能表現(xiàn)特征,將數(shù)據(jù)庫(kù)性能診斷問(wèn)題轉(zhuǎn)換成解空間樹(shù),更加清晰地描述和分析整個(gè)問(wèn)題。引入相關(guān)經(jīng)驗(yàn)數(shù)據(jù),避免了數(shù)據(jù)庫(kù)性能診斷盲目性。對(duì)性能診斷過(guò)程的形式化定義,為與其他自動(dòng)化化測(cè)試工具集成提供可能。
精準(zhǔn)有效的數(shù)據(jù)庫(kù)性能診斷主要取決于科學(xué)的診斷過(guò)程及診斷報(bào)告,其中科學(xué)的診斷報(bào)告主要依賴于測(cè)試工具度量的數(shù)據(jù)。性能測(cè)試工具種類繁多,且功能又交叉重疊,有IIS服務(wù)器工具IISTrace、微軟WinDbag、CLR內(nèi)存分析軟件CLRProfiler、并發(fā)工具LoadRunner、Linux性能監(jiān)控工具linux:nmon等。這些工具多數(shù)是將監(jiān)控和測(cè)試數(shù)據(jù)直觀地呈現(xiàn)出來(lái),可以基本滿足對(duì)數(shù)據(jù)庫(kù)各個(gè)層面和各種負(fù)載下的診斷。數(shù)據(jù)庫(kù)的性能診斷是一項(xiàng)十分復(fù)雜的工程,從數(shù)據(jù)庫(kù)性能表現(xiàn)來(lái)看,不論是軟件或者硬件出現(xiàn)性能問(wèn)題,都會(huì)導(dǎo)致硬件負(fù)載異常,而且內(nèi)存、CPU或者I/O等也會(huì)相互影響,數(shù)據(jù)庫(kù)的性能診斷過(guò)程要診斷出其影響性能的真正原因,需要層層剝離表象找出真正的問(wèn)題。因此,一套有效的診斷方案對(duì)數(shù)據(jù)庫(kù)的性能故障診斷和優(yōu)化至關(guān)重要。
回溯算法是一種系統(tǒng)地從問(wèn)題的解空間中搜索得到問(wèn)題的可行解或者最優(yōu)解的算法。該算法通過(guò)對(duì)部分解進(jìn)行增量構(gòu)建式搜索得到可行解,在構(gòu)建過(guò)程中采用一種試探性的法則。在數(shù)據(jù)庫(kù)性能診斷時(shí),性能診斷人員利用經(jīng)驗(yàn)知識(shí)對(duì)某性能表現(xiàn)分析得出的種種可能原因就是一個(gè)解空間,之后對(duì)性能問(wèn)題的探查過(guò)程也正是一個(gè)推測(cè)與驗(yàn)證的試探過(guò)程?;厮菟惴ㄋ阉鬟^(guò)程符合數(shù)據(jù)庫(kù)性能診斷的規(guī)律,并且一個(gè)可行解向量的反序可為性能優(yōu)化路徑提供思路,即沿著可行解向量中最后一個(gè)元素向第一個(gè)向量方向出發(fā),即可進(jìn)行自底向上的性能優(yōu)化。下文探討如何改進(jìn)回溯算法以適合診斷數(shù)據(jù)庫(kù)性能問(wèn)題。
3.1 回溯算法設(shè)計(jì)
3.1.1 解定義
圖1是數(shù)據(jù)庫(kù)性能診斷問(wèn)題的解空間樹(shù)表示。
圖1 數(shù)據(jù)庫(kù)性能診斷解空間樹(shù)結(jié)構(gòu)
本文使用向量V=(v0,v1,…,vh)來(lái)表示一個(gè)性能診斷的過(guò)程。
(1)v0:初始節(jié)點(diǎn),為性能問(wèn)題的初始表現(xiàn);(2)vi:中間節(jié)點(diǎn),表示經(jīng)由v0,v1,…,vi-1(0≤i≤h)層層深入推測(cè)出可能存在性能問(wèn)題的軟硬件檢查點(diǎn),其中vi∈(0,1)表示第i個(gè)檢查點(diǎn)存在性能問(wèn)題的概率;(3)vh:葉子節(jié)點(diǎn),表示經(jīng)由v0,v1,…,vh-1層層深入搜索到并且可度量性能值的檢查點(diǎn),vh∈{0,1}表示第h個(gè)檢查點(diǎn)是否存在性能問(wèn)題,vh=1表示第h個(gè)檢查點(diǎn)存在性能問(wèn)題,vh=0表示第h個(gè)檢查點(diǎn)不存在性能問(wèn)題。
為了描述性能診斷求解過(guò)程和性能診斷結(jié)果中相關(guān)元素,進(jìn)行如下定義:
定義1 在解空間樹(shù)構(gòu)建過(guò)程中,稱那些未構(gòu)建完全的解V=(v0,v1,…,vj)(j 定義2 在解空間樹(shù)構(gòu)建過(guò)程中,稱構(gòu)建完全的解V=(v0,v1,…,vj)(j=h)為一個(gè)候選解,其中v0至vj均為其父節(jié)點(diǎn)未舍充的孩子中權(quán)值最大的節(jié)點(diǎn),vj為葉子節(jié)點(diǎn)。 定義3 對(duì)于一個(gè)候選解,如果vj經(jīng)驗(yàn)證有性能問(wèn)題,那么該候選解被定義為一個(gè)可行解。其中V=(v0,v1,…,vj)(j=h)為一個(gè)診斷出性能問(wèn)題的過(guò)程,vj處驗(yàn)證出某種性能問(wèn)題表明對(duì)該過(guò)程中推測(cè)是正確的。此時(shí)vj是一個(gè)確定的故障點(diǎn),可作為性能優(yōu)化和調(diào)整的對(duì)象。 數(shù)據(jù)庫(kù)性能診斷問(wèn)題的目標(biāo)是找到一個(gè)或所有的可行解,即診斷出某個(gè)或多個(gè)性能故障。在解空間樹(shù)中,從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)的一條路徑即為該問(wèn)題的一個(gè)候選解,該路徑中,第i層節(jié)點(diǎn)到第i+1層節(jié)點(diǎn)之間邊的權(quán)值表示第i+1個(gè)節(jié)點(diǎn)存在性能故障的可能性大小,即某個(gè)候選解向量中vi+1的值。 3.1.2 葉子節(jié)點(diǎn)及其驗(yàn)證 在解空間樹(shù)的構(gòu)建過(guò)程中,葉子節(jié)點(diǎn)的確定與驗(yàn)證方法如下: (1)驗(yàn)證方法。目前有許多進(jìn)行性能分析的工具可以實(shí)現(xiàn)日志跟蹤、服務(wù)器進(jìn)程分析等功能,也有很多數(shù)據(jù)庫(kù)專門的性能調(diào)優(yōu)工具,如SQL提供的DMV,可以方便地通過(guò)查詢語(yǔ)句、等待與阻塞、索引、I/O操作等的統(tǒng)計(jì)信息來(lái)確定性能故障。故如果某個(gè)節(jié)點(diǎn)可由性能測(cè)試工具明確度量出性能參數(shù)(稱可驗(yàn)證),則記錄具體性能測(cè)試數(shù)值,與事先確定的性能基數(shù)對(duì)比,由此確定葉子節(jié)點(diǎn)是否存在性能問(wèn)題。 (2)確定方法。某個(gè)節(jié)點(diǎn)可驗(yàn)證,就被確定葉子節(jié)點(diǎn)。性能診斷的解向量V=(v0,v1,…,vh)中h的數(shù)值也由此動(dòng)態(tài)生成,其實(shí)質(zhì)為性能診斷的深度。 3.1.3 剪枝函數(shù) 為了避免探測(cè)那些不可能產(chǎn)生性能問(wèn)題的軟硬件,需要利用剪枝函數(shù)來(lái)去掉那些節(jié)點(diǎn)及其子孫分支,以減少搜索和驗(yàn)證的工作量。在解向量的構(gòu)造過(guò)程中,為當(dāng)前推測(cè)有性能問(wèn)題的節(jié)點(diǎn)的每個(gè)子節(jié)點(diǎn)定義一個(gè)權(quán)值,權(quán)值由當(dāng)前節(jié)點(diǎn)的性能表現(xiàn)來(lái)確定,表示出現(xiàn)概率的大小,并且對(duì)該節(jié)點(diǎn)的所有子節(jié)點(diǎn)根據(jù)權(quán)值降序排序,每次搜索某節(jié)點(diǎn)的子樹(shù)時(shí),選擇其權(quán)值最大的節(jié)點(diǎn)作為下一個(gè)搜索節(jié)點(diǎn)。診斷時(shí)定義一個(gè)上界約束upbound(0 3.2 基于回溯算法的數(shù)據(jù)庫(kù)性能診斷 圖2為數(shù)據(jù)庫(kù)性能診斷方案框圖。構(gòu)建數(shù)據(jù)庫(kù)性能故障的解空間樹(shù),可以明確勾勒出某性能問(wèn)題通常涉及的異常表現(xiàn)范圍,對(duì)性能故障產(chǎn)生的原因作出更細(xì)致的分析。性能子問(wèn)題搜索與性能子問(wèn)題驗(yàn)證是一個(gè)推測(cè)與驗(yàn)證的過(guò)程。(1)性能子問(wèn)題搜索,在求解搜索過(guò)程中通過(guò)歸約和修剪,提高性能診斷的效率。(2)性能子問(wèn)題驗(yàn)證,定義性能基數(shù)并利用輔助工具對(duì)當(dāng)前的推測(cè)進(jìn)行驗(yàn)證。下面將針對(duì)數(shù)據(jù)庫(kù)系統(tǒng)給出基于回溯算法的性能診斷方法,將解空間樹(shù)的構(gòu)建與搜索分開(kāi)討論。 圖2 數(shù)據(jù)庫(kù)性能診斷方案框圖 3.2.1 數(shù)據(jù)庫(kù)性能診斷解空間樹(shù)構(gòu)建 構(gòu)建數(shù)據(jù)庫(kù)性能診斷解空間樹(shù)的目的是限制數(shù)據(jù)庫(kù)性能故障診斷的范圍,同時(shí)將數(shù)據(jù)庫(kù)性能故障分解成若干個(gè)可能問(wèn)題,進(jìn)而作出更深層次的診斷。圖3為一個(gè)SQL Server數(shù)據(jù)庫(kù)性能診斷解空間樹(shù)的部分圖。 圖3 性能問(wèn)題診斷解空間樹(shù) 解空間樹(shù)構(gòu)建過(guò)程分解如下: (1)針對(duì)數(shù)據(jù)庫(kù)性能問(wèn)題的表現(xiàn),根據(jù)數(shù)據(jù)庫(kù)優(yōu)化工程師的經(jīng)驗(yàn),推測(cè)出現(xiàn)該異常表現(xiàn)可能的軟硬件原因,并分別估計(jì)它們的概率,再進(jìn)行降序排序,即生成解空間樹(shù)根節(jié)點(diǎn)及其子節(jié)點(diǎn),且對(duì)這些子節(jié)點(diǎn)進(jìn)行降序排序;(2)選擇權(quán)值最大的子節(jié)點(diǎn)為當(dāng)前節(jié)點(diǎn),如果該節(jié)點(diǎn)是葉子節(jié)點(diǎn),經(jīng)驗(yàn)證有性能問(wèn)題,則一個(gè)可行解構(gòu)建完成,停止構(gòu)建;否則執(zhí)行下一步;(3)針對(duì)當(dāng)前節(jié)點(diǎn),分析該節(jié)點(diǎn)性能特征的軟硬件原因及其存在概率,即生成某個(gè)節(jié)點(diǎn)的子節(jié)點(diǎn),并分配權(quán)值后降序排序;(4)重復(fù)(2)和(3)過(guò)程。如果根據(jù)經(jīng)驗(yàn)估計(jì)的概率能較準(zhǔn)確反應(yīng)某個(gè)節(jié)點(diǎn)與其子節(jié)點(diǎn)之間的性能表現(xiàn)與產(chǎn)生原因的關(guān)聯(lián)程度,則在可能沒(méi)有發(fā)生回溯時(shí)就已找到了一個(gè)可行解。如果沒(méi)有找到可行解,則根據(jù)回溯算法向上回溯至某一節(jié)點(diǎn)繼續(xù)構(gòu)造。 3.2.2 數(shù)據(jù)庫(kù)性能診斷求解過(guò)程描述 采用回溯算法動(dòng)態(tài)查找數(shù)據(jù)庫(kù)性能問(wèn)題,首先將解向量V設(shè)置成Ф,并將當(dāng)前訪問(wèn)節(jié)點(diǎn)設(shè)置為根節(jié)點(diǎn)v0。接著沿著根節(jié)點(diǎn)向下搜索,選擇解空間樹(shù)中第1層權(quán)值最大的節(jié)點(diǎn)v1作為解向量的第一個(gè)元素。如果v1不是一個(gè)葉子節(jié)點(diǎn),那么當(dāng)前解V=(v0)是一個(gè)部分解。此時(shí),v1是一個(gè)活節(jié)點(diǎn),下一步搜索以v1為根的子樹(shù),選擇v1的權(quán)值最大的孩子v2作為解向量的第二個(gè)元素,如果v2仍然是一個(gè)活節(jié)點(diǎn),繼續(xù)向v2的下一層節(jié)點(diǎn)進(jìn)行搜索。反之,如果v2是一個(gè)死節(jié)點(diǎn),則從v2回溯至其父節(jié)點(diǎn)v1。當(dāng)?shù)玫搅艘粋€(gè)問(wèn)題的部分解V=(v0,v1,…,vi),需要vi+1把添加到解向量末尾時(shí),其詳細(xì)操作情況如下: (1)如果vi+1是一個(gè)中間節(jié)點(diǎn),那么當(dāng)前解是一個(gè)部分解,該部分解存在被構(gòu)建為可行解的可能性,因此對(duì)其孩子中權(quán)值最大的節(jié)點(diǎn)vi+2進(jìn)行搜索。 (2)如果vi+1是一個(gè)葉子節(jié)點(diǎn),此時(shí),若vi+1經(jīng)驗(yàn)證有性能問(wèn)題,那么當(dāng)前解是一個(gè)完全解,該完全解是一個(gè)可行解;若vi+1經(jīng)驗(yàn)證無(wú)性能問(wèn)題,則沿著解空間樹(shù)回溯至節(jié)點(diǎn)vi+1的父節(jié)點(diǎn)vi,并對(duì)其剩余孩子中權(quán)值最大的節(jié)點(diǎn)進(jìn)行搜索,如果節(jié)點(diǎn)v1的所有孩子節(jié)點(diǎn)都已經(jīng)被搜索完畢,則回溯至節(jié)點(diǎn)vi的父節(jié)點(diǎn)vi-1。 不斷重復(fù)步驟(1)和(2),直到找到一個(gè)可行解,或者根節(jié)點(diǎn)變?yōu)樗拦?jié)點(diǎn)。若根節(jié)點(diǎn)變?yōu)樗拦?jié)點(diǎn)時(shí),仍沒(méi)有找到一個(gè)可行解,則表示利用該解空間樹(shù)中無(wú)法診斷出性能問(wèn)題。 3.2.3 算法分析 本算法在找到一個(gè)可行解時(shí)即終止算法,因此每次搜索只能定位一個(gè)性能問(wèn)題故障點(diǎn),搜索過(guò)程屬于找出局部最優(yōu)解,因此不一定能找到最主要故障點(diǎn),而可能存在其他性能故障點(diǎn)。因此,若要診斷某個(gè)異常表現(xiàn)的所有其他故障點(diǎn),只有在回溯至解空間樹(shù)的根節(jié)點(diǎn)v0且v0的所有孩子節(jié)點(diǎn)都已經(jīng)搜索完畢時(shí)才可終止算法,此時(shí)整個(gè)解空間樹(shù)已經(jīng)被搜索完畢。 基于回溯算法的數(shù)據(jù)庫(kù)性能診斷是一種圖的深度優(yōu)先搜索,算法的時(shí)間復(fù)雜度由權(quán)值排序的時(shí)間復(fù)雜度和圖搜索的復(fù)雜度決定,如果要找到一個(gè)可行解,其最壞的情況是遍歷完整棵解空間樹(shù),其復(fù)雜度為O(m+n+nlogn),但在實(shí)際求解過(guò)程中,由于對(duì)性能問(wèn)題分配的權(quán)值有上界約束,找到可行解的迭代次數(shù)遠(yuǎn)小于這個(gè)值。 實(shí)例是用戶使用一個(gè)信息管理系統(tǒng)的報(bào)表查詢功能,查詢速度非常慢,其它功能正常。根據(jù)經(jīng)驗(yàn)構(gòu)建的解空間樹(shù)如圖3所示。圖中各分支即為測(cè)試人員對(duì)該性能問(wèn)題的原因分析,各節(jié)點(diǎn)連接線上的權(quán)值即為對(duì)各原因存在的概率估計(jì)。根據(jù)上節(jié)所述搜索解空間樹(shù)的方法,由性能問(wèn)題描述首先判斷可能是內(nèi)存問(wèn)題,再使用性能計(jì)數(shù)器對(duì)運(yùn)行中的服務(wù)器做日志跟蹤,檢查發(fā)現(xiàn)內(nèi)存設(shè)置沒(méi)有問(wèn)題,回溯至其父節(jié)點(diǎn),選擇剩余未訪問(wèn)的子節(jié)點(diǎn)中權(quán)值最大的進(jìn)行訪問(wèn),即對(duì)SQL查詢語(yǔ)句進(jìn)行診斷,通過(guò)監(jiān)控內(nèi)存和Dump內(nèi)存來(lái)分析,發(fā)現(xiàn)在代碼中有一方法長(zhǎng)時(shí)間執(zhí)行致使堆棧中局部大量變量無(wú)法釋放。圖3中若要顯性地對(duì)SQL語(yǔ)句效率作更具體的形式化分析,則繼續(xù)對(duì)效率低的原因進(jìn)行多維度推測(cè)并驗(yàn)證。 本文的目的是要從內(nèi)存、CPU、磁盤、網(wǎng)絡(luò)等性能表現(xiàn)來(lái)逐步深入地探測(cè)數(shù)據(jù)庫(kù)軟、硬件性能故障,甚至探查出數(shù)據(jù)庫(kù)的設(shè)計(jì)、開(kāi)發(fā)階段的問(wèn)題,作為對(duì)系統(tǒng)性能優(yōu)化和調(diào)整的依據(jù)。本文的主要工作是給出了一種數(shù)據(jù)庫(kù)性能診斷過(guò)程的解空間樹(shù)的構(gòu)建方法,以及以自然語(yǔ)言描述了基于回溯算法的數(shù)據(jù)庫(kù)性能診斷的求解過(guò)程,為數(shù)據(jù)庫(kù)性能診斷提供一個(gè)形式化方法,實(shí)踐案例表明該方法對(duì)性能診斷過(guò)程具有指導(dǎo)作用。下一步工作考慮如何將該方法與性能測(cè)試工具集成,以及如何減少經(jīng)驗(yàn)數(shù)據(jù)的主觀性,更好地指導(dǎo)性能問(wèn)題的搜索過(guò)程。 [1]Alwana A A,Ibrahima H,Yipa T C,et al.A performance evaluation of preference evaluation techniques in real high dimensional database[J].Procedia Computer Science,2012(10):894-901. [2]Kacerka W,Kacerka J.Beyond databases,architectures and structures:Analysis of the effect of chosen initialization parameters on database performance[J].Communications in Computer and Information Science,2015(521):60-68. [3]Chang Yue-shan,Sheu R K,YUAN Shyan-Ming, et al.Scaling database performance on GPUs[J]. Information Systems Frontiers,2012,14(4):909-924. [4]Gorla N,Vincent N,Law D M.Improving database performance with a mixed fragmentation design[J].Journal of Intelligent Information Systems,2012,39(3):559-576. [5]Osman R,Knottenbelt W J.Database system performance evaluation models-A survey[J].Performance Evaluation,2012(69):471-493. [6]Mrozek D,Paliga A,Mrozek M B,et al.Beyond databases,architectures and structures:database under pressurescaling database performance tests in microsoft azure public cloud[J].Communications in Computer and Information Science,2015(521):69-81. [7]Ou Y,Harder T.Database systems for advanced applications lecture notes:Improving database performance using a flash-based write cache[J].Computer Science,2012,7240:2-13. [8]李艷麗,張興忠.云環(huán)境下基于LQNM的數(shù)據(jù)庫(kù)性能建模研究[J].計(jì)算機(jī)應(yīng)用與軟件,2015(1):55-58. [9]肖盼,黃萍.基于SQL語(yǔ)言執(zhí)行效能的關(guān)系數(shù)據(jù)庫(kù)性能測(cè)試研究[J].計(jì)算機(jī)與數(shù)字工程,2012(2):127-129. [10]Clarke J.Oracle exadata recipes:Host and database performance monitoring[M].Apress,2013:411-444. [11]Sileika R.Pro python system administration:Automatic MySQL database performance tuning[M].Apress, 2014:349-366. [12]趙吉志.數(shù)據(jù)庫(kù)服務(wù)器性能測(cè)試方法的研究和實(shí)現(xiàn)[J].計(jì)算機(jī)研究與發(fā)展,2012,49(Suppl):352-356. [13]徐增敏,張昆,丁勇,等.基于動(dòng)態(tài)視圖的數(shù)據(jù)庫(kù)性能調(diào)[J].計(jì)算機(jī)應(yīng)用與軟件,2012,29(12):58-60. [14]FritcheyY G. SQL server query performance tuning:Data-base performance testing[M].Apress,2014:505-513. Application of Backtracking Algorithm in Database Performance Diagnosis CHENG Xiang (Anhui Institute of Economic and Management, Hefei Anhui 230059, China) Database performance diagnosis is essential for database systems. For the current situation that the process of database performance diagnosis depends on the experience of testers, this paper studied a database performance diagnosis method based on backtracking algorithm. It gives a way to construct the solution space tree of database performance diagnosis process, and a detailed formalized algorithm of diagnosis process. The paper also presents a concise use case of this method. The method can avoid blindness during the process of database performance diagnosis, and can also be used as a reference of other system performance diagnosis. performance diagnosis; backtracking algorithm; database performance; bottom-up 2015-07-13 程 香(1982- ),女,安徽合肥人,安徽經(jīng)濟(jì)管理學(xué)院講師,碩士,從事算法設(shè)計(jì)、軟件性能分析研究。 TP3 A 2095-7602(2015)12-0030-054 診斷實(shí)例
5 結(jié)語(yǔ)
長(zhǎng)春師范大學(xué)學(xué)報(bào)2015年12期