• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      關系數(shù)據(jù)庫查詢優(yōu)化淺析

      2018-11-13 12:03:04趙新華
      新一代 2018年13期
      關鍵詞:關系數(shù)據(jù)庫

      趙新華

      摘 要:SQL查詢已經廣泛應用于數(shù)據(jù)庫系統(tǒng)中,如何通過優(yōu)化查詢進而提高數(shù)據(jù)庫的性能,本文從查詢語句的使用,視圖、存儲過程以及索引的應用幾方面進行了分析,并提出了優(yōu)化方案。

      關鍵詞:查詢優(yōu)化;SQL;關系數(shù)據(jù)庫

      隨著數(shù)據(jù)庫技術的廣泛應用,我們發(fā)現(xiàn)數(shù)據(jù)庫應用中大量的工作是要進行數(shù)據(jù)查詢和檢索處理?;陉P系數(shù)據(jù)庫的標準查詢語言SQL在數(shù)據(jù)庫系統(tǒng)中被廣泛使用,而我們在使用SQL查詢數(shù)據(jù)時往往太注重結果而忽略了不同的查詢方法導致效率的降低。數(shù)據(jù)查詢效率和檢索處理速度已經成為衡量數(shù)據(jù)庫性能的一個重要指標。為了優(yōu)化數(shù)據(jù)庫的性能,除了改進數(shù)據(jù)庫的硬件條件、軟件環(huán)境和規(guī)范化設計外,還應該進行數(shù)據(jù)查詢的優(yōu)化。我認為可以從以下幾方面進行查詢優(yōu)化。

      一、索引優(yōu)化

      索引的概念:索引是對數(shù)據(jù)庫表中一個或多個字段的值進行排序的一種數(shù)據(jù)結構,使用索引可以快速訪問數(shù)據(jù)庫表中的特定數(shù)據(jù)。數(shù)據(jù)庫索引就好比一本書的目錄,能加快數(shù)據(jù)庫的查詢速度,索引又分為聚集索引和非聚集索引,聚集索引是按照數(shù)據(jù)存放的物理位置為順序,而非聚集索引則不是。聚集索引能提高多行檢索的速度,非聚集索引對單行檢索很快。

      索引的使用原則:(1)索引要建立在使用率高的字段上,這樣可以提高索引的使用率。(2)建立復合索引時要注意復合索引的順序要按照使用的頻度來確定。(3)在經常需要排序和分組的字段上建立索引,以加快排序和分組的時間。(4)一般不在數(shù)據(jù)值較少的字段上建立索引。因為如果數(shù)據(jù)值少的話有沒有索引對查詢效率影響并不明顯。(5)對于經常存取修改的字段盡量不建立索引,因為這樣會帶來較大的維護工作。

      合理建立索引能提高檢索速度,但并不是索引越多越好,過多的索引會降低數(shù)據(jù)庫系統(tǒng)的整體性能,因為索引是需要系統(tǒng)維護它,并且會產生索引碎片,所以我們建立索引時要綜合考慮既要達到快速檢索的目的,又不能降低系統(tǒng)整體性能。

      二、SQL語句優(yōu)化

      (一)操作符的優(yōu)化。(1)避免使用<>、NOT這樣的操作符,這種操作符使系統(tǒng)無法使用索引而只能直接搜索表中的數(shù)據(jù)。例如:select pid from tb_product where pprice<>4000,優(yōu)化器將無法通過索引來確定將要命中的行數(shù),因此需要搜索該表的所有行。而我們改為:select pid from tb_product where pprice>4000 or pprice<4000,就可以使用索引查詢,檢索速度得到了提高。(2)盡量減少LIKE操作符的使用,LIKE操作符應用通配符查詢可以實現(xiàn)幾乎是任意的查詢。但在字符串的比較中,有時大量字符的逐個比較,也會大大降低查找效率。

      (二)select子句的優(yōu)化。盡量減少select*的使用,用具體的列名代替*,過濾掉多余的列。使用top,distinct關鍵字減少多余重復的行,distinct在查詢一個字段或者很少字段的情況下使用,會避免重復數(shù)據(jù)的出現(xiàn),給查詢帶來優(yōu)化效果,但是查詢字段很多的情況下使用,則會大大降低查詢效率,所以當查詢字段多的時候要慎用。

      (三)where子句的優(yōu)化。合理設置WHERE條件的先后順序。把能過濾更多數(shù)據(jù)的條件放在前面,過濾少的放后面,便可提高檢索速度。

      例如:select pname from tb_product where pquality=A and ptype =電腦產品

      當產品質量大多為A時,我們就可以把語句改為:select pname from tb_product where ptype=電腦產品and pquality=A

      這樣通過ptype=電腦產品這個條件過濾掉的數(shù)據(jù)行要比pquality=A過濾掉的數(shù)據(jù)行多,從而提高了查詢速度。

      三、避免相關子查詢

      子查詢的效率一般沒有連接查詢高,應該盡量用連接查詢來代替子查詢。除非必要,一般不要寫有子查詢的語句,如果必須用子查詢的時候,在子查詢里寫盡量多條件,使得子查詢返回的行數(shù)盡量少。

      四、建立視圖

      視圖可簡化用戶操作數(shù)據(jù)的方式,使用戶能著重于所感興趣的特定數(shù)據(jù)。如果該視圖數(shù)據(jù)規(guī)模小于基本表,則基于視圖的查詢比原查詢的速度會快得多。

      五、使用存儲過程

      把常用的查詢語句編寫成存儲過程,以此來取代應用程序中的查詢語句,可以很大程度的增加SQL語句執(zhí)行效率。存儲過程是一個可重用的代碼模塊,存儲過程創(chuàng)建后,可以在程序中任意調用,減少了重新編譯的時間。

      編寫性能優(yōu)化的SQL語句是提高數(shù)據(jù)庫系統(tǒng)的重要因素,隨著數(shù)據(jù)庫管理系統(tǒng)中數(shù)據(jù)量的增大,如何提高查詢速度與效率也是計算機軟件開發(fā)的一個時代要求。實現(xiàn)優(yōu)化查詢的方法很多,在使用中,要根據(jù)具體情況權衡利弊,使數(shù)據(jù)庫查詢性能最優(yōu)。

      參考文獻:

      [1]黃崇本,韋存存.SQL SERVER數(shù)據(jù)庫技術與應用 大連理工大學出版社,2014

      [2]祁鵬年,數(shù)據(jù)庫查詢優(yōu)化淺析,計算機光盤軟件與應用,2014

      [3]張燕琴,基于SQL Server數(shù)據(jù)庫的查詢優(yōu)化,軟件導刊,2012

      [4]商惠華,關系數(shù)據(jù)庫SQL查詢語句的優(yōu)化,2014.

      猜你喜歡
      關系數(shù)據(jù)庫
      關系數(shù)據(jù)庫在高爐數(shù)據(jù)采集系統(tǒng)中的應用
      山東冶金(2022年2期)2022-08-08 01:51:30
      關系數(shù)據(jù)庫技術在計算機網絡設計中的應用
      計算機網絡設計中關系數(shù)據(jù)庫技術的應用
      基于索引結構的關系數(shù)據(jù)庫關鍵詞檢索
      一種基于數(shù)據(jù)圖劃分的關系數(shù)據(jù)庫關鍵詞檢索方法
      基于用戶反饋的關系數(shù)據(jù)庫關鍵字查詢系統(tǒng)
      山阳县| 岢岚县| 嘉黎县| 兰考县| 本溪市| 定边县| 安新县| 房山区| 加查县| 胶南市| 临猗县| 贡嘎县| 景泰县| 宜丰县| 正定县| 疏附县| 临猗县| 界首市| 望谟县| 乡宁县| 玉环县| 长汀县| 泽州县| 湄潭县| 双柏县| 怀宁县| 盘山县| 利川市| 高要市| 凤庆县| 方山县| 嵊泗县| 偃师市| 漳浦县| 阳山县| 马鞍山市| 肥乡县| 辽宁省| 灵寿县| 定陶县| 绥滨县|