SQL查詢(xún)思路優(yōu)化與語(yǔ)句優(yōu)化 SQL查詢(xún)思路優(yōu)化與語(yǔ)句優(yōu)化

SQL查詢(xún)思路優(yōu)化與語(yǔ)句優(yōu)化

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

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

論文截圖
版權:如無(wú)特殊注明,文章轉載自網(wǎng)絡(luò ),侵權請聯(lián)系cnmhg168#163.com刪除!文件均為網(wǎng)友上傳,僅供研究和學(xué)習使用,務(wù)必24小時(shí)內刪除。
欧美AAAAAA级午夜福利_国产福利写真片视频在线_91香蕉国产观看免费人人_莉莉精品国产免费手机影院