999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

關(guān)于Oralce數(shù)據(jù)庫(kù)的SQL查詢(xún)語(yǔ)句優(yōu)化探究

2018-09-10 12:59:01方芳謝慧
河南科技 2018年4期
關(guān)鍵詞:優(yōu)化

方芳 謝慧

摘 要:Oralce數(shù)據(jù)庫(kù)具有明顯超越普通數(shù)據(jù)庫(kù)的性能,不僅提升了存儲(chǔ)空間,也擴(kuò)大了使用范圍。在一些大型數(shù)據(jù)庫(kù)研究中,優(yōu)質(zhì)的SQL查詢(xún)語(yǔ)句和劣質(zhì)的SQL查詢(xún)語(yǔ)句之間的速度差別很有可能達(dá)到上百倍之多。為了更好地縮短大數(shù)據(jù)量的信息查詢(xún)和處理時(shí)間,提升數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的工作效率,實(shí)現(xiàn)對(duì)Oralce數(shù)據(jù)庫(kù)中SQL查詢(xún)語(yǔ)句的優(yōu)化具有非常重要的意義。

關(guān)鍵詞:Oralce數(shù)據(jù)庫(kù);SQL查詢(xún)語(yǔ)句;優(yōu)化

中圖分類(lèi)號(hào):TP311.13 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1003-5168(2018)04-0025-02

Research on Optimization of SQL Query in Oralce Database

FANG Fang XIE Hui

(Xiangnan University,Chenzhou Hunan 423000)

Abstract: The Oralce database has the performance that obviously surpasses the common database, not only improves the storage space but also expands the scope of use. In the study of some large databases, speed differences between high-quality SQL queries and low-quality SQL queries are likely to be as much as hundreds of times. In order to achieve a better shorten the time of information query and processing of large amount of data and improve the efficiency of database application system, it is very important to optimize the SQL query in Oralce database.

Keywords: Oralce database;SQL query;optimization

Oralce數(shù)據(jù)庫(kù)是目前被應(yīng)用最為廣泛的數(shù)據(jù)庫(kù)技術(shù)。SQL查詢(xún)語(yǔ)句的優(yōu)化就是將性能較低的SQL查詢(xún)語(yǔ)句轉(zhuǎn)換成具有相同目的的性能較高的SQL查詢(xún)語(yǔ)句。SQL查詢(xún)語(yǔ)句優(yōu)化對(duì)提升數(shù)據(jù)庫(kù)性能和工作效率具有非常重要的意義。眾所周知,Oralce數(shù)據(jù)庫(kù)性能的高低是由SQL查詢(xún)語(yǔ)句的執(zhí)行效率決定的。數(shù)據(jù)庫(kù)的查詢(xún)功能直接和整個(gè)系統(tǒng)的運(yùn)行速度相關(guān)聯(lián),因此,實(shí)現(xiàn)對(duì)Oralce數(shù)據(jù)庫(kù)中SQL查詢(xún)語(yǔ)句的優(yōu)化是提升數(shù)據(jù)庫(kù)性能的有效方式。寫(xiě)出高質(zhì)量的SQL語(yǔ)句是提升系統(tǒng)可用性的有效方式,通過(guò)優(yōu)化SQL查詢(xún)語(yǔ)句,可以實(shí)現(xiàn)整個(gè)系統(tǒng)性能的顯著提升。

1 Oralce數(shù)據(jù)庫(kù)中SQL語(yǔ)句處理過(guò)程分析

通常情況下,數(shù)據(jù)庫(kù)實(shí)現(xiàn)對(duì)SQL語(yǔ)句處理要經(jīng)過(guò)3個(gè)基本過(guò)程,即分析、執(zhí)行和返回結(jié)果。

1.1 分析

分析是實(shí)現(xiàn)對(duì)SQL語(yǔ)句進(jìn)行處理的第一步,主要過(guò)程包括以下幾方面。

①對(duì)SQL語(yǔ)言進(jìn)行語(yǔ)法分析。Oralce數(shù)據(jù)庫(kù)的常用分析方法是自下而上的,其中包含對(duì)語(yǔ)法的檢驗(yàn)和對(duì)命名規(guī)范性的檢驗(yàn)。語(yǔ)法分析是實(shí)現(xiàn)對(duì)SQL語(yǔ)句處理過(guò)程中最為耗時(shí)且付出代價(jià)最高的步驟。要實(shí)現(xiàn)Oralce數(shù)據(jù)庫(kù)查詢(xún)效力的提升,可以通過(guò)綁定變量和存儲(chǔ)過(guò)程來(lái)實(shí)現(xiàn)。

②對(duì)SQL語(yǔ)句進(jìn)行語(yǔ)義分析。在這個(gè)環(huán)節(jié),數(shù)據(jù)庫(kù)對(duì)SQL語(yǔ)句格式的正確性及對(duì)象的存在性進(jìn)行分析。

③實(shí)現(xiàn)對(duì)SQL語(yǔ)句表達(dá)方式的轉(zhuǎn)變。將較為復(fù)雜的SQL表達(dá)式轉(zhuǎn)換成相對(duì)應(yīng)的對(duì)于基表的SQL查詢(xún)語(yǔ)句,并寫(xiě)出SQL語(yǔ)句標(biāo)準(zhǔn)。

④選擇優(yōu)化器和優(yōu)化方式。

⑤選擇連接方式及連接順序。通常情況下,在Oracle SQL查詢(xún)語(yǔ)句中最好的方式就是手工指定表的連接順序。

1.2 執(zhí)行

在使用更新和刪除的SQL語(yǔ)句時(shí),需要對(duì)數(shù)據(jù)列進(jìn)行鎖定,這樣做的主要目的是防止其他用戶(hù)對(duì)其進(jìn)行修改。Oralce會(huì)先在數(shù)據(jù)庫(kù)緩沖中尋找是否存在所需要的數(shù)據(jù)塊,假如存在這樣的數(shù)據(jù)塊,那么就可以直接進(jìn)行修改操作,否則,數(shù)據(jù)會(huì)被從物理文件中讀取到數(shù)據(jù)庫(kù)緩沖區(qū)中。

1.3 返回結(jié)果

對(duì)查詢(xún)語(yǔ)句需要返回結(jié)果的語(yǔ)句,看返回的結(jié)果集是不是需要按照實(shí)際應(yīng)用來(lái)進(jìn)行排序,如果對(duì)結(jié)果有排序需求,則在排序后進(jìn)行相關(guān)結(jié)果輸出。

2 Oralce數(shù)據(jù)庫(kù)中SQL查詢(xún)語(yǔ)句優(yōu)化的原理

SQL是一種集數(shù)據(jù)定義和數(shù)據(jù)操控于一體的數(shù)據(jù)庫(kù)語(yǔ)言。SQL不僅可以作為一種獨(dú)立使用的語(yǔ)言應(yīng)用于終端上進(jìn)行交互使用,同時(shí)還可以作為程序設(shè)計(jì)中的子語(yǔ)言來(lái)使用。用戶(hù)能通過(guò)SQL語(yǔ)言在數(shù)據(jù)庫(kù)中提取出自己需要的信息。

SQL語(yǔ)句優(yōu)化能將原有的SQL語(yǔ)句轉(zhuǎn)換成語(yǔ)義相同且處理效率更高的SQL語(yǔ)句。在系統(tǒng)中,SQL語(yǔ)言的優(yōu)劣至關(guān)重要,用戶(hù)提交的SQL語(yǔ)句是系統(tǒng)實(shí)現(xiàn)優(yōu)化的基礎(chǔ)。SQL語(yǔ)句優(yōu)化原理就是盡可能地減少查詢(xún)中參與加工的數(shù)據(jù)量,以此來(lái)達(dá)到優(yōu)化空間和時(shí)間的目的。通過(guò)查詢(xún)找出與給定關(guān)系代數(shù)表達(dá)式等價(jià)、但執(zhí)行效率更高的SQL語(yǔ)句表達(dá)。通常情況下,查詢(xún)往往有許多實(shí)現(xiàn)方法,SQL語(yǔ)句實(shí)現(xiàn)優(yōu)化的關(guān)鍵就是要尋找一個(gè)等價(jià)并且高效、占用資源更少的表達(dá)式。

3 影響SQL查詢(xún)語(yǔ)句優(yōu)化的因素

3.1 表訪問(wèn)方式對(duì)SQL語(yǔ)言?xún)?yōu)化造成的影響

索引掃描、全表掃描和Rowid訪問(wèn)是表的訪問(wèn)方式。在這3種訪問(wèn)方式中,通過(guò)Rowid方式對(duì)表進(jìn)行訪問(wèn)是速度最快的。Rowid是直接根據(jù)記錄在數(shù)據(jù)磁盤(pán)中的位置來(lái)獲取記錄信息的,這就使得該掃描方式具有一定的速度優(yōu)勢(shì)。索引訪問(wèn)能獲取到該行記錄的Rowid值再查找進(jìn)行判斷。全表掃描通過(guò)讀取全部數(shù)據(jù)來(lái)實(shí)現(xiàn)查找,這種方式增加了系統(tǒng)的消耗[1]。

3.2 表連接順序?qū)QL語(yǔ)言?xún)?yōu)化造成的影響

在Oralce數(shù)據(jù)庫(kù)中,有兩個(gè)或者兩個(gè)以上的表進(jìn)行連接時(shí),Oralce會(huì)自主選擇一種較為合適的順序進(jìn)行連接。數(shù)據(jù)庫(kù)中無(wú)論有多少個(gè)表需要連接,每次只能有兩個(gè)表進(jìn)行連接,一張表完成連接之后,再同下一張表進(jìn)行連接,直至完成所有的連接。

3.3 表連接方式對(duì)SQL語(yǔ)言?xún)?yōu)化造成的影響

表的連接方式有3種,即嵌套連接、合并連接及哈希連接。嵌套連接被廣泛應(yīng)用于任何形式的連接。合并連接被廣泛應(yīng)用于不等價(jià)連接,且在沒(méi)有索引時(shí)效率比嵌套連接高。哈希連接則是通過(guò)將驅(qū)動(dòng)表中的連接列建立一個(gè)哈希函數(shù),并對(duì)鏈接表中滿(mǎn)足條件的每一行計(jì)算哈希值并實(shí)現(xiàn)匹配。哈希連接常應(yīng)用于等價(jià)連接。

4 Oralce數(shù)據(jù)庫(kù)中實(shí)現(xiàn)SQL查詢(xún)語(yǔ)句優(yōu)化的策略

在堅(jiān)持SQL查詢(xún)語(yǔ)句優(yōu)化原則的基礎(chǔ)上積極探究實(shí)現(xiàn)SQL語(yǔ)言?xún)?yōu)化的具體策略,進(jìn)而實(shí)現(xiàn)SQL語(yǔ)句的優(yōu)化。主要可以從以下幾方面入手。

4.1 充分合理地利用牽引

在Oralce數(shù)據(jù)庫(kù)中,比較重要的查詢(xún)方法就是索引查詢(xún)。通過(guò)應(yīng)用索引查詢(xún),能顯著提升查詢(xún)效果。但是,索引查詢(xún)?cè)趹?yīng)用過(guò)程中需要做到與實(shí)際應(yīng)用系統(tǒng)查詢(xún)需求相結(jié)合。因此,要特別注意索引使用過(guò)程中的一些技巧和經(jīng)驗(yàn),比如:對(duì)于大批量數(shù)據(jù)記錄的插入及刪除,首先刪除索引,再進(jìn)行數(shù)據(jù)操作,等操作完成之后再重建必要的索引。

4.2 有意識(shí)地避免全表掃描

一般情況下,處理查詢(xún)或執(zhí)行SELECT語(yǔ)句時(shí),要執(zhí)行全表掃描。同時(shí),在執(zhí)行一些更新或者是刪除操作時(shí),也可能會(huì)出現(xiàn)全表掃描。當(dāng)出現(xiàn)在WHERE子句的列沒(méi)有相應(yīng)的索引時(shí),會(huì)發(fā)生全表掃描。全表掃描就像從頭到尾讀一本書(shū)去找一個(gè)關(guān)鍵字一樣。可以根據(jù)SQL,語(yǔ)句的WHERE子句中的列建立索引,從而避免掃描整個(gè)表。

4.3 避免相關(guān)子查詢(xún)

假如子查詢(xún)對(duì)外層相關(guān)查詢(xún)的值進(jìn)行了引用,就構(gòu)成了相關(guān)子查詢(xún)。具體到執(zhí)行過(guò)程中,就不能和不相關(guān)子查詢(xún)的方法那樣:先單獨(dú)處理子查詢(xún),然后再處理外層查詢(xún),而是需要子查詢(xún)和外層查詢(xún)交叉同時(shí)進(jìn)行。在查詢(xún)過(guò)程中,查詢(xún)嵌套層次越多,效率越低,要有效避免相關(guān)子查詢(xún)。

5 結(jié)論

SQL語(yǔ)言是一種比較靈活的語(yǔ)言,可以使用不同的語(yǔ)句實(shí)現(xiàn)相同的功能,但在Oralce數(shù)據(jù)庫(kù)中,語(yǔ)句的執(zhí)行效率會(huì)表現(xiàn)出較大區(qū)別。因此,必須要注重SQL查詢(xún)語(yǔ)句在Oralce數(shù)據(jù)庫(kù)中的優(yōu)化,進(jìn)而實(shí)現(xiàn)數(shù)據(jù)庫(kù)性能的提升。在SQL查詢(xún)語(yǔ)句優(yōu)化的過(guò)程中,要遵循SQL查詢(xún)語(yǔ)句優(yōu)化的一般原則,通過(guò)切實(shí)可行的策略來(lái)實(shí)現(xiàn)SQL查詢(xún)語(yǔ)句的優(yōu)化,從而在保障Oralce數(shù)據(jù)庫(kù)應(yīng)用效率的同時(shí),實(shí)現(xiàn)Oralce數(shù)據(jù)庫(kù)性能的不斷提升。

參考文獻(xiàn):

[1]李偉.Oracle 11g SQL和PL/SQL編程指南[M].北京:清華大學(xué)出版社,2014.

猜你喜歡
優(yōu)化
超限高層建筑結(jié)構(gòu)設(shè)計(jì)與優(yōu)化思考
PEMFC流道的多目標(biāo)優(yōu)化
能源工程(2022年1期)2022-03-29 01:06:28
民用建筑防煙排煙設(shè)計(jì)優(yōu)化探討
關(guān)于優(yōu)化消防安全告知承諾的一些思考
一道優(yōu)化題的幾何解法
由“形”啟“數(shù)”優(yōu)化運(yùn)算——以2021年解析幾何高考題為例
圍繞“地、業(yè)、人”優(yōu)化產(chǎn)業(yè)扶貧
事業(yè)單位中固定資產(chǎn)會(huì)計(jì)處理的優(yōu)化
4K HDR性能大幅度優(yōu)化 JVC DLA-X8 18 BC
幾種常見(jiàn)的負(fù)載均衡算法的優(yōu)化
電子制作(2017年20期)2017-04-26 06:57:45
主站蜘蛛池模板: 婷婷久久综合九色综合88| 日本精品αv中文字幕| 亚洲人成色在线观看| 丰满人妻被猛烈进入无码| 国产精品美女在线| 国产人妖视频一区在线观看| 黄色网站不卡无码| 999精品色在线观看| 91精品国产情侣高潮露脸| 无码久看视频| 国产91精品调教在线播放| 97综合久久| 强奷白丝美女在线观看| 精品久久香蕉国产线看观看gif| 亚洲精品少妇熟女| 在线观看av永久| 国产91麻豆免费观看| 好吊色妇女免费视频免费| 亚洲日本韩在线观看| 国产毛片片精品天天看视频| 伊人色天堂| 欧美精品啪啪一区二区三区| 黄片在线永久| 亚洲成人精品久久| 欧美成人区| 亚洲欧美不卡| 无码高潮喷水专区久久| 伊人久久福利中文字幕| 成人av专区精品无码国产| 青草国产在线视频| 亚洲天堂精品在线| 国产一区三区二区中文在线| 特级做a爰片毛片免费69| 色婷婷综合激情视频免费看| 国产乱人激情H在线观看| 国产精品亚洲va在线观看| 欧美日在线观看| 91在线播放国产| 欧美成人影院亚洲综合图| 国产香蕉一区二区在线网站| 欧美亚洲网| 国产精品视频a| 蜜桃视频一区二区| 国内精品久久久久久久久久影视 | 日韩欧美国产另类| 青青草国产免费国产| 4虎影视国产在线观看精品| 女人18毛片久久| 国产无遮挡裸体免费视频| 免费看美女毛片| a级毛片免费网站| 中文字幕久久波多野结衣| 久久婷婷五月综合97色| av在线无码浏览| 好吊色妇女免费视频免费| 国产精品性| 日本国产精品一区久久久| 国产va在线| 国产精品亚洲а∨天堂免下载| 福利在线一区| 国产精品七七在线播放| 四虎永久在线| 国产成人超碰无码| 2019年国产精品自拍不卡| 久久狠狠色噜噜狠狠狠狠97视色| 欧美精品v欧洲精品| 国产成人综合亚洲网址| 美女被躁出白浆视频播放| 日韩精品一区二区三区中文无码| 91丝袜在线观看| 天天躁夜夜躁狠狠躁图片| 99热6这里只有精品| 亚洲中文精品人人永久免费| 中文国产成人精品久久一| 欧美精品xx| 亚洲福利视频一区二区| 久热re国产手机在线观看| 高清不卡一区二区三区香蕉| 爱做久久久久久| 国产高清在线观看| 十八禁美女裸体网站| 日本亚洲欧美在线|