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

        ?

        SQL查詢性能優(yōu)化方法分析

        2016-12-31 15:50:01朱景芝
        無線互聯(lián)科技 2016年21期
        關(guān)鍵詞:子句群集程序

        朱景芝

        (商丘工學(xué)院,河南 商丘 476000)

        SQL查詢性能優(yōu)化方法分析

        朱景芝

        (商丘工學(xué)院,河南 商丘 476000)

        當(dāng)前,人們在使用SQL時(shí),經(jīng)常會掉入一個(gè)理解誤區(qū),就是太在乎結(jié)果是否正確,是否完美,忽視了有多種方法可供選擇的可能,之所以出現(xiàn)這種情況,是因?yàn)榇嬖趶?fù)雜的數(shù)據(jù)庫環(huán)境。筆者通過多年的工作實(shí)踐,經(jīng)過深入各二級學(xué)院調(diào)查走訪,發(fā)現(xiàn)對SQL進(jìn)行優(yōu)化分析后,計(jì)算機(jī)的運(yùn)行效率有了顯著提升,能收到事半功倍的效果。

        索引;查詢速度;SQL優(yōu)化器

        1 SQL Server發(fā)展背景

        所謂SQL Server,就是Microsoft公司推出的一款關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。這個(gè)系統(tǒng)使用方便,具有很強(qiáng)的可伸縮性,相關(guān)軟件集成程度很多,使用SQL Server,能夠輕松從運(yùn)行Microsoft Windows 98的筆記本電腦,延伸、運(yùn)行、推廣到Microsoft Windows 2012的大型多處理器的服務(wù)器。

        通過日常的教學(xué)工作,不難發(fā)現(xiàn),Microsoft SQL Server是一個(gè)相當(dāng)全面的平臺,它所采用的集成的商業(yè)智能(BI)工具,提供了重要的管理數(shù)據(jù)。有了Microsoft SQL Server數(shù)據(jù)庫引擎,不但可以提供安全可靠的存儲,還能便于企業(yè)開展合理化的管理,制定一套科學(xué)的體系,使得數(shù)據(jù)庫發(fā)生重要的作用。

        但是,隨著SQL Server數(shù)據(jù)庫功能得越來越完善,SQL Server數(shù)據(jù)庫有個(gè)別功能,在各自存在的領(lǐng)域,有著不同的實(shí)現(xiàn)方法。由于程序的問題,存在著較大差異。為了驗(yàn)證這個(gè)觀點(diǎn),筆者將對此舉例論證。為了更加恰當(dāng)、更加合理、更加直觀地說明問題,所有的例證中,SQL運(yùn)行時(shí)間均經(jīng)過測試。

        為了確保測試環(huán)境的安全與準(zhǔn)確性,在測試的時(shí)候,主機(jī)準(zhǔn)備選用HP LH II,因?yàn)檫@個(gè)在高校中比較常用;主頻擬定選擇330 MHz ,因?yàn)檫@個(gè)是電腦的基本配置;內(nèi)存擬定選擇使用128 M,這個(gè)是計(jì)算機(jī)的常規(guī)配置;測試系統(tǒng)擬定選擇使用Operserver 5.1.4,這個(gè)系統(tǒng)經(jīng)過長期的摸索,性能穩(wěn)定;數(shù)據(jù)庫選用的是Sybase 11.1.3,這個(gè)具有相當(dāng)?shù)臋?quán)威性,更能驗(yàn)證結(jié)果的說服力。

        2 分析、整合SQL性能

        2.1 避免不恰當(dāng)?shù)乃饕O(shè)計(jì)

        在日常的工作中,總會遇到一些不恰當(dāng)?shù)乃饕O(shè)計(jì)。比如說,如果一個(gè)表格record有620 000行,如果檢索方法不同,就會出現(xiàn)不同的檢索效果。專業(yè)的人,可以通過知識,進(jìn)行合理規(guī)避,但是如果是學(xué)生操作,就會引發(fā)不必要的麻煩。

        最常見的情況,就是在date上設(shè)置非個(gè)群集索引。在檢索的時(shí)候,會發(fā)現(xiàn)select count(*)from record where date所耗費(fèi)的時(shí)間大于23 s,而select date,sum(amount)from record group by date的檢索時(shí)間則不到40 s。

        通過測試,可以得出以下結(jié)論,如果表格date上存在很多重復(fù)值,在非群集索引的情況下,可以參考相關(guān)數(shù)據(jù),當(dāng)搜索到隨機(jī)的數(shù)據(jù)頁上時(shí),就會增加不必要的時(shí)間。當(dāng)人們還照本宣科地在這個(gè)范圍查尋時(shí),就不得不執(zhí)行一次表掃描,只有這樣,才可以找到搜索到有價(jià)值的材料。

        當(dāng)然,如果再在date上開展一個(gè)群集索引,也會出現(xiàn)增加時(shí)間的情況。通常情況下,select count(*)from record where date的時(shí)間,遠(yuǎn)遠(yuǎn)要比 '19991201' and date的時(shí)間要長,這個(gè)時(shí)間,通常情況下是15 s,當(dāng)然,這個(gè)時(shí)間要比'19991215' and amount >少點(diǎn)。

        還有,完成select date,sum(amount)from group by date所需要的時(shí)間是30 s左右,這個(gè)時(shí)間,要超過select count (*)from record where date ,更比 '19990911' and place in ('BJ','SH')耗費(fèi)的時(shí)間多,雖然'19990911' and place in ('BJ','SH')只需要15 s。

        通過測試分,不難發(fā)現(xiàn),當(dāng)在群集索引下搜索時(shí),相關(guān)數(shù)據(jù)就會按照順序有規(guī)則的排列出來,會在程序上有規(guī)律地顯示出來,與之相對應(yīng)的重復(fù)值也會自動生成排列。當(dāng)在搜索時(shí),可以考慮從起末點(diǎn)著手,當(dāng)在這個(gè)范圍內(nèi)掃描相關(guān)的數(shù)據(jù)時(shí),就可以巧妙地避免大范圍掃描帶來的繁瑣程序,節(jié)省時(shí)間,簡化程序,提升效果。

        2.2 可以嘗試組合索引

        所采用的測試方法一樣,可以得出測試數(shù)據(jù)分析:只要組合索引合理,就可以在第1和第3個(gè)SQL中形成索引范圍覆蓋,讓其性能達(dá)到最大程度的發(fā)揮。

        (4)通過以上測試,可以得出3點(diǎn)結(jié)論。第一,如果經(jīng)常有范圍查詢,可以看出有明顯的重復(fù)值;第二,如果很多存取多列,可以考慮建設(shè)一套組合索引,提高效率;第三,在組合索引的時(shí)候,一定要盡可能地形成覆蓋索引,選擇使用頻繁的列,以提高索引效率。

        3 關(guān)于不充分的連接情況的探析

        驗(yàn)證方法同上,通過對比兩個(gè)SQL的執(zhí)行狀況:可以得出結(jié)論,只有在充分的鏈接條件下,真正的最佳方案才會被貫徹執(zhí)行,而且是主動落實(shí)最優(yōu)方案。

        3.1 where子句不能優(yōu)化

        在搜索的時(shí)候,通常會遇到where子句不能優(yōu)化的情況。舉個(gè)例子來說,在搜索時(shí),如果表stuff有100 000行,id_ no上存在非群集索引的時(shí)候,搜索一次,所需要的時(shí)間應(yīng)該是12 s。

        還是以上面的例子為論證,在點(diǎn)擊搜索的時(shí)候,語法分析器依照電腦編程,會自動將in('0','1')轉(zhuǎn)化為id_no ='0' or id_no='1'去貫徹執(zhí)行。當(dāng)然,在搜索的時(shí)候,更愿意程序根據(jù)每個(gè)or子句依次去查找,等到把查找的結(jié)果相結(jié)合,就能找到想要的結(jié)果,當(dāng)然,耗費(fèi)的時(shí)間也不會太多。

        可是,在實(shí)際的操作中,如果程序首選采用的是"OR策略",當(dāng)它取出滿足每個(gè)or子句的標(biāo)注的行,然后存入臨時(shí)搜索數(shù)據(jù)庫的工作表,就會建立唯一的搜索引擎。這個(gè)時(shí)候,只要除去重復(fù)行,同樣可以得出相應(yīng)的搜索結(jié)果,而且花費(fèi)的時(shí)間更少,一般情況下,不會超過10 s。

        通過以上的搜索,可以找到一些規(guī)律。在搜索的時(shí)候,如果表的行數(shù)很多,其所對應(yīng)的性能就會顯得比較差。在搜索的時(shí)候,可能320 000行的stuff要花費(fèi)2 min的時(shí)間。從節(jié)約時(shí)間的角度考慮,不妨將子句分開,分別算出相應(yīng)的結(jié)果,然后相加。拆開的結(jié)果,只有一個(gè),那就是節(jié)省了很多時(shí)間,避免了很多無用功。

        通過直接算出的結(jié)果,不難發(fā)現(xiàn),這個(gè)程序的執(zhí)行時(shí)間和上面的句子分開的時(shí)間及效果一樣快、一樣好。

        由此可以得出結(jié)論:第一,無論對任何列的操作,都將引發(fā)對表的掃描。當(dāng)中包含計(jì)算表達(dá)式、數(shù)據(jù)庫函數(shù)等等內(nèi)容,當(dāng)進(jìn)行查詢的時(shí)候,一定要盡量將其挪到等號的右邊。

        3.2 in,or的子句常造成索引失效的情況

        在日常的管理工作中,在不產(chǎn)生大量重復(fù)值的情況下,可以考慮把子句拆開。當(dāng)然,有一點(diǎn)需要謹(jǐn)記,所拆開的子句中,一定要包括索引;第三,在日常的管理工作中,要靈活運(yùn)用存儲過程,簡化復(fù)雜的程序,讓SQL提升總的效率,更加靈動、自由、快捷、高效。

        4 結(jié)語

        筆者撰寫此文,主要目的是通過調(diào)查研究,探析數(shù)據(jù)庫SQL查詢處理,還有對查詢處理優(yōu)化方法的探究。從文章中,通過舉例論證,不難發(fā)現(xiàn),對于SQL查詢分析,應(yīng)當(dāng)從不恰當(dāng)?shù)乃饕O(shè)計(jì)分析、不充裕的連接條件分析、不能優(yōu)化的where子句分析這3個(gè)方面進(jìn)行論證和總結(jié)。當(dāng)然,科技創(chuàng)新是無限的,在日常的工作中,只需利用以上幾種方法,就能方便快捷地提高SQL的運(yùn)行效率,進(jìn)而提高SQL查詢的優(yōu)化性能,緩解數(shù)據(jù)庫服務(wù)器的壓力。

        [1]張曉云.SQL Server 2000應(yīng)用實(shí)訓(xùn)教材[M].北京:科學(xué)出版社,2004.

        [2]陸昌輝,吳曉華.SQLServer2000核心技術(shù)揭秘[M].北京:宇航出版社,2005.

        [3]SQL Server 2000 數(shù)據(jù)庫應(yīng)用技術(shù)[M].北京:中國鐵道出版社,2004.

        Analysis of optimization method of SQL query performance

        Zhu Jingzhi
        (Shangqiu Institute of Technology, Shangqiu 476000, China)

        At present, people often tend to fall into a misunderstanding trap when using SQL, that is they focus too much on whether the result is correct or perfect, but ignoring the possibility of a variety of methods to choose from. It is there exists complex database environment that causes the case. Through years working practical experiences, and in-depth investigation of the two levels colleges, the author found that after optimization analysis of SQL, the operating efficiency of computer has improved greatly, which can get twice the result with half the effort.

        indexes; query speed; SQL optimizer

        朱景芝(1979— ),女,河南商丘,本科,教師;研究方向:計(jì)算機(jī)科學(xué)與技術(shù)研究。

        猜你喜歡
        子句群集程序
        命題邏輯中一類擴(kuò)展子句消去方法
        Cecilia Chiang, pioneer of Chinese cuisine
        命題邏輯可滿足性問題求解器的新型預(yù)處理子句消去方法
        試論我國未決羈押程序的立法完善
        西夏語的副詞子句
        西夏學(xué)(2018年2期)2018-05-15 11:24:42
        “程序猿”的生活什么樣
        英國與歐盟正式啟動“離婚”程序程序
        基于自組織結(jié)對行為的群集機(jī)器人分群控制方法
        命題邏輯的子句集中文字的分類
        淺談ODX與動態(tài)群集
        放荡的闷骚娇妻h| 精品人妖一区二区三区四区| 久久精品国产亚洲av网| 中文亚洲av片不卡在线观看| 国产精品美女久久久久av超清 | 少妇一级内射精品免费| 免费在线国产不卡视频| 日本在线一区二区三区不卡| 日日摸天天摸97狠狠婷婷| 国产98在线 | 日韩| 亚洲精品无码人妻无码| 日本a天堂| 国产主播一区二区在线观看| 亚洲精品国产成人久久av盗摄| 亚洲一二三四区免费视频| 人妻激情偷乱视频一区二区三区| 欧美黑人群一交| 成人久久免费视频| 日韩乱码精品中文字幕不卡| 亚洲三级中文字幕乱码| 亚洲av综合色区无码另类小说| 亚洲精品无码久久久久去q| 国外精品视频在线观看免费| 99热精品成人免费观看| 无码伊人久久大杳蕉中文无码| 一区二区在线观看视频亚洲| 神马影院日本一区二区| 亚洲成熟丰满熟妇高潮xxxxx| 变态 另类 欧美 大码 日韩| 热99re久久精品这里都是免费| 亚洲成精品动漫久久精久| 一本之道加勒比在线观看| 熟女一区二区中文字幕| 2019最新中文字幕在线观看| 又湿又黄裸乳漫画无遮挡网站| 国产中文aⅴ在线| 一区二区国产视频在线| 国偷自拍av一区二区三区| 人妻无码一区二区不卡无码av | 国产日韩欧美在线| 国产猛男猛女超爽免费av|