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

基于ORACLE的SQL語句優(yōu)化

2013-12-31 00:00:00史超
電腦迷 2013年11期

摘 要 本文從ORACLE內(nèi)存角度簡(jiǎn)單討論了SQL語句的優(yōu)化方法。SQL語句由于其簡(jiǎn)單和容易上手致使大家對(duì)它的研究不對(duì),其實(shí)無論是DBA還是前臺(tái)程序員都應(yīng)該有一些書寫高效SQL語句的經(jīng)驗(yàn),這對(duì)于應(yīng)用設(shè)計(jì)和系統(tǒng)日常維護(hù)都有很大幫助。

關(guān)鍵詞 SQL語句優(yōu)化 綁定變量 物化視圖

中圖分類號(hào):TP312 文獻(xiàn)標(biāo)識(shí)碼:A

SQL語言由IBM實(shí)驗(yàn)室的Donald Chamberlin及其同事在1974年定義,被稱為結(jié)構(gòu)化查詢語言(Structured Query Language),現(xiàn)在SQL語言已經(jīng)形成了標(biāo)準(zhǔn)的應(yīng)用和開發(fā)體系。

1 SQL語句的使用

雖然很多數(shù)據(jù)庫(kù)都對(duì)SQL語句進(jìn)行了再開發(fā)和擴(kuò)展,但是包括SELECT, INSERT, UPDATE, DELETE以及MERGE在內(nèi)的標(biāo)準(zhǔn)的SQL命令仍然可以被用來完成幾乎所有的數(shù)據(jù)庫(kù)操作。

SELECT查詢語句用來從一個(gè)或多個(gè)表中或者其他數(shù)據(jù)庫(kù)對(duì)象中提取數(shù)據(jù)。SELECT 查詢的一般格式是

5 select {[distinct|all] columns | *}

1 from {tables | views | other select}

2 where conditions

3 group by columns

4 having conditions

6 order by columns;

其中,每行代碼前的數(shù)字表示了SELECT語句在ORACLE執(zhí)行順序。在執(zhí)行查詢語句時(shí)是由ORACLE的基于成本的優(yōu)化器(cost-based optimizer,CBO)來負(fù)責(zé)編譯的,因此SELECT查詢語句的執(zhí)行順序和我們的邏輯思維有所不同。從執(zhí)行順序可以直觀的看出,減少FROM語句涉及到的數(shù)據(jù)源數(shù)量,可以大幅減少數(shù)據(jù)訪問量,增加SELECT查詢語句的執(zhí)行速度。

2 硬解析與軟解析

為了不重復(fù)解析相同的語句,在每一次執(zhí)行SQL語句前ORACLE會(huì)去檢查內(nèi)存中是不是存在相同的語句。在第一次解析SQL語句之后,ORACLE將SQL語句存放在系統(tǒng)全局內(nèi)存區(qū)域SGA中。因此,當(dāng)用戶執(zhí)行一個(gè)SQL語句時(shí),如果它和之前執(zhí)行過得語句完全相同,ORACLE會(huì)將取回之前的解析信息并重用,這種解析類型被稱為軟解析。相反的,如果之前沒有執(zhí)行過完全相同的語句,ORACLE會(huì)將它解析執(zhí)行并把解析信息存入SGA中便于以后重用,這種解析類型被稱為硬解析。不難看出,當(dāng)數(shù)據(jù)塊在內(nèi)存中緩存時(shí)的訪問速度要大于通過OS獲取數(shù)據(jù)塊的訪問速度。

3 綁定變量的使用

一個(gè)硬解析不僅僅耗費(fèi)大量的系統(tǒng)資源,更重要的是會(huì)占據(jù)重要的們閂(latch)資源。當(dāng)一個(gè)SQL語句提交后,ORACLE會(huì)首先檢查一下共享緩沖池(shared pool)里有沒有與之完全相同的語句,如果有的話只須執(zhí)行軟解析即可,否則就得進(jìn)行硬解析。有以下兩條SQL語句:

SQL>select * from emp where deptno=10;

SQL>SELECT * FROM EMP WHERE DEPTNO=10;

這兩條語句返回的結(jié)果集是完全相同的,也就是說對(duì)于用戶來說這兩條語句執(zhí)行結(jié)果是相同的。現(xiàn)在來對(duì)v$sql表1進(jìn)行查詢。

從返回的結(jié)果可以發(fā)現(xiàn),盡管這兩條語句的結(jié)果是相同的,但是ORACLE認(rèn)為它們是不同的。這是由于在執(zhí)行SQL語句時(shí),ORACLE首先將該語句字符的散列值作為它存放在SGA中的主鍵。當(dāng)執(zhí)行其他語句時(shí),ORACLE會(huì)將執(zhí)行語句的散列值與內(nèi)存中現(xiàn)有的散列值一一比較。在執(zhí)行字符轉(zhuǎn)換散列值時(shí),大寫字母與小寫字母產(chǎn)生的散列值是不同的。當(dāng)使用綁定變量時(shí),即使用戶改變了綁定變量的值,ORACLE還是可以共享這個(gè)語句。

參考文獻(xiàn)

[1] 尹萍.SQL Server數(shù)據(jù)庫(kù)性能優(yōu)化[J].計(jì)算機(jī)應(yīng)用與軟件,2005(4).

[2] 胡江奕.基于SQL Server的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)性能的優(yōu)化[J],2001,37(2).

主站蜘蛛池模板: 91久久性奴调教国产免费| 国产精品永久免费嫩草研究院| 极品国产一区二区三区| 久久婷婷五月综合97色| 日韩黄色精品| 四虎成人免费毛片| 国产成年无码AⅤ片在线| 国产一级视频久久| 亚洲av片在线免费观看| 国产三级毛片| 色婷婷啪啪| 亚洲第一黄片大全| 国产精品视频999| 五月婷婷中文字幕| 黄色网在线| 91视频青青草| 好紧好深好大乳无码中文字幕| 国产91视频免费| 国产嫖妓91东北老熟女久久一| 亚洲一区网站| 九九热这里只有国产精品| 国产成人1024精品| 一级毛片免费的| 97视频在线精品国自产拍| 国产屁屁影院| 中文字幕亚洲电影| 亚洲香蕉伊综合在人在线| 欧美在线精品一区二区三区| 国模视频一区二区| 热热久久狠狠偷偷色男同| 国产成人精品无码一区二| 亚洲男人的天堂在线观看| 亚洲妓女综合网995久久| 日韩欧美国产另类| 夜夜拍夜夜爽| 在线观看亚洲天堂| 91亚洲视频下载| 欧美yw精品日本国产精品| 无码在线激情片| 亚洲成aⅴ人在线观看| 99在线观看国产| 国产97视频在线观看| 园内精品自拍视频在线播放| 国产精品久久久久久久久| 欧美成人h精品网站| 免费AV在线播放观看18禁强制| 中文字幕66页| 精品第一国产综合精品Aⅴ| 成人无码区免费视频网站蜜臀| 欧美在线一二区| 成人在线不卡| 亚洲成人播放| 久99久热只有精品国产15| 亚洲动漫h| 免费国产好深啊好涨好硬视频| 国产精品刺激对白在线 | 在线免费无码视频| 中文无码精品a∨在线观看| 一区二区午夜| 乱色熟女综合一区二区| 亚洲精品国产日韩无码AV永久免费网| 精品成人免费自拍视频| 日韩黄色精品| 一级毛片中文字幕| 亚洲三级a| 国产国语一级毛片| 国产手机在线观看| 久久精品人人做人人爽电影蜜月| 日韩毛片免费视频| 99re精彩视频| 5555国产在线观看| 欧美中文字幕在线二区| 美女免费黄网站| 538精品在线观看| 国产成人精品免费av| 性欧美在线| 四虎成人在线视频| 久久综合丝袜长腿丝袜| 人与鲁专区| 巨熟乳波霸若妻中文观看免费| 久久亚洲精少妇毛片午夜无码| 美女毛片在线|