成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

Oracle數(shù)據(jù)庫高性能秘密之數(shù)據(jù)高速緩存

瀏覽:3日期:2023-11-22 19:07:06

使用過Oracle數(shù)據(jù)庫的人都知道,Oracle數(shù)據(jù)庫的運行速度與效率,在同類數(shù)據(jù)庫中是名列前茅的,特別是對大量數(shù)據(jù)進行訪問時,更加有出色的表現(xiàn)。那么,Oracle數(shù)據(jù)庫是靠什么實現(xiàn)的呢?筆者下面將通過一系列的文章,向大家展示Oracle數(shù)據(jù)庫提供高性能運算的秘密。

Oracle數(shù)據(jù)庫作為復雜運算的首選數(shù)據(jù)庫,其首先是通過所謂的數(shù)據(jù)高速緩存來實現(xiàn)對數(shù)據(jù)的高速運算與操作的。

數(shù)據(jù)高速緩存跟操作系統(tǒng)的緩存類似,其存儲最近從數(shù)據(jù)文件中讀取的數(shù)據(jù)塊,其中的數(shù)據(jù)可以被所有的用戶所訪問。如當我們利用Select語句從數(shù)據(jù)庫中查詢員工信息的時候,其首先不是從數(shù)據(jù)文件中去查詢這個數(shù)據(jù),而是從數(shù)據(jù)高速緩存中去查找,而沒有這個必要再去查詢磁盤中的數(shù)據(jù)文件了。只有在數(shù)據(jù)緩存中沒有這個數(shù)據(jù)的時候,數(shù)據(jù)庫才會從數(shù)據(jù)文件中去查詢。Oracle數(shù)據(jù)庫為什么要如此設(shè)計呢?這是由于數(shù)據(jù)庫在讀取數(shù)據(jù)的時候,讀取內(nèi)存的速度比讀取磁盤的速度要快很多倍,所以這種機制可以提高數(shù)據(jù)的整體訪問效率。

雖然其他數(shù)據(jù)庫也有這方面的設(shè)計,但是,相對來說,Oracle數(shù)據(jù)庫比其他數(shù)據(jù)庫,在這方面有更加出色的表現(xiàn)。難怪Oracle數(shù)據(jù)庫在內(nèi)存的要求上,比其他數(shù)據(jù)庫要高。若以稍微的代價犧牲一些內(nèi)存,而換取更高的數(shù)據(jù)訪問性能。筆者認為還是值得的。下面我們就來看看,Oracle數(shù)據(jù)庫在數(shù)據(jù)高速緩存上有哪些特殊的表現(xiàn)。

一、 空閑緩存塊

當我們重新啟動數(shù)據(jù)庫后,系統(tǒng)就會為數(shù)據(jù)庫分配一些空閑的緩存塊。空閑緩存塊中是沒有任何數(shù)據(jù)的,他在那邊默默的等著別寫入記錄。當Oracle 數(shù)據(jù)庫從數(shù)據(jù)文件中讀取數(shù)據(jù)后,數(shù)據(jù)庫就會尋找是否有空閑的緩存塊,以便將數(shù)據(jù)寫入其中。

一般來說,數(shù)據(jù)庫在啟動的時候,就會在內(nèi)存中預先分配這些緩存塊。所以,Oracle數(shù)據(jù)庫在啟動的時候,會占用比較多的內(nèi)存。但是,這可以免去在實際需要時向內(nèi)存申請的時間。所以,有時候Oracle數(shù)據(jù)庫雖然已啟動,內(nèi)存的占用率就很高,但是,其后續(xù)仍然可以正常運行的原因。而其他數(shù)據(jù)庫雖然剛啟動的時候內(nèi)存占用率不是很高,但是,但系統(tǒng)內(nèi)存到達80%以上時,在進行數(shù)據(jù)處理就會受到明顯的影響。

所以,當我們利用SELECT語句從數(shù)據(jù)庫文件中讀取文件的時候,數(shù)據(jù)庫首先會尋找是否有空閑的緩存。

二、命中緩存塊

當SELECT語句先從數(shù)據(jù)庫文件中讀取數(shù)據(jù)后,會把取得的數(shù)據(jù)放入到這個命中緩存塊中。也就是說,當我們利用查詢語句從數(shù)據(jù)庫查詢處員工信息后,這個信息就會被保存在高速緩存中。直道高速緩存消耗完畢等原因,這個空間才會被釋放。如此的話,下次用戶在查詢員工信息的時候,就不需要從數(shù)據(jù)庫文件中再次查詢相關(guān)信息,而直接從數(shù)據(jù)高速緩存中提取數(shù)據(jù),從而提高數(shù)據(jù)庫的訪問效率。

另外要注意的一個問題是,命中緩存塊中的數(shù)據(jù)不會被寫入數(shù)據(jù)文件。確實,這個命中緩存塊中的數(shù)據(jù)沒有被更改,其當然也不會被寫入數(shù)據(jù)庫文件中。

三、臟緩存塊

當我們利用SELECT查詢語句把員工信息的數(shù)據(jù)查詢出來后,數(shù)據(jù)庫會把這個數(shù)據(jù)所存儲的空緩存塊做標記,表示該緩存塊已經(jīng)存有數(shù)據(jù),使命中緩存塊。此時,我們?nèi)粼诶脭?shù)據(jù)更新語句UPDATE對其中某條記錄進行更新時,如要把張三的名字改為張四。運行UPDATE語句后,數(shù)據(jù)庫也首先從高速緩存中查找是否有這條記錄,若存在這條記錄的話,就直接更改這條記錄,并且把該緩存塊標記為贓緩存塊。如此的話,就可以保持數(shù)據(jù)的一致性。

也就是說,臟緩存塊存儲的是已經(jīng)被修改過的,但是還沒有寫入到數(shù)據(jù)庫文件的信息。當SQL的UPDATE等數(shù)據(jù)更新語句對某個緩存塊中的數(shù)據(jù)進行更改之后,這個命中緩存塊就會被數(shù)據(jù)庫標記為臟緩存塊。當滿足一定的條件時,這些臟緩存塊中的數(shù)據(jù)內(nèi)容會被寫入到數(shù)據(jù)庫文件中去,以便永久性的保留數(shù)據(jù)庫修改記錄。

當系統(tǒng)中沒有空閑緩存塊,而用戶又需要查詢數(shù)據(jù)時,數(shù)據(jù)庫就查詢當前所有的臟緩存塊,把最先更改的臟緩存塊中的內(nèi)容先寫入數(shù)據(jù)庫文件中,以便釋放這個臟緩存塊。數(shù)據(jù)庫就又會把這個臟緩存塊標記為空閑緩存塊,以方便用戶下次存入數(shù)據(jù)。

那Oracle數(shù)據(jù)庫到底是通過什么手段,來控制空閑緩存塊、命中緩存塊、臟緩存塊之間的相互轉(zhuǎn)換的呢?說出來也許你不相信,Oracle數(shù)據(jù)庫就是通過兩張表,來管理這么復雜的功能。這兩張表分別是DIRTY列表與LRU列表。

其中LRU列表保存著所有空閑緩存塊、命中緩存塊已經(jīng)還沒有被移入到DIRTY列表中的臟緩存塊。當Oracle數(shù)據(jù)庫用戶在查詢數(shù)據(jù)的時候,可能會遇到如下情況:

1、當用戶查找員工信息時,數(shù)據(jù)庫首先在LRU列表中查詢是否有空閑緩存塊。其查詢的數(shù)據(jù)是從尾部開始查找。當查找有空閑的緩存塊時,數(shù)據(jù)庫就會把查到的數(shù)據(jù)寫入到這個空閑緩存中。

2、若數(shù)據(jù)庫在查詢的時候,首先查到的是臟緩存的話,則會把這個臟緩存移動到DIRTY列表中,然后再繼續(xù)查詢,直到查詢到合適的空閑緩存塊為止。

3、若數(shù)據(jù)庫在LRU列表中,從尾到頭查了一遍,沒有找到空閑緩存塊,或者雖然有空閑緩存塊,但是其容量不符合要求時,數(shù)據(jù)庫就會暫時結(jié)束這一次查找。然后,系統(tǒng)就會觸發(fā)數(shù)據(jù)庫寫進程,把DIRTY列表中的臟緩存塊寫入到數(shù)據(jù)庫中去。已經(jīng)被寫入到數(shù)據(jù)庫文件中去的臟緩存塊將又被數(shù)據(jù)庫標記為空閑緩存塊,并插入到LRU列表中。當數(shù)據(jù)庫執(zhí)行完畢這個動作之后,數(shù)據(jù)庫又會對LRU列表進行搜索,找到合適的數(shù)據(jù)高速空閑緩存之后,就會把讀取的數(shù)據(jù)寫入到這個空閑緩存中。所以,我們在利用數(shù)據(jù)庫的時候,會發(fā)現(xiàn)有時候讀取大量數(shù)據(jù)的時候,速度會比較慢。除了其他原因外,也有一部份原因是因為數(shù)據(jù)庫沒有查到足夠大的空閑緩存在存放這些數(shù)據(jù),故只好寫進行讀寫操作,以釋放更多的臟緩存,然后再進行查詢操作。

知道了這些數(shù)據(jù)庫高速緩存工作原理之后,我們數(shù)據(jù)庫管理員又該做些什么呢,來對Oracle數(shù)據(jù)庫進行優(yōu)化。為此,筆者有以下建議:

1、為Oracle數(shù)據(jù)庫配置盡量大的內(nèi)存。Oracle數(shù)據(jù)庫最新版本,根據(jù)官方的建議,其內(nèi)存需要1G。雖然在低于這個內(nèi)存數(shù)量的時候,數(shù)據(jù)庫仍然可以運行,但是,其運行適度會大打折扣。當查詢大量數(shù)據(jù)的時候,更是比較吃力。筆者現(xiàn)在使用的數(shù)據(jù)庫服務(wù)器,是使用了4個G的內(nèi)存。以前我用的是2個G的。內(nèi)存升級后,發(fā)現(xiàn)數(shù)據(jù)庫的性能得到了比較大的改善。

2、在對數(shù)據(jù)進行查詢操作時,盡量使用限制條件。如現(xiàn)在需要查詢銷售部門的員工信息時,我們不需要查詢?nèi)康膯T工信息,而是在SELECT語句中,利用WHERE條件語句設(shè)置查詢條件。如此的話,就可以充分利用DIRTY列表中的空閑緩存塊,而不會因為空閑緩存塊容量不夠而頻繁的去執(zhí)行數(shù)據(jù)庫寫操作。這會明顯降低數(shù)據(jù)庫的運行操作。同時,在查詢時,最好也能夠明確查詢的信息,如你只需要員工的姓名與入職日期,那就不需要把員工的出生年月、身份證號碼都查詢出來。所以,有時候合理設(shè)計視圖,也可以提高數(shù)據(jù)庫的運行效率。

3、最好不要在數(shù)據(jù)庫服務(wù)器上運行其他的服務(wù)。在數(shù)據(jù)庫服務(wù)器中,若還運行其它服務(wù)器的話,除了硬件資源爭奪影響服務(wù)器的運行效率之外,還會產(chǎn)生一個問題。就是會使得數(shù)據(jù)庫的數(shù)據(jù)高速緩存塊不連續(xù)。這會直接影響數(shù)據(jù)庫查詢空閑緩存塊的效率。對臟緩存塊進行數(shù)據(jù)庫寫入操作以及數(shù)據(jù)庫進行標記之間的轉(zhuǎn)換也會產(chǎn)生影響。所以,根據(jù)筆者的經(jīng)驗,數(shù)據(jù)庫服務(wù)器最好能夠獨立。最多只能跟其對應的應用服務(wù)器部署在同一臺服務(wù)器上。如現(xiàn)在Oracle數(shù)據(jù)庫是一臺ERP系統(tǒng)的后臺數(shù)據(jù)庫,最好數(shù)據(jù)庫能夠跟ERP服務(wù)器分開部署。但是,若由于服務(wù)器資金的限制,那么可以把ERP應用服務(wù)器跟數(shù)據(jù)庫服務(wù)器部署在一臺服務(wù)器上。但是,不能再跟郵件服務(wù)器等應用服務(wù)器放在一起。這會影響數(shù)據(jù)高速緩存的管理效率,從而最終影響數(shù)據(jù)庫的運行效能。現(xiàn)在服務(wù)器價格逐漸下滑,服務(wù)器的成本已經(jīng)不是影響企業(yè)數(shù)據(jù)庫應用的關(guān)鍵。所以,出于數(shù)據(jù)庫性能考慮,筆者認為,企業(yè)在這上面還是應該大方的進行投資。沒必要為了這么一點點錢,影響到數(shù)據(jù)庫的性能。

成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
一本色道久久精品| 欧美日韩国产综合在线| 麻豆精品在线观看| 欧美高清视频一区二区三区在线观看| 亚洲一区二区动漫| 91精品国产手机| 亚洲日本一区二区三区| 狠狠色丁香婷婷综合| 欧美激情一区| 一本色道a无线码一区v| 久久日韩粉嫩一区二区三区| 亚洲成人免费观看| 99精品一区二区三区| 免费在线亚洲欧美| 久久久久免费观看| 日韩和欧美一区二区三区| 成人妖精视频yjsp地址| 午夜在线一区二区| 久久久亚洲综合| 免费一区二区视频| 国产一区二区三区四区三区四| 精品视频资源站| 伊人夜夜躁av伊人久久| 91小视频在线| 欧美日韩电影一区| av一区二区久久| 欧美性受xxxx| 伊人开心综合网| 91女人视频在线观看| 欧美日韩一区二区在线观看视频 | 久久人人超碰精品| 蜜臀av性久久久久蜜臀av麻豆| 亚洲福利精品| www国产精品av| 久久激情五月婷婷| 国产精品久久波多野结衣| 久久综合五月天婷婷伊人| 五月激情综合色| 国产一区二区三区自拍| 欧美mv和日韩mv国产网站| 奇米精品一区二区三区在线观看一| 国内精品美女在线观看| 精品久久久网站| 看片网站欧美日韩| 国产伦精品一区二区三区视频孕妇 | 国产精品乡下勾搭老头1| 亚洲成色最大综合在线| 欧美精品一区男女天堂| 精品无人区卡一卡二卡三乱码免费卡 | 欧美午夜精品一区二区三区| 亚洲日穴在线视频| 91看片淫黄大片一级在线观看| 在线综合视频播放| 免费成人美女在线观看| 国产亚洲欧美一区二区三区| 欧美激情综合在线| 99久久国产免费看| 在线成人免费视频| 蜜臀久久99精品久久久画质超高清 | 婷婷久久综合九色综合绿巨人| 伊伊综合在线| 亚洲国产精品成人久久综合一区 | 成人av网站在线观看免费| 欧美日韩精品系列| 日本不卡视频在线| 91久久精品国产91性色tv| 亚洲成a人在线观看| 一区二区三区|亚洲午夜| 国产精品超碰97尤物18| 欧美日韩亚洲国产精品| 精品国产1区二区| 丰满亚洲少妇av| 欧美日韩视频一区二区| 免费成人结看片| 欧美亚洲网站| 亚洲一区成人在线| 国产日韩1区| 亚洲视频免费在线| 狠狠综合久久| 国产欧美一区二区三区网站| 免费人成黄页网站在线一区二区| 国产欧美日韩视频一区二区三区| 国产精品欧美一区喷水| 国内精品福利| 亚洲桃色在线一区| 18成人免费观看视频| **性色生活片久久毛片| 亚洲人成网站在线观看播放| 有坂深雪av一区二区精品| 亚洲青色在线| 777色狠狠一区二区三区| 国产精品资源站在线| 欧美电影在哪看比较好| 国产美女精品人人做人人爽| 在线91免费看| 成人一区二区三区视频| 久久婷婷一区二区三区| 欧美区高清在线| 亚洲天堂精品在线观看| 亚洲美女黄色| 午夜精品福利久久久| 色呦呦日韩精品| 蜜臀av国产精品久久久久| 欧美日韩亚洲高清一区二区| 极品少妇xxxx精品少妇偷拍| 欧美一区二区福利在线| 丁香婷婷综合网| 久久久精品国产免大香伊| 国产福利一区二区三区视频 | 91极品视觉盛宴| 国语精品一区| 一区二区三区在线观看动漫| 久久都是精品| 激情图区综合网| 久久久精品欧美丰满| 在线欧美一区| 亚洲国产视频直播| 欧美视频一区在线| 成人动漫av在线| 国产精品久久久久久久蜜臀 | 午夜视频在线观看一区二区三区| 色婷婷亚洲综合| 国产精品综合一区二区| www国产精品av| 激情六月综合| 日韩专区一卡二卡| 欧美一三区三区四区免费在线看| av在线这里只有精品| 中文字幕在线一区二区三区| 欧美亚洲一区二区三区| 韩国av一区二区三区在线观看| 精品国免费一区二区三区| 欧美日韩国产色综合一二三四| 夜夜精品浪潮av一区二区三区| 欧美性受xxxx| 92精品国产成人观看免费| 一区二区三区欧美视频| 欧美日韩一二三区| 欧美日韩国产探花| 五月天一区二区三区| 欧美一级免费大片| 亚洲性图久久| 麻豆精品蜜桃视频网站| 久久久99精品久久| 亚洲一区三区在线观看| 国产精品18久久久久久久久久久久| 久久网站热最新地址| 国产日韩亚洲欧美精品| 国产一区二区毛片| 亚洲美女视频一区| 欧美日韩视频第一区| 欧美精品v日韩精品v国产精品| 亚洲国产一区二区三区| 日韩欧美国产午夜精品| 在线精品观看| 国产伦精品一区二区三区免费迷| 亚洲国产精品高清| 在线观看亚洲一区| 欧美精品网站| 日韩国产精品久久| 国产日产欧美一区二区三区| 久久先锋资源| 欧美在线精品一区| 奇米精品一区二区三区在线观看 | 亚洲aⅴ怡春院| 中文字幕不卡在线播放| 中文字幕一区二区5566日韩| 在线观看国产91| 一区二区三区|亚洲午夜| 欧美日韩国产精品一卡| 成人av在线影院| 成人免费的视频| 精品在线一区二区| 麻豆一区二区三| 日本午夜精品一区二区三区电影| 久久久99久久精品欧美| 国产欧美一区二区精品忘忧草| 中文字幕 久热精品 视频在线| 国产一区二区三区黄| 日韩午夜电影| 老司机精品久久| 日韩一区有码在线| 久久高清一区| 不卡一二三区首页| 亚洲一区二区在线视频| 久久亚洲影视婷婷| 看欧美日韩国产| 国产一区二区无遮挡| 久久99久久精品欧美| 国产精品美女久久久久久久久久久 | 不卡电影一区二区三区| 一区二区三区四区视频精品免费| 欧美一区二区私人影院日本| 日韩视频一区| 床上的激情91.| 婷婷中文字幕综合| 日本一区二区三区视频视频| 欧美三级在线播放| 99亚洲一区二区| 成人激情视频网站|