亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        MS SQL Server數(shù)據(jù)庫查詢優(yōu)化技巧研究

        2012-04-29 00:00:00苗雯娟
        企業(yè)導報 2012年16期

        【摘 要】本文主要是對MS SQL Server數(shù)據(jù)庫查詢優(yōu)化技巧進行了說明和分析,對索引使用、查詢條件以及數(shù)據(jù)表的設計等進行了闡述。

        【關鍵詞】數(shù)據(jù)庫;查詢;優(yōu)化技巧

        一、建立索引能夠提高查詢效率

        在應用數(shù)據(jù)庫的過程當中是否應用索引查詢是一個具有爭議性的話題,這主要是因為對數(shù)據(jù)庫某列添加索引以后,在利用該索引對整個數(shù)據(jù)庫進行查詢的時候就只會在索引范圍之內進行掃描,而不利用該索引對整個數(shù)據(jù)庫進行查詢時所進行的就是全表的掃描。在這樣一種狀況下,從性能的角度來看的話,目標表記錄的總數(shù)是固定的,因此在查詢結果比較少的時候索引查詢的效率才會相對比較高,查詢結果較多的時候索引查詢的效率反而會比較低,正是因為這樣,索引查詢的應用與否才會成為一個具有爭議性的問題。但在實際的應用過程當中,各種不同軟件的應用目的不一,通常來說,記錄數(shù)較少的表查詢結果與記錄數(shù)的比值偏大,甚至能夠出現(xiàn)100%查詢,但記錄數(shù)少的表查詢結果與記錄數(shù)的比值則偏小,由此認為,至少應當對一些記錄數(shù)比較多的數(shù)據(jù)庫建立索引查詢來實現(xiàn)查詢效率的提高。

        二、數(shù)據(jù)表設計對查詢性能的影響分析

        (1)空值比較。在對數(shù)據(jù)表進行定義的過程當中會涉及到數(shù)據(jù)列的空值問題,這主要是因為在實際的應用過程當中無疑會出現(xiàn)允許空值的狀況,但在定義數(shù)據(jù)表時如果允許空值設置的話就會出現(xiàn)is 1的查詢條件。一旦is 1查詢條件出現(xiàn)后續(xù)的查詢過程就是對全表進行的掃描而不是索引掃描,具體來說,int當中采用一些特殊的數(shù)字來作為默認值,而字符串當中則采用空串來作為默認值。(2)字符類型比較。MS SQL

        Server2005當中共有六類字符串數(shù)據(jù)類型,包括:varbinary、binary、nvarchar、nchar、varchar、char。在這六個字符串數(shù)據(jù)類型當中,binary、nchar、char是固定長度的字符串,varbinary、nvarchar、varchar則是可變長度的字符串,在應用的過程當中不同類型也是可以互換使用的,因此要注意對其進行區(qū)分。

        三、條件表達式性能優(yōu)缺點分析

        在進行數(shù)據(jù)查詢的過程當中,查詢結果在查詢語句中的表達方式有多種,且不同表達方式所得到的查詢效率有高有底,這也就是說,在進行條件表達式的編寫時也需要根據(jù)查詢結果的特點進行選擇和應用,下面主要是結合常用的幾種情況進行說明和分析。(1)!=或<>情況。我們在實際的查詢過程當中應當盡可能的去避免不等條件的應用,這主要是因為一旦在查詢過程當中使用不等條件就意味著后續(xù)查詢過程只能夠通過全面掃描來完成,索引掃描在其中是難以發(fā)揮作用的。通常情況下采用的是大于或小于的表達式來對不等條件進行表示。(2)Like情況。Like情況主要是應用于字符串的模糊查詢,其具體的查詢表達形式同樣有多種:like a%、like%a和like a%a ,在這其中,只有l(wèi)ikea%既能應用于索引掃描又能應用于全表掃描,like%a和likea%a只能進行全表掃描,正是因為這樣,我們在進行選擇和使用的時候就盡可能的避免后兩種表達方式。但是,在一些目標列中字段過長的時候,檢索方式會選擇為全文檢索,在這樣一種情況下則還是選擇like%a和likea%a更為合適。(3)in、not in 情況。在進行查詢語言的設計時,in的用法包括兩種,一種是后接條件集合,一種是后接子查詢,下文中將對這樣兩種情況分別進行說明和分析。in后接條件集合,如果其數(shù)據(jù)量不大或者其對應條件無索引時,可以直接予以使用而不需要對其進行優(yōu)化,相反,如果數(shù)據(jù)量較大或者其對應條件有索引時,就建議將所有的條件都集合起來,并為每一個條件都單獨寫sql語句,采用union或者是union all將所有的查詢結果進行連接。在這里進一步說明union和union all之間的區(qū)別,union能夠對查詢結果進行有效的排序,并去除重復項,而union all則無此功能,在實際的應用過程當中就可以根據(jù)需要排序與否來進行選擇和使用。In后接子查詢時,目標表記錄數(shù)量如果明顯比子查詢表記錄數(shù)少的話就需要采用exists來代替in,必要的時候還可以在子查詢當中建立索引。但需要注意的是,在一些能夠直接使用連接查詢方式的語句當中就盡可能的不要使用in,這主要是因為in語句相當于hash連接,其性能相對而言要低的多。Not in在任何狀況下應用都不會使用索引,因此認為在一些數(shù)據(jù)量大的數(shù)據(jù)庫當中盡量不要使用,而not exists的子查詢則是可以應用索引掃描的,因此有必要的時候就可以直接采用not exists加索引來對其進行優(yōu)化。

        通過上文的說明和分析就可以看到,在進行數(shù)據(jù)庫查詢時往往是沒有既定的方式和規(guī)則的,需要我們以查詢效率為目的來進行創(chuàng)新、設計和嘗試。

        參 考 文 獻

        [1]王珊,薩師炫.數(shù)據(jù)庫系統(tǒng)概述(第四版)[M].北京:高等教育出版社,2006

        [2]李輝,王至邀.一種多條件分頁查詢優(yōu)化方法的設計[J].計算機工程.2010(2)

        一本久道视频无线视频试看| 国产啪精品视频网站| 久久中文字幕av一区二区不卡| 久久99亚洲网美利坚合众国| 亚洲精品综合中文字幕组合| 国产精品亚洲在钱视频| 最好看的亚洲中文字幕| 亚洲国产精品日本无码网站| 88久久精品无码一区二区毛片| 无码不卡免费一级毛片视频| 精品日韩av专区一区二区| 国产自拍av在线观看视频| 亚洲人交乣女bbw| 国产精品无码久久久久久久久久 | 亚洲∧v久久久无码精品| 久久中文字幕乱码免费| 放荡人妻一区二区三区| 久久综合九色综合久久久| 久久亚洲精品中文字幕| 全部孕妇毛片丰满孕妇孕交| 超碰Av一区=区三区| 亚洲女同性恋激情网站| 日韩精品人妻中文字幕有码| 午夜色大片在线观看| 广东少妇大战黑人34厘米视频 | 亚洲视频观看一区二区| 日本a级黄片免费观看| 久久亚洲av无码精品色午夜| 男女啪啪永久免费观看网站| 98国产精品永久在线观看| av永久天堂一区二区三区蜜桃| 亚洲成在人线天堂网站| 日韩av午夜在线观看| 国产午夜影视大全免费观看| 五月激情狠狠开心五月| 国产熟人精品一区二区| 99精品国产一区二区| 五月丁香六月综合激情在线观看| 久久国产精品精品国产色| 久久精品一区午夜视频| 亚洲图片日本视频免费|