精品人妻无码一区二区三区软件 ,麻豆亚洲AV成人无码久久精品,成人欧美一区二区三区视频,免费av毛片不卡无码

您現在的位置是:首頁計算機應用論文

數據庫論文數據庫管理系統(tǒng)中查詢優(yōu)化的設計

發(fā)布時間: 1

  目前,數據庫管理系統(tǒng)已經成為數據庫技術中的核心技術,同時也是信息化建設中應用最廣泛的軟件。數據庫管理系統(tǒng)經過幾個階段的發(fā)展,已經在商業(yè)領域得到了迅速和廣泛的應用。廣泛的應用領域為數據庫技術的發(fā)展和不斷進步提供了發(fā)展的原動力,如今的數據庫管理技術呈現出標準化、網絡化、大型化和智能化的趨勢。

  【摘要】目前,數據庫管理系統(tǒng)已經成為數據庫技術中的核心技術,同時也是信息化建設中應用最廣泛的軟件。如今的數據庫管理技術呈現出標準化、網絡化、大型化和智能化的趨勢。國外數據庫管理系統(tǒng)由于研究的時間比較早,其技術比較先進。我國雖然也自主研發(fā)了一些數據庫管理系統(tǒng),但是和國外的產品相比還有一定的差距。本文以國產數據庫管理系統(tǒng)OSCAR為例,重點闡述了查詢優(yōu)化的一些關鍵技術和具體實現方法。

  【關鍵詞】數據庫管理系統(tǒng),查詢優(yōu)化,選擇性因子,關鍵技術

  1引言

  我國從宏觀政策方面也給數據庫管理系統(tǒng)一定的扶持,例如國家的863計劃就專門設立了“數據庫管理系統(tǒng)及其應用”。本文以國產數據庫管理系統(tǒng)OSCAR為例,重點闡述了查詢優(yōu)化的一些關鍵技術和具體實現方法。

  2查詢優(yōu)化關鍵技術

  2.1查詢優(yōu)化的一般準則

  查詢優(yōu)化的一般準則能改善一定程度的查詢效率,但是并不是改善程度最好,策略最好的。查詢優(yōu)化的一般準則如表1所示。

  2.2查詢優(yōu)化的規(guī)則系統(tǒng)

  神州OSCAR數據庫管理系統(tǒng),應用范圍廣泛,該數據庫主要基于Client/Server的結構,該體系結構又分為物理結構、邏輯結構、進程和內存結構四個方面。同時OSCAR數據庫管理系統(tǒng)具有強大的規(guī)則系統(tǒng),該規(guī)則系統(tǒng)可以實現不明確試圖和試圖的更新。例如位于分析器和優(yōu)化器之間的重寫系統(tǒng),其作用是分析傳回的用戶查詢信息。當重寫規(guī)則被定義之后,重寫系統(tǒng)將對傳回的用戶查詢進行內部操作。

  2.3查詢優(yōu)化預處理

  查詢優(yōu)化預處理是在真正的優(yōu)化處理之前進行的操作,主要是為了進行更加高效地查詢規(guī)劃,查詢預處理包括對目標列的預處理、條件表達式的預處理和對集合操作的預處理。例如對目標列的預處理首先要補全目標列,然后需要確保表定義中的順序和查詢樹的順序一致。對條件的預處理需要把條件表達式需要把NOT下推或盡可能去掉NOT,或者把條件表達式轉換成析取范式或者合取范式。對集合的預處理操作又可分為Except、Union和Intersect等。

  2.4查詢優(yōu)化的邏輯優(yōu)化

  邏輯優(yōu)化的完成主要依靠索引來完成,主要是進行物理上的優(yōu)化過程,從而使用邏輯優(yōu)化來完成查詢的計算過程。邏輯優(yōu)化主要包括兩個方面。

  “AND”的優(yōu)化過程。在進行優(yōu)化時第一步是要找出含有“AND”的邏輯表達式,然后查詢是否存在可以使用索引的子查詢表達式,如果不存在則采用掃描的方式進行邏輯運算。如果存在可以使用索引的子查詢表達式,就需要先計算中查詢表達式,最后利用查詢表達式的運算結果計算其余的查詢表達式。

  “OR”的優(yōu)化過程。“OR”的優(yōu)化過程和“AND”的優(yōu)化過程基本思路一致,都需要在子查詢表達式中找出是否存在可以使用的索引。如果不存在可以使用的索引,當子查詢表達式存在多個時,就要調整子查詢表達式的運算順序,從而得到中間結果,把中間結果最后進行“或”計算后得到最后的計算結果。如果存在可以使用的索引,就需要使用索引得到中間計算結果。

  3實現數據庫管理系統(tǒng)查詢優(yōu)化的算法

  算法是實現數據庫管理系統(tǒng)查詢優(yōu)化的基礎和關鍵,目前成熟的算法也很多,不同的算法查詢優(yōu)化的效果也更不相同,本文重點介紹兩種。3.1存取方法和存儲路徑分析

  查詢優(yōu)化器的一個重要功能就是如果選擇檢索數據,然后構造良好的執(zhí)行計劃。在OSCAR數據庫管理系統(tǒng)中主要采用下面三種存取方法和存儲路徑。

  順序掃描。順序掃描需要讀取信息表中全部元組,檢查每一個元組是否滿足WHERE的條件,對于任意一個信息表,需要從頭到尾的按照順序掃描一遍,需要花費的時間相對較長。為了提高掃描效率,可以使用多塊讀取的方式。

  索引掃描。利用建立的多列或單列索引,可以提高檢索的效率。當語句訪問到的索引是唯一時,數據庫管理系統(tǒng)將直接而非表中讀出索引列的數值。根據索引掃描方式的不同,又可分為唯一(Unique)和范圍(Range)兩種類型。

  利用TID進行存取。利用TID進行掃描是查找單個記錄最快捷的方法,首先給數據庫中的每一個元組規(guī)定唯一的一個TID,每一個元組的TID包含兩個方面的信息,分別是元組在數據塊中的位置和數據文件,然后利用這個唯一的TID檢索表。

  3.2SYSTEM-R代價估算算法分析

  SYSTEM-R是代價估算算法的一種,該算法主要是從CPU和I/O的開銷上進行考慮的,SYSTEM-R代價估算法的數學計算公式如下:

  Cost=P+W*T(公式1-1)

  上述公式中,P主要代表I/O的開銷。T代表了CPU的開銷,其中W是一個權重,表示在一次查詢中更重視CPU的開銷還是I/O的開銷。

  對于每一次查詢優(yōu)化時的索引,P和W的數值還要受到選擇性因子的限制,選擇性因子由于是函數,具有多種可能性,在SYSTEM-R是代價估算算法中,選擇性因子被固化在表2中。

  4數據庫管理系統(tǒng)中查詢優(yōu)化的實現

  4.1性能設計

  在進行查詢優(yōu)化時可以發(fā)現,一些語句僅僅是常數不同,它們具有相同的查詢語句。為了提高數據庫查詢的效率,當把常數指定到一定范圍時,就可以把具有相同模式的查詢語句進行常數替換。從而實現相同模式的查詢語句僅僅做一次語法分析,從而節(jié)省了查詢時間,為了查詢優(yōu)化,首先需要對查詢語句進行緩沖,該部分內容又可分為提取查詢計劃和保持新的查詢計劃兩個步驟進行。

  4.2體系結構設計

  SPC的信息流圖如圖1所示。

  從圖1可以看出,各個模塊直接的信息交換是依靠參數實現的,網絡通信庫相對與SPC查詢緩沖模塊而言是數據輸入模塊,當SPC查詢緩沖模塊發(fā)出查詢計劃時,查詢執(zhí)行模塊就要進行查詢。

  4.3關鍵算法

  為了提高查詢效率,優(yōu)化查詢結果,本文采用hash函數保持語法數和查詢語句,如果hash函數設計不好,會造成一些沖突,從而降低hash表的效率。本文設計的一個經驗字符串的hash函數如下:

  unsignedinthash(char*str)

  {

  Registerunsignedinth;

  Registerunsignedchar*p;

  for(h=0,p=(Registerunsignedchar*)str;*p;p++)

  h=*p-h+h<<5;

  returnh;

  }

  實踐證明,使用該字符串hash函數效能較好,效率較高。

  5結束語

  為了適應飛速發(fā)展的業(yè)務需求,未來的數據庫管理系統(tǒng)需要更強大的功能,更快的運行速度,為了使我國自主研發(fā)的數據庫管理系統(tǒng)具有更好的性能,能夠縮短和外國主流商業(yè)數據庫的差距,需要我們從核心技術出發(fā),早日開發(fā)出國際一流的產品。

  參考文獻

  [1]張杰敏.有關高級數據庫系統(tǒng)中的并發(fā)控制問題[J].華北工學院學報,2012(03).

  [2]趙艷平.數據庫管理系統(tǒng)的組成與發(fā)展[J].科技信息.2011(07).


轉載請注明來自:http://www.jinnzone.com/jisuanjiyingyonglw/32430.html