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

        ?

        Oracle數(shù)據(jù)庫SQL語句優(yōu)化要點分析

        2014-08-15 09:45:19趙新民崔海艷
        網(wǎng)絡(luò)空間安全 2014年6期
        關(guān)鍵詞:數(shù)據(jù)庫

        趙新民+++崔海艷

        【摘要】針對Oracle數(shù)據(jù)庫性能受到SQL語句制約的問題,本文針對SQL語句的優(yōu)化要點進行了分析。首先詳細描述了Oracle優(yōu)化器,給出了影響執(zhí)行計劃的因素;其次對SQL語句可優(yōu)化的類型進行了總結(jié)分析,并詳細分析了優(yōu)化的規(guī)則,舉出了SQL實例進行比較。本文對于系統(tǒng)維護人員和數(shù)據(jù)庫分析師都具有一定的積極作用。

        【關(guān)鍵詞】Oracle;數(shù)據(jù)庫;SQL

        1引言

        隨著信息化進程的不斷加快,數(shù)據(jù)庫的應(yīng)用越來越廣泛,信息系統(tǒng)的優(yōu)劣與數(shù)據(jù)庫系統(tǒng)的性能有著直接的關(guān)聯(lián)。隨著數(shù)據(jù)庫規(guī)模的不斷擴大,如何保持數(shù)據(jù)庫應(yīng)用系統(tǒng)高效地運行,受到人們越來越多的關(guān)注。

        2優(yōu)化器

        對于信息管理系統(tǒng)來說,其最關(guān)鍵的核心是數(shù)據(jù)庫系統(tǒng),對于眾多的應(yīng)用系統(tǒng)來說,查詢操作在整個系統(tǒng)中占據(jù)著相當大的比重,也就是說,查詢速度的快慢直接影響著信息管理系統(tǒng)的性能。當數(shù)據(jù)庫的規(guī)模越大,這個特性表現(xiàn)的越明顯,良好的查詢語句對系統(tǒng)性能的提高起著積極的作用。

        2.1Oracle優(yōu)化器

        無論SQL語句的性能如何,最終都要在Oracle數(shù)據(jù)庫中執(zhí)行,Oracle數(shù)據(jù)庫在執(zhí)行SQL語句之前,首先通過優(yōu)化器利用初始化的參數(shù),并利用指定的優(yōu)化方法對執(zhí)行計劃進行分析,并執(zhí)行。

        當前,Oracle優(yōu)化器主要有RBO和CBO兩種優(yōu)化方式。其中RBO是基于規(guī)則的優(yōu)化器,根據(jù)訪問的路徑和訪問路徑的等級去選擇SQL語句的執(zhí)行計劃,假如一條SQL語句有多個路徑可以通過,Oralce會自動選擇等級最低的訪問路徑。RBO優(yōu)化器僅含有幾條在小表上低效利用的索引,無形之中增加了I/O,該優(yōu)化方式效率相對較低;CBO是基于代價的優(yōu)化器,其成本主要由可用訪問路徑、嵌入的提示、對象的統(tǒng)計信息等組成,CBO會選擇成本代價最低的執(zhí)行計劃。當前,CBO優(yōu)化器成為Oracle數(shù)據(jù)庫優(yōu)化的主要組成,CBO的構(gòu)成如圖1所示。

        利用Oracle優(yōu)化器對SQL語句進行分析,在所有的查詢中,有一半經(jīng)過RBO優(yōu)化之后,執(zhí)行的速度會快一點,而另一半則由CBO優(yōu)化后,執(zhí)行的速度最快。從Oracle8i版本以后,RBO優(yōu)化已經(jīng)不再發(fā)展RBO。

        2.2影響執(zhí)行計劃的因素

        影響執(zhí)行計劃的因素較多,總結(jié)起來主要有幾種。

        (1)連接順序。當前,數(shù)據(jù)庫進行數(shù)據(jù)查詢,大部分情況下都需要由若干表連接,一般采取將查詢結(jié)果只有一行記錄的表優(yōu)先。

        (2)訪問路徑。對于路徑的掃描,Oracle優(yōu)化器的方式有簇掃描、索引掃描、行ID掃描、全表掃描、散列掃描等。由于Oracel數(shù)據(jù)庫對I/O的評估原則是“塊”在整個表中所占的比例來確定選取何種掃描路徑。

        (3)連接方式。查詢優(yōu)化的重點是連接操作,內(nèi)表與外表之間進行連接的算法主要有歸并連接、散列連接及嵌套循環(huán)連接,每種連接都有其自己的優(yōu)點。

        (4)成本估算。其成本的代價主要從I/O、CPU和通信三方面進行考慮,其中I/O是最主要的。在成本估算中占的比重最大。

        3優(yōu)化SQL語句

        3.1可優(yōu)化的SQL語句類型

        優(yōu)化器可以優(yōu)化SQL語句的類型主要有幾種。

        (1)簡單語句。對于數(shù)據(jù)表的操作,主要的操作動作有select、update、insert及delete語句,這種類型的語句主要包括from和where。一般來說,可以優(yōu)化的地方主要在where中。其影響效率的問題主要集中在幾個方面:分組或排序過程中包含了過多的中間結(jié)果集、對索引的列使用了全表掃描。

        (2)連接語句。利用多個表相結(jié)合的方式查找相關(guān)的數(shù)據(jù)信息,這也是數(shù)據(jù)庫最常用的方法,由from子句實現(xiàn)多個表的連接,利用where將相關(guān)的條件進行關(guān)聯(lián)。其影響效率的問題主要集中在幾個方面:表連接順序不是最優(yōu)、分組或排序過程包含了過多的中間結(jié)果集、索引列使用了全表掃描等。

        (3)外部連接。該方式與連接語句有相同之處,同樣涉及到多表連接的問題。其影響效率的問題也與連接語句相近。

        (4)復(fù)雜語句。對于select、update、insert及delete語句中的子查詢以select形式存在。該方式的問題是內(nèi)部查詢的效率對外部查詢的效率有影響。

        (5)復(fù)雜查詢。利用組操作符將若干簡單語句結(jié)合起來形成的語句,一般情況下,將語句拆分為上述的四種類型的語句之后再進行優(yōu)化處理。

        對于查詢問題的分析,主要是要盡可能地減少子查詢或者使用子查詢返回的結(jié)果集要盡量地減少。

        3.2優(yōu)化的規(guī)則

        (1)在索引列字段上盡可能地避免使用“!=”、“NULL”、“<>”及“not”等符號,盡可能地不要使用隱式類型的轉(zhuǎn)換。這些符號的使用可能會對索引信息造成影響,進行轉(zhuǎn)變?yōu)槿頀呙?,影響了?shù)據(jù)庫的性能。

        (2)盡可能地不要使用“select * from 表名”?!?”符號代表需要返回所有列,就意味著要掃描所有的返回記錄,收取所有的列名與列值。使Oracle不斷地進行磁盤的讀取及交換。如果需要,將“*”換成具體的列名。

        (3)避免在索引列字段中使用改變列的函數(shù)。當函數(shù)改變了索引列的類型及內(nèi)容時,可能使原來可以使用的索引值變得無法繼續(xù)使用,從而影響了系統(tǒng)的效率。

        (4)綁定變量進行傳值。綁定變量進行傳值與數(shù)據(jù)庫收到語句解析后的內(nèi)容是一致的,Oracle可以在下一條語句到來時直接存入緩存并執(zhí)行,不必再進行解析和生成執(zhí)行過程。

        (5)合理建立索引。良好的索引機制,可以使系統(tǒng)查詢速度更快。

        (6)利用where代替having子句。where子句是在分組之前對條件進行篩選,而Having是分組后進行篩選,分組前篩選可以有效減少分組的時間和資源的消耗。endprint

        比較下面兩個SQL語句:

        語句A:select name , num from department where num not in (select num from school);

        語句B:select name,num from department where not exists(select num from school where department.num=school.num)。

        通過在數(shù)據(jù)庫中執(zhí)行這兩條語句,其結(jié)果是相同的,執(zhí)行語句A時,Oracle首先對school表進行整個掃描,沒有在school上建立num索引,語句B使用了聯(lián)合查詢,對school表進行部分掃描,利用了num列的索引。語句B的效率要高于語句A。

        4結(jié)束語

        本文對Oracle數(shù)據(jù)庫的SQL語句優(yōu)化要點進行了分析,由于篇幅所限,并沒有給出具體的數(shù)據(jù)庫系統(tǒng),只給出了兩個SQL語句的比較。有興趣的讀者,可以在本文的基礎(chǔ)上,對數(shù)據(jù)庫管理系統(tǒng)中的SQL語句進行優(yōu)化處理操作,以達到提高系統(tǒng)效率的目的。

        參考文獻

        [1] 趙夢勤,李秀蘭.Oracle數(shù)據(jù)庫應(yīng)用系統(tǒng)的優(yōu)化策略.計算機工程與應(yīng)用,2003,(27):213-215.

        [2] 王能斌著.數(shù)據(jù)庫系統(tǒng)原理(2000).北京:電子工業(yè)出版社,2001.

        [3] Edward Whalen, Mitchell Schroeter 著;高艷春,周兆確,唐艷軍譯.Oracle 性能調(diào)整與優(yōu)化(第一版).北京:人民郵電出版社,2002.

        [4] 王曉春,趙霧,張巖.Windows 平臺上 Oracle 數(shù)據(jù)庫的系統(tǒng)性能優(yōu)化.計算機工程,2004,30(09):79-81.

        [5] 鄭謙益,居梯.Sybase SQL Server性能優(yōu)化技術(shù)及其應(yīng)用研究.微機發(fā)展,2003,(01):31-33.

        作者簡介:

        趙新民(1974-),男,沈陽師范學(xué)院,大學(xué)本科,法學(xué)學(xué)士,現(xiàn)就職于中國聯(lián)通赤峰分公司信息化服務(wù)中心,從事系統(tǒng)維護、網(wǎng)絡(luò)維護、數(shù)據(jù)庫操作方面工作。

        崔海艷(1975-),女,長春郵電學(xué)院,大學(xué)本科,學(xué)士學(xué)位,現(xiàn)就職于中國聯(lián)通赤峰分公司信息化服務(wù)中心,從事系統(tǒng)維護、網(wǎng)絡(luò)維護、數(shù)據(jù)庫操作方面工作。endprint

        猜你喜歡
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        財經(jīng)(2017年2期)2017-03-10 14:35:35
        數(shù)據(jù)庫
        財經(jīng)(2016年15期)2016-06-03 07:38:02
        數(shù)據(jù)庫
        財經(jīng)(2016年3期)2016-03-07 07:44:46
        數(shù)據(jù)庫
        財經(jīng)(2016年6期)2016-02-24 07:41:51
        竹菊影视欧美日韩一区二区三区四区五区| 国产高清天干天天视频| 成人综合久久精品色婷婷| 小黄片免费在线播放观看| 四虎影在永久在线观看| 人人爽人人爱| 精品在免费线中文字幕久久| 久久91精品国产91久久麻豆| 蕾丝女同一区二区三区| 日本一二三区视频在线| 女人夜夜春高潮爽a∨片传媒| 国产婷婷丁香久久综合| 黑人一区二区三区啪啪网站| 久久综合伊人有码一区中文字幕| 精品亚洲a∨无码一区二区三区 | 精品精品国产一区二区性色av| 人妻熟女翘屁股中文字幕| 免费人妻无码不卡中文字幕系| 妺妺窝人体色www在线图片| 日本女同伦理片在线观看| 国产精品老女人亚洲av无| 久久亚洲道色综合久久| 插我一区二区在线观看| 波多野结衣av手机在线观看| 国产99视频精品免费视频免里| 精品无人区无码乱码大片国产| 日本一区二区免费看片| 丰满少妇被粗大猛烈进人高清| 少妇激情av一区二区| 国产免费的视频一区二区| 国产精品日韩经典中文字幕| 亚洲av无码国产精品色午夜洪| 84pao强力打造免费视频34| 亚洲青青草视频在线播放| 午夜一区二区三区观看| 午夜精品一区二区三区的区别| 中文字幕日产人妻久久| av免费在线观看在线观看| 亚洲一二三四区免费视频| 欧美人和黑人牲交网站上线| 亚洲AV无码一区二区三区人|