申超群
摘 要 數據庫管理系統(tǒng)應用非常廣泛,尤其在信息化建設中的應用尤為突出。隨著科技的進步,目前的數據庫發(fā)展呈現(xiàn)出智能化、網絡化、大型化以及標準化的特點,這也是未來的發(fā)展趨勢,數據庫系統(tǒng)的發(fā)展不僅帶動了我國科技的發(fā)展,更加帶動了我國經濟的發(fā)展。國外在數據庫的研究方面著手較早,研究的時間較長,所以在技術方面遠比我們國內要先進。數據庫管理系統(tǒng)國內也有研究,但是相比于國外依然存在一定的差距。本文將國產數據庫管理系統(tǒng)OSCAR作為研究對象,并對查詢優(yōu)化一些關鍵技術進行分析和研究,最后提出具體實現(xiàn)方案,旨在為我國相關領域提供參考和支持。
關鍵詞 數據庫管理系統(tǒng);查詢及優(yōu)化;選擇性因子;核心技術
中圖分類號 TP3 文獻標識碼 A 文章編號 1674-6708(2016)166-0092-02
數據庫管理系統(tǒng)應用非常廣泛,尤其在信息化建設中的應用尤為突出。數據庫系統(tǒng)經過長期的發(fā)展,在商業(yè)領域中的應用非常廣泛。就我國而言,數據庫管理系統(tǒng)一直受到國家宏觀政策的扶持,如我國在863計劃當中,根據實際情況設置了“數據庫管理系統(tǒng)及其應用”。隨著社會經濟不斷發(fā)展,各領域對技術提出了更高要求。因此加強對該問題的研究具有非常重要的現(xiàn)實意義,能夠幫助相關主體了解更多關鍵技術,并掌握其實現(xiàn)方法。
1 查詢優(yōu)化關鍵技術
1.1 查詢優(yōu)化的一般準則
查詢的效率在一定程度上可以通過查詢優(yōu)化的方法得到改善,然而無論是從策略上考慮,還是從改善程度方面考慮,這都不是最好的辦法。查詢優(yōu)化一般準則主要有5個部分:準則一,選擇運算盡可能優(yōu)先的進行。這一準則能夠在一定程度上節(jié)約時間成本。準則二,針對實踐執(zhí)行及連接等進行預處理,一般來說,在實踐中,預處理可以采取兩種方式,分排序合并及索引兩種連接。準則三,將選擇運算及投影運算同時進行。這一原則的遵循能夠減少對關系的重復掃描。準則四,提取出公共子表達式。如果從外部讀入子表達式速度較快,可以將其作為公共表達式,以便提高表達有效性。準則五,建立在笛卡爾積同基礎之上,重構連接運算。在具體應用過程中,借助上述準則,能夠有效節(jié)省更多時間,毋庸置疑效率也就快了。
1.2 查詢優(yōu)化規(guī)則系統(tǒng)
針對研究對象來說,其自身具有較為廣泛的應用范圍。綜合來看,該系統(tǒng)Client/Server的結構為基礎運行。整個體系結構由內存、邏輯及物理等部分構成。該數據庫管理系統(tǒng)除了應用廣泛之外在規(guī)則系統(tǒng)方面也相當強大。規(guī)則系統(tǒng)的使用,不僅能夠實現(xiàn)對不明確試圖的觀察,且能夠對試圖進行相應的處理。比如重寫系統(tǒng),該系統(tǒng)存在于優(yōu)化器和分解器之間的,系統(tǒng)傳回的用戶查詢信息主要就是通過該系統(tǒng)來完成分析的。重寫規(guī)則后,系統(tǒng)能夠對傳回的用戶在內部進行相應的操作,滿足用戶需求。
1.3 查詢優(yōu)化預處理
一般在真正進行優(yōu)化處理之前還有一項操作是需要完成的,那就是查詢優(yōu)化處理,這一處理放在這里的主要目的是讓查詢規(guī)劃的效果更高。具體的查詢優(yōu)化處理主要包括3個方面,對集合操作的預處理、對條件表達式的預處理和對目標列的預處理。在進行目標列的預處理之前第一步要做的是將目標列補充完全,同時還應該保證查詢樹的順序同表定義中的順序保持一致性。在進行條件的預處理之前應該將條件表達式轉變成析取范式或者合取范式,也可以將條件表達式NOT下推或者是想辦法將NOT去除。在進行集合的預處理還有很多分類,如Intersect、Union、Except等。
1.4 查詢優(yōu)化的邏輯優(yōu)化
邏輯優(yōu)化其本質是一個物理層次的優(yōu)化過程,主要是通過索引來進行的,最后,在邏輯優(yōu)化基礎上,完成查詢計算全過程。邏輯優(yōu)化體現(xiàn)在兩個方面,一是“AND”;二是“OR”優(yōu)化過程。
“AND”的優(yōu)化過程。在進行“AND”的優(yōu)化之前首先要完成的是將含有“AND”的邏輯表達式找出來,第二步要做的是通過查詢,以此來判斷我們能夠使用的子查詢表達式是否真實存在。如果沒有,可以應用掃描模式完成邏輯運算。如果有,可以將索引的子查詢表達式應用,將查詢表達式計算出來,并充分利用運算結果,計算出剩余查詢表達式。最終實現(xiàn)對整個邏輯的優(yōu)化目標。
相比較來看,“OR”較“AND”比較來看,二者存在較強的一致性。詳細來說,兩種優(yōu)化過程必須要做的都是需要在子查詢表達式中找出是否存在可以使用的索引。若沒有,而有多個子查詢表達式的情況下,則為了得到中間結果,自查詢表達式運算順序需要經過相應的調整,并對中間結果進行相應的調整,最終才能夠獲取相應的結果。若有,那么中間計算結果可以通過索引的運用來獲取。
2 實現(xiàn)數據庫管理系統(tǒng)查詢優(yōu)化的算法
在數據庫管理系統(tǒng)查詢優(yōu)化的實現(xiàn)過程中最基礎、最關鍵的就是算法。在實踐應用過程中,使用的算法不同,那么對應的查詢優(yōu)化結果也會有所差別,具有較強的針對性。本文主要從兩個方面進行介紹。
2.1 存取方法和存儲路徑分析
檢索數據的選擇和執(zhí)行計劃的構造,建立在查詢優(yōu)化設備基礎之上。針對OSCAR系統(tǒng)來安,其一般有順序掃描、索引掃描以及利用TID進行存取3種類型。
其中針對順序掃描來看,系統(tǒng)在運行中,會先對信息表中涉及的所有元組進行相應的處理,然后對每個元組進行檢查,查看是否滿足WHERE條件。不僅如此,還需要對每個信息表進行系統(tǒng)化掃描處理,基于此,全面掃描耗時相對較長。因此,為了能夠提高掃描有效性,我們可以采取多塊讀取方法,更快地獲取相應的結果。而針對索引掃描而言,該類型掃描更多的是為了檢索有效性,采取對多列、單列索引的構建。在語句訪問到索引具有唯一性時,系統(tǒng)可以直接將非表中的索引列數值讀取出來。根據掃描方式具有的差異性來看,在執(zhí)行中,可以采取唯一、范圍兩類。
利用TID進行存取。在進行單個記錄的查詢時,這種掃描方式是最方便和快捷的,第一步要做的是對數據庫中的每一個元組規(guī)定唯一的TID,再利用這個TID檢索表。其中每一個元組的TID的主要信息分為數據文件和元祖存在于數據庫中的具體位置兩方面。
2.2 SYSTEM-R代價估算算法分析
SYSTEM-R是一種代價估算算法,CPU和I/O的開銷是這種算法考慮的重點,Cost=P+W*T公式是這種算法的數學表達式。其中W表示權重,P代表I/O開銷,而T 代表的是CPU的開銷。這個式子可以解釋為在一次的查詢中CPU和I/O的開銷的重視度問題。
P和W的數值在每一次的查詢優(yōu)化時的索引中都是不一樣的,其原因主要是選擇因子的存在。當然我們在算法SYSTEM-R代價估算中,可以將其分為三種情況:其一,當r.field=value時,而選擇因子為I/(定義在r.field上的索引表中的T);其二,當r.field>value時,選擇因字固化為(r.field的最大值-value)/(r.field的最大值r.field的最小值);其三,當r.field 3 數據庫管理系統(tǒng)中查詢優(yōu)化的實現(xiàn) 3.1 性能設計 查詢優(yōu)化是一項綜合性工作,很多語句之間的差異僅僅是常數變化,而查詢語句卻是一致的。因此出于提高數據庫查詢有效性的考慮,可以將常數指定到某一范圍當中,針對具有同一查詢語句的語句進行常數更換。而針對同一模式的語句,在實踐中,僅需要采取一次語法分析,便能夠節(jié)省很多實踐。在查詢優(yōu)化過程中,第一步要做的是緩沖查詢語句。其中不僅要獲取查詢對應的計劃,且需要將新的查詢計劃保持好,以此來提高系統(tǒng)運行有效性。 3.2 體系結構設計 數據庫體系的機構主要有3個環(huán)節(jié),第一環(huán)節(jié)包括網絡通信庫、查詢計劃優(yōu)化模塊和DBA命令處理模塊3個部分;第二環(huán)節(jié)是SPC查詢緩沖模塊;第三環(huán)節(jié)是查詢執(zhí)行模塊。每個環(huán)節(jié)中的模塊進行信息交換都是通過參數來完成的,例如在SPC查詢緩沖模塊發(fā)出查詢計劃后,查詢執(zhí)行模塊將會進入到運行模式當中。 3.3 關鍵算法 為了能夠進一步提升查詢有效性,實現(xiàn)對查詢結果的調整和優(yōu)化。本文引入hash函數,保持語法數、查詢語句。該函數更具靈活性,能夠直接與對應的表保持一致。通過對實踐結果觀察能夠發(fā)現(xiàn),利用該字符串,不僅能夠促使該函數效能達到最佳狀態(tài),且查詢系統(tǒng)整體效率也得到了優(yōu)化。因此,可以使用hash函數,以此來提高查詢有效性,為用戶提供更加優(yōu)質的服務。 4 結論 在業(yè)務需求顯示出越來越強勁的勢頭下,數據庫管理系統(tǒng)在未來的發(fā)展過程中必須要有更快的運行速度和更為強大的功能。雖然我國自主研發(fā)的數據庫管理系統(tǒng)與國外的差距依然很大,但是我們應該從核心技術出發(fā),深入研究,盡可能縮小與國際一流水平之間的差距,甚至趕超國際一流水平,逐漸使數據庫管理系統(tǒng)世界化、全球化。 參考文獻 [1]張杰敏.有關高級數據庫系統(tǒng)中的并發(fā)控制問題[J].華北工學院學報,2012(3):204-206. [2]趙艷平.數據庫管理系統(tǒng)的組成與發(fā)展[J].科技信息,2011(7):73.