• 
    

    
    

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

      SQL數(shù)據(jù)查詢技術(shù)研究

      2017-05-10 13:40:49劉娜
      青年時(shí)代 2017年11期
      關(guān)鍵詞:排序

      劉娜

      摘 要:SQL Server是一種功能強(qiáng)大的關(guān)系數(shù)據(jù)庫系統(tǒng),數(shù)據(jù)庫系統(tǒng)已經(jīng)廣泛應(yīng)用于各行各業(yè),數(shù)據(jù)查詢語句的執(zhí)行效率將直接影響數(shù)據(jù)庫系統(tǒng)性能,因此本文通過分析基于SQL的數(shù)據(jù)查詢技術(shù),提出一些有關(guān)數(shù)據(jù)查詢的思路、想法和優(yōu)化策略,希望可以提高數(shù)據(jù)查詢效率,優(yōu)化數(shù)據(jù)庫系統(tǒng)性能。

      關(guān)鍵詞:SQL Server;數(shù)據(jù)查詢;索引;排序;

      一、引言

      SQL Server是微軟開發(fā)的基于WINDOWS操作系統(tǒng)的大型關(guān)系數(shù)據(jù)庫管理系統(tǒng),SQL語言已

      經(jīng)成為數(shù)據(jù)庫領(lǐng)域中使用最為廣泛的一個(gè)主流語言,根據(jù)項(xiàng)目實(shí)踐經(jīng)驗(yàn),數(shù)據(jù)查詢操作在數(shù)據(jù)庫操作中所占的比重最大,查詢操作所涉及的Select語句錯(cuò)綜復(fù)雜,如果不重視查詢語句的執(zhí)行效率,將導(dǎo)致數(shù)據(jù)庫系統(tǒng)效率低,直接影響系統(tǒng)執(zhí)行性能,因此,如何設(shè)計(jì)查詢策略,如何編寫高效合理的查詢語句,如何優(yōu)化查詢技術(shù)將是本文討論的重點(diǎn)。

      二、現(xiàn)有的基于SQL數(shù)據(jù)查詢技術(shù)的問題

      SQL語言主要由數(shù)據(jù)查詢、數(shù)據(jù)控制、數(shù)據(jù)定義和數(shù)據(jù)操縱四個(gè)功能組成,其中數(shù)據(jù)查詢是SQL語言的核心功能,在關(guān)系數(shù)據(jù)庫中數(shù)據(jù)查詢效率受到諸多因素影響,例如創(chuàng)建表的沒有預(yù)先創(chuàng)建索引,索引是數(shù)據(jù)庫中重要的數(shù)據(jù)結(jié)構(gòu),可以加快數(shù)據(jù)查詢效率,快速定位需要查詢的數(shù)據(jù)信息;或者查詢結(jié)果數(shù)據(jù)量龐大,查詢速度慢;或者查詢語句不優(yōu)化,查詢出了多余的數(shù)據(jù)行和列,浪費(fèi)查詢時(shí)間;或者在多表查詢時(shí),查詢語句不嚴(yán)謹(jǐn),沒有嚴(yán)格區(qū)分多表連接語句分類,導(dǎo)致查詢結(jié)果不符合實(shí)際。

      三、數(shù)據(jù)庫查詢技術(shù)優(yōu)化策略方法

      (一)Select查詢語句的優(yōu)化

      對于同一個(gè)查詢結(jié)果,可以采用不同的語句表達(dá)實(shí)現(xiàn),但數(shù)據(jù)庫的響應(yīng)速度大相徑庭,因此在語句編寫時(shí)應(yīng)當(dāng)首要考慮執(zhí)行效率問題,在查詢語句中盡量避免使用左連接查詢,因?yàn)樗牡馁Y源非常多,包含與空值數(shù)據(jù)匹配的數(shù)據(jù);盡量避免在使用非聚合表達(dá)式,因?yàn)樗茈y利用到索引;盡量避免使用不兼容的數(shù)據(jù)類型,因?yàn)樗赡苁沟脙?yōu)化器無法執(zhí)行優(yōu)化操作;盡量避免使用多層嵌套子查詢等,因?yàn)榍短讓哟卧蕉?,查詢效率越低;以及通過避免出現(xiàn)不恰當(dāng)?shù)牟樵冋Z句提高數(shù)據(jù)查詢效率。

      (二)重視索引的創(chuàng)建和使用

      所謂索引,是原來關(guān)系進(jìn)行投影操作后的一個(gè)新關(guān)系,再通過增加一個(gè)指針分量,用來標(biāo)識原來關(guān)系的相對應(yīng)的元組信息的存儲位置。索引是關(guān)系數(shù)據(jù)庫系統(tǒng)中非常重要的數(shù)據(jù)結(jié)構(gòu),創(chuàng)建索引的目的是為了提高數(shù)據(jù)查詢效率,快遞查找定位相關(guān)數(shù)據(jù)信息。其中索引分為兩種,包含聚集索引和非聚集索引,每種索引對于特定的查詢產(chǎn)生的效率有很大的差別,因此需要通過優(yōu)化索引來對數(shù)據(jù)查詢進(jìn)行優(yōu)化。

      (三)避免或簡化排序操作

      數(shù)據(jù)查詢中,可以通過排序操作來獲取需要查詢的數(shù)據(jù)信息,但如果能夠利用索引自動以適當(dāng)?shù)捻樞虍a(chǎn)生輸出結(jié)果時(shí),優(yōu)化器就避免了排序的相關(guān)步驟,因此,我們應(yīng)當(dāng)盡量簡化、避免對大型數(shù)據(jù)表單進(jìn)行重復(fù)排序的操作,為了避免不必要的排序,就應(yīng)該正確的使用索引,合理的合并數(shù)據(jù)表單,盡可能規(guī)范表單的結(jié)構(gòu),以此提高數(shù)據(jù)查詢效率。

      (四)注意關(guān)系運(yùn)算的順序

      在數(shù)據(jù)查詢中,常用的關(guān)系運(yùn)算有選擇運(yùn)算、投影運(yùn)算和連接運(yùn)算,在實(shí)際操作中,有時(shí)這些關(guān)系運(yùn)算會嵌套很多層,在連接多個(gè)表單查詢基礎(chǔ)上形成一個(gè)極其復(fù)雜的查詢關(guān)系,因此,我們應(yīng)該注意關(guān)系運(yùn)算的操作順序,一般情況下,先做選擇運(yùn)算,然后是投影運(yùn)算,最后是連接操作;如果既有投影運(yùn)算,又有選擇運(yùn)算,最好是投影運(yùn)算和選擇運(yùn)算一起做。通過實(shí)踐操作以及對關(guān)系運(yùn)算順序的調(diào)整,提高系統(tǒng)應(yīng)用性能和響應(yīng)時(shí)間。

      (五)調(diào)整物理層的查詢優(yōu)化策略

      如果不考慮網(wǎng)速對數(shù)據(jù)傳輸?shù)挠绊?,影響?shù)據(jù)庫系統(tǒng)查詢效率的因素主要來自于物理層、DBMS層和應(yīng)用層,其中物理層中影響查詢效率的是DB中數(shù)據(jù)的物理存儲和訪問方式,因此需要對數(shù)據(jù)庫進(jìn)行存儲優(yōu)化,以提高查詢性能??梢詢?yōu)化數(shù)據(jù)存儲分配,將數(shù)據(jù)庫運(yùn)行的LDF文件、數(shù)據(jù)文件分別存儲到不同的存儲設(shè)備商;可以通過優(yōu)化數(shù)據(jù)庫訪問策略,實(shí)現(xiàn)集中查詢,一次性返回查詢結(jié)果,避免對數(shù)據(jù)庫的多次重復(fù)訪問;還可以使用數(shù)據(jù)庫連接池技術(shù)建立“連接池”,減少數(shù)據(jù)庫連接、打開、存取和關(guān)閉等操作所耗費(fèi)的時(shí)間和大量系統(tǒng)資源。

      四、結(jié)語

      SQL語言的核心是數(shù)據(jù)查詢功能,數(shù)據(jù)查詢技術(shù)的優(yōu)劣將直接影響到系統(tǒng)性能,本文通過對數(shù)據(jù)查詢技術(shù)的分析,提出了多種提高數(shù)據(jù)查詢效率的方法和策略,希望通過不斷的優(yōu)化,提高數(shù)據(jù)庫中數(shù)據(jù)訪問速度和用戶響應(yīng)時(shí)間,以此提高數(shù)據(jù)查詢效率,從而提升系統(tǒng)整體性能,并且在數(shù)據(jù)庫運(yùn)行中,不斷總結(jié)提升數(shù)據(jù)查詢技術(shù),促使數(shù)據(jù)庫系統(tǒng)更加穩(wěn)定高效長期運(yùn)行。

      猜你喜歡
      排序
      排序不等式
      恐怖排序
      節(jié)日排序
      刻舟求劍
      兒童繪本(2018年5期)2018-04-12 16:45:32
      万载县| 驻马店市| 黄石市| 阿勒泰市| 林州市| 新乐市| 宿松县| 温州市| 乌什县| 莱芜市| 台安县| 吴旗县| 富宁县| 雷州市| 华容县| 平江县| 阿鲁科尔沁旗| 磴口县| 茂名市| 漠河县| 肇州县| 措美县| 海阳市| 南投市| 晋中市| 色达县| 金塔县| 遵义县| 海安县| 若羌县| 商南县| 铁岭市| 林周县| 富阳市| 闵行区| 石阡县| 思南县| 方城县| 长泰县| 固始县| 广平县|