亚洲免费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成人| 97无码人妻一区二区三区蜜臀| 一本色道久久综合亚洲精品不| 日日摸日日碰人妻无码| 一本之道高清无码视频| av手机天堂| 91久久香蕉国产熟女线看| 亚洲国产一区二区三区在线观看| 国产麻无矿码直接观看| 激,情四虎欧美视频图片| 亚洲无人区乱码中文字幕能看| 精品国产av色一区二区深夜久久 | 91久久青青草原线免费| 中文字幕一二区中文字幕| 久久精品不卡一区二区三区| 欧美私人情侣网站| 男人天堂免费视频| 蜜桃av福利精品小视频| 欧美老妇牲交videos| 午夜不卡av免费| 无码高潮久久一级一级喷水| 不卡视频在线观看网站| 久久国产色av免费观看| 精品免费在线| 亚洲最黄视频一区二区| 欧美又大粗又爽又黄大片视频| 亚洲精品aa片在线观看国产| 对白刺激的老熟女露脸| 成人一区二区三区激情视频| 亚洲色大成网站www永久网站| 日本精品a在线观看| 国产精品黄页免费高清在线观看 | 内射爽无广熟女亚洲| 亚洲Av午夜精品a区| 免费女女同黄毛片av网站| 久久精品国产亚洲av麻豆图片| 亚洲av无码成人yellow|