国产aaaa级全身裸体精油片_337p人体粉嫩久久久红粉影视_一区中文字幕在线观看_国产亚洲精品一区二区_欧美裸体男粗大1609_午夜亚洲激情电影av_黄色小说入口_日本精品久久久久中文字幕_少妇思春三a级_亚洲视频自拍偷拍

SQL查詢思路優(yōu)化與語句優(yōu)化 SQL查詢思路優(yōu)化與語句優(yōu)化

SQL查詢思路優(yōu)化與語句優(yōu)化

  • 期刊名字:科教文匯
  • 文件大?。?03kb
  • 論文作者:林麗貞
  • 作者單位:廣州市輕工高級(jí)技工學(xué)校
  • 更新時(shí)間:2020-09-29
  • 下載次數(shù):
論文簡介

201205(下旬刊)SQL查詢思路優(yōu)化與語句優(yōu)化林麗貞(廣州市輕工高級(jí)技工學(xué)校廣東.廣州510220)中圖分類號(hào):TP393.09文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1672- -7894(2012)15- 0079- -02摘要數(shù)據(jù)庫查詢優(yōu)化是取得良好執(zhí)行性能并簡化管理2.1創(chuàng)建索引的關(guān)鍵因素,SQL查詢是一個(gè)有序的查詢,不同語句的使用在關(guān)系數(shù)據(jù)庫系統(tǒng)的表上建立合適的索引,可以避免和使用順序?qū)⒅苯佑绊懫洳樵兯俣?。查詢速度的快慢直接表掃描并減少因查詢而造成的I0開銷,極大地提高了查詢影響著數(shù)據(jù)庫的推廣與應(yīng)用,本文就優(yōu)化思路及語句書寫的執(zhí)行速度。索引一般分聚集索引和非聚集索引兩種,-個(gè)優(yōu)化兩方面進(jìn)行討論,提出優(yōu)化方法及語句實(shí)現(xiàn)。表可以有多個(gè)非聚集索引,但只能有一個(gè)聚集索引。索引雖關(guān)鍵詞SQL 查詢思路優(yōu)化 語句優(yōu)化有助于提高性能,但并不是索引越多越好,恰好相反,過多The Approach and Statements of Optimization in SQL的索引會(huì)導(dǎo)致系統(tǒng)低效,因?yàn)橛脩粼诒碇性黾?一個(gè)索引,維Inquiry // Lin Lizhen護(hù)索引集合就要做相應(yīng)的工作,同時(shí)每次有數(shù)據(jù)改變的時(shí)Abstract Database inquiry optimization is a key factor to ach-候就需要維護(hù)索引。ieve good execution performance and simplify management.SQL常用方法是對(duì)于主鍵列、經(jīng)常有范圍查找和orderby或inquiry is an ordered inquiry. The use of different statements.group by的列可以考慮建立索引。具體的實(shí)現(xiàn)可以參考如下and sequential order will directly affect the inquiry speed,whi-表ch has a direct impact on the promotion and application of the列的特征描述聚集索引非聚集索引database.The article focuses on two aspects of the study,the ap-主鍵列應(yīng)該使用proach and statements made in optimization,which puts forward外鍵列the methods of optimization and statements to achieve.Key words SQL inquiry;the a pproach of optimization;the頻繁更新的列不應(yīng)該使用statements of optimization大數(shù)目的不同值A(chǔ)uthor's address Guangzhou Senior Light Industry Technical小數(shù)目的不同值School,510220,Guangzhou,Guangdong,China一個(gè)或極少不同值不應(yīng)該使用不應(yīng)該使用1引言經(jīng)常要求返回某范圍內(nèi)的數(shù)據(jù)隨著IT技術(shù)高速發(fā)展,互聯(lián)網(wǎng)已滲透至千家萬戶的今列經(jīng)常被分組的排序天,數(shù)據(jù)庫作為信息管理系統(tǒng)的后臺(tái),廣泛應(yīng)用于各企事業(yè)2.2 SQL語句書寫的優(yōu)化單位,主要負(fù)責(zé)信息的處理和存儲(chǔ),有著舉足輕重的地位。用戶提交- -條SQL語句,系統(tǒng)進(jìn)行四步操作,從SQL執(zhí)數(shù)據(jù)庫設(shè)計(jì)的重要標(biāo)準(zhǔn)之一就是查詢速度, 查詢速度的快行的原理分析,要想提高SQL語句的執(zhí)行效率,必須SQL語慢直接影響著數(shù)據(jù)庫的推廣與應(yīng)用。而SELECT語句作為句書寫規(guī)范和技巧。SQL語句的優(yōu)化原則是盡可能減少查SQL中的核心,具有非常豐富的成分和強(qiáng)大的查詢功能,也詢中參與加工的數(shù)據(jù)量,以此達(dá)到優(yōu)化空間和時(shí)間。如何找是使用最為頻繁的語句之一- 。據(jù)統(tǒng)計(jì),約有90%的系統(tǒng)性能出一個(gè)與之等價(jià)的且占用資源更少的表達(dá)式是教學(xué)select問題是由于程序員或用戶使用了不恰當(dāng)?shù)牟樵冋Z句造成語句的關(guān)鍵。以下筆者從4個(gè)方面探討語句優(yōu)化:的,所以優(yōu)化數(shù)據(jù)庫系統(tǒng)的SQL查詢語句就顯得非常重要。2.2.1盡量使用單表操作本文以教學(xué)管理系統(tǒng)為例,就查詢思路優(yōu)化及語句書寫優(yōu)在查詢過程中能在-一個(gè)表中找到的字段,盡量使用單化方面進(jìn)行探討。表,不應(yīng)該涉及多表連接查詢。因?yàn)槎啾磉B接查詢,勢(shì)必要教學(xué)管理系統(tǒng)的三個(gè)關(guān)系模式為:做笛卡兒積操作,所以會(huì)增加檢索的時(shí)間。例如,查詢學(xué)號(hào)stud(sno, sname , ssex, sprof , sbithday );為“1001”學(xué)生選修的課程成績,可以書寫成“Select sno,scoreclass(cno,cname,credit);from stud,sc where stud. sno=sc. sno and sno=' 1001'”,但此sc(sno,cno,score)。查詢中涉及sno(學(xué)號(hào))和secope(成績)兩個(gè)字段,在sc表中2 SQL查詢思路優(yōu)化都有,所以SQL中國煤化工from sc where查詢優(yōu)化關(guān)注的問題是怎樣省空間、省時(shí)、提高效率,sno=' 1001'”。YHCNM HG優(yōu)化SQLServer性能的方法很多,可以從語句書寫、創(chuàng)建索2.2.2盡量列出查詢字段名引等方面考慮,但提高速度最快的方法就是索引。在查詢過程中,每減少提取一個(gè)字段,查詢速度就會(huì)有種敏文i6 79.201205(下旬刊)相應(yīng)的提升,所以查詢時(shí)要精確寫出每個(gè)屬性,全屬性也不索引掃描。在實(shí)際應(yīng)用中可以根據(jù)情況使用大于或小于表例外,即避免書寫“select * from’這樣的語句。達(dá)式來實(shí)現(xiàn)不等條件。例:查詢成績不等80分的學(xué)號(hào),姓2.2.3盡量減少格式轉(zhuǎn)換和函數(shù)應(yīng)用名,課程號(hào),成績的語句為“selet A.學(xué)號(hào),姓名,課程號(hào),成績查詢時(shí)如果非格式轉(zhuǎn)換不可的話,那么在語句書寫時(shí)from選課表A,學(xué)生表B whereA. 學(xué)號(hào)=B.學(xué)號(hào)and成績也要盡量減少格式轉(zhuǎn)換次數(shù)。例,在stud中設(shè)置sbithday為<>80”,可以用語句“elect A.學(xué)號(hào),姓名,課程號(hào),成績from選字符型數(shù)據(jù),現(xiàn)需查詢1997到1999年出生的學(xué)生信息。課表A,學(xué)生表B where A.學(xué)號(hào)=B.學(xué)號(hào)and (成績<80 or成語句1:select sno,sname,ssex,sprof,sbirthday from stud績>80)”代替前-句。where cast (bithday as datetime) between 1997-01-01' and2)exists與in的使用'1999-12-31'in語句相當(dāng)于hash連接,性能低于任何連接查詢語句;語句2: select sno,name,sex.sprof,sbirthday from studexists 則是對(duì)外表作lop循環(huán),每次lop循環(huán)再對(duì)內(nèi)表進(jìn)行where sbirthday between cast (1997-01-01 as datetime) an查詢。當(dāng)查詢的兩個(gè)表大小相當(dāng)時(shí),in與exists執(zhí)行效率相cast(1999-12-31' as datetime)當(dāng);如果目標(biāo)表記錄明顯少于子查詢表記錄,則用exists較在語句1中需要對(duì)stud表中每--行記錄的日期都轉(zhuǎn)換優(yōu)用in。一次,而在語句2中只需要對(duì)常量'1997-01-01'、3)用union代替or條件1999-12- 31'做格式轉(zhuǎn)換,所以語句2執(zhí)行的速度要快于語如果在學(xué)生表中,性別與專業(yè)兩上字段創(chuàng)建索引,那么句1。使"“elect * from學(xué)生表where 性別='男'or專業(yè)='計(jì)算機(jī)同時(shí),盡量避免在where字句左側(cè)出現(xiàn)函數(shù)表達(dá)式或運(yùn)”進(jìn)行查詢,只能全表掃描,達(dá)不到查詢優(yōu)化,這時(shí)可以采用算表達(dá)式,因?yàn)榇朔N情況只能在語句執(zhí)行過程中進(jìn)行全表掃“select * from學(xué)生表where 性別='男' union select * from學(xué)描,并且需對(duì)目標(biāo)表逐個(gè)記錄執(zhí)行函數(shù)或運(yùn)算,極消耗性生表where 專業(yè)='計(jì)算機(jī)”,提高查詢效率。能。4)子查詢的轉(zhuǎn)換2.2.4多表查詢優(yōu)化策略及優(yōu)化書寫一個(gè)列同時(shí)在主查詢和WHERE子句中的查詢中出(1 )使用內(nèi)連接多表查詢中,如果完成相同任務(wù)時(shí),既可以使用內(nèi)連接現(xiàn),那么當(dāng)主查詢中的列的值發(fā)生變化后,子查詢必須重新也可以使用外連接,那一定要使用內(nèi)連接,因?yàn)閮?nèi)接連的效查詢一次。子查詢嵌套層數(shù)越多,查詢效率越低,這種情況率明顯高于外連接。例,查詢教學(xué)管理系統(tǒng)中學(xué)生選修課程可以采用內(nèi)嵌視圖的方式或連接查詢方式提高查詢效率。例:查詢成績70以上學(xué)生的姓名,可以將查詢語句“se-的信息,可以完成此功能的語句有:lect 姓名from學(xué)生表where 學(xué)號(hào)in (selet 學(xué)號(hào)from 選課表語句1:select A.學(xué)號(hào),姓名,C.課程號(hào),課程名,成績from課程表where 成績>=70)’改為“selet姓名from (select學(xué)號(hào)from 選C inner join選課表B on B.課程號(hào)=C.課程號(hào)inner join學(xué)生課表where成績>=70)A ,學(xué)生表B where A.學(xué)號(hào)=B.學(xué)號(hào)”,或改為“select姓名from 學(xué)生表A,選課表B where A.學(xué)號(hào)表AonA.學(xué)號(hào)=B.學(xué)號(hào)=B.學(xué)號(hào)and成績>=70"。語句2:3總結(jié)C left join選課表B on B.課程號(hào)=C.課程號(hào)left join學(xué)生表A程序設(shè)計(jì)中有80-20的原則,即20%的代碼消耗了onA.學(xué)號(hào)=B.學(xué)號(hào)80%的資源,這個(gè)原則同樣適用于數(shù)據(jù)庫查詢語句,因此數(shù)其中,語句1是較優(yōu)選擇,其采用內(nèi)接連,執(zhí)行效率最據(jù)庫查詢的主要優(yōu)化目標(biāo)是找到并優(yōu)化這20%的代碼。優(yōu)高?;樵兊姆椒ê芏?在使用中,要根據(jù)具體情況權(quán)衡利弊,(2 )where與having的應(yīng)用使數(shù)據(jù)庫查詢性能最優(yōu)。在教學(xué)中要培養(yǎng)學(xué)生根據(jù)具體的on與where、having均可以加條件,但on最先執(zhí)行,情況具體分析的能力,同時(shí)要讓學(xué)生養(yǎng)成編寫規(guī)范、優(yōu)化的where次之,having最后。語句書寫時(shí)盡量使用where代替SQL語句的習(xí)慣。having, 且做到先篩選后連接,選擇記錄條數(shù)最少的表作為基礎(chǔ)表,當(dāng)SQL處理多個(gè)表時(shí),會(huì)運(yùn)用排序及合并的方式連參考文獻(xiàn)接它們。首先掃描第- -個(gè)表(FROM 子句中最后的那個(gè)表)并[1]馬軍,李玉林.SQL語言與數(shù)據(jù)操作技術(shù)大全[M].北京:電子工業(yè)對(duì)記錄進(jìn)行排序,然后掃描第二個(gè)表(FROM子句中最后第出版社,2008.二個(gè)表),最后把從第二個(gè)表中檢索出的記錄與第-一個(gè)表中2]景慎德SOL查詢優(yōu)化的策略與技巧J],福建電腦2009(10).匹配記錄進(jìn)行合并。假設(shè)學(xué)生表記錄少,選課表記錄多,現(xiàn)[3] 雷琳武漢船舶職業(yè)技術(shù)學(xué)院學(xué)報(bào)2011(3).需查詢出男生的總分,最優(yōu)化實(shí)現(xiàn)語句為:[4]魏琦,于林林,宋旭東.關(guān)系數(shù)據(jù)庫查詢優(yōu)化策略研究[J].電腦知識(shí)select性別,sum (成績) as總分from選課表A,學(xué)生表B與技術(shù),2010(6).where性別='男'and A.學(xué)號(hào)=B.學(xué)號(hào)group by性別[5]徐麗媛,張亞賓基于SOL Server 數(shù)據(jù)庫查詢優(yōu)化的幾點(diǎn)思考[].(3)條件應(yīng)用優(yōu)化科技信息中國煤化工1)避免使用'=’與‘<>'操作符6]馬李明,王I YHCNMH G高數(shù)據(jù)查詢中的應(yīng)在查詢條件表達(dá)式中應(yīng)盡量避免使用不等查詢條件,用[J]電腦知出與技術(shù),2008(20).為不等查詢條件只能通過全表掃描來實(shí)現(xiàn),無法使用任何編輯胡俊龍80種敵文i6 ..

論文截圖
版權(quán):如無特殊注明,文章轉(zhuǎn)載自網(wǎng)絡(luò),侵權(quán)請(qǐng)聯(lián)系cnmhg168#163.com刪除!文件均為網(wǎng)友上傳,僅供研究和學(xué)習(xí)使用,務(wù)必24小時(shí)內(nèi)刪除。