亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Oracle > 正文

Oracle數據庫高性能秘密之數據高速緩存

2024-08-29 13:52:59
字體:
來源:轉載
供稿:網友

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

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


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


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


一、 空閑緩存塊


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


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


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


二、命中緩存塊


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


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


三、臟緩存塊


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


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


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


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


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


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


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


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


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


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


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


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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品一区二三区不卡| 国产一区二区三区在线视频| 久久精品国产欧美亚洲人人爽| 久久久久久91| 亚洲视频欧美视频| 欧美一级黄色网| 成人性生交xxxxx网站| 国产亚洲视频在线观看| 亚洲视频999| 欧美性猛交xxxx免费看久久久| 国产精品极品美女在线观看免费| 国产日韩在线看| 国产在线观看一区二区三区| 亚洲国产成人爱av在线播放| 久久噜噜噜精品国产亚洲综合| 日韩在线视频导航| 日本人成精品视频在线| 亚洲精品成a人在线观看| 亚洲国产一区二区三区在线观看| 欧洲亚洲免费视频| 欧美视频13p| 欧美交受高潮1| 欧美成人精品一区| 有码中文亚洲精品| 亚洲美女激情视频| 日韩有码片在线观看| 91香蕉嫩草影院入口| 日韩欧美高清在线视频| 久久精品2019中文字幕| 欧美在线日韩在线| 国产精品旅馆在线| 精品久久久av| 国产精品白丝av嫩草影院| 中文字幕亚洲图片| 国色天香2019中文字幕在线观看| 国内精品视频在线| 亚洲精品v天堂中文字幕| 日韩在线视频网站| 亚洲国产精品久久精品怡红院| 亚洲综合大片69999| 国产午夜精品一区理论片飘花| 黄色成人av网| 91精品国产综合久久久久久久久| 日本精品视频在线播放| 国产精品观看在线亚洲人成网| 国产日韩中文字幕在线| 一区二区欧美在线| 日韩亚洲欧美成人| 琪琪亚洲精品午夜在线| 欧美日韩美女视频| 激情亚洲一区二区三区四区| 亚洲精品一区久久久久久| 日韩电影大全免费观看2023年上| 欧美电影电视剧在线观看| 91精品久久久久久久久青青| 欧美日韩亚洲高清| 国产亚洲视频在线| 亚洲国产精品悠悠久久琪琪| www.xxxx精品| 欧美福利在线观看| 91在线精品视频| 国产精品香蕉在线观看| 日韩欧美在线视频日韩欧美在线视频| 亚洲视频综合网| 国产精品高精视频免费| 啪一啪鲁一鲁2019在线视频| 91精品国产91| 久久久久亚洲精品成人网小说| 欧美尺度大的性做爰视频| 日韩美女av在线免费观看| 青青草99啪国产免费| 久久国产精品免费视频| 亚洲www在线| 国产精品久久久久久av福利| 国产精品6699| 欧美日韩一区二区精品| 国产亚洲欧美一区| 96sao精品视频在线观看| 国产日韩欧美黄色| 97精品国产aⅴ7777| 精品久久久久人成| 91久久国产综合久久91精品网站| 日本乱人伦a精品| 欧美一级在线亚洲天堂| 亚洲综合视频1区| 5278欧美一区二区三区| 亚洲国产精品成人精品| 久久精品99久久久久久久久| 国产精品吹潮在线观看| 色午夜这里只有精品| 欧美日韩福利电影| 亚洲性视频网站| 国产精品wwww| 欧美亚洲激情视频| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲精品乱码久久久久久金桔影视| 欧美激情欧美激情| 色琪琪综合男人的天堂aⅴ视频| 欧美在线播放视频| 亚洲精品www久久久| 精品久久久久久亚洲国产300| 日韩电影第一页| 国产精品久久国产精品99gif| 色综合久综合久久综合久鬼88| 性色av一区二区咪爱| 波霸ol色综合久久| 最新国产成人av网站网址麻豆| 精品久久久久国产| 亚洲精品99久久久久| 亚洲人成在线观看网站高清| 日本久久久久久久久| 亚洲自拍偷拍视频| 456亚洲影院| 国产精品一香蕉国产线看观看| 久久6精品影院| 在线观看日韩视频| 欧美最猛性xxxx| 国产亚洲精品成人av久久ww| 国产精品狼人色视频一区| 欧美另类极品videosbestfree| 精品久久久一区| 77777亚洲午夜久久多人| 亚洲女同性videos| 高清欧美电影在线| 国产精品老女人精品视频| 欧美国产精品va在线观看| 亚洲深夜福利网站| 美日韩精品免费视频| 欧美亚洲第一区| 91av在线免费观看视频| 日韩有码在线观看| 欧美日韩精品国产| 全亚洲最色的网站在线观看| 精品成人久久av| 亚洲福利在线看| 一本大道香蕉久在线播放29| 亚洲欧美日韩第一区| 国产精品视频一区二区三区四| 日韩电影中文字幕一区| 精品视频在线播放免| 久久精品视频一| 精品亚洲精品福利线在观看| 欧美日韩亚洲一区二区| 欧美日韩另类字幕中文| 亚洲伊人久久大香线蕉av| 欧美中文字幕第一页| 国产成人午夜视频网址| 亚洲欧美在线磁力| 色无极亚洲影院| 日韩h在线观看| 色噜噜狠狠狠综合曰曰曰88av| 91国偷自产一区二区三区的观看方式| 伦伦影院午夜日韩欧美限制| 91精品国产综合久久香蕉最新版| 97在线视频免费播放| 奇米一区二区三区四区久久| 欧美日韩日本国产| 中日韩美女免费视频网站在线观看| 日韩欧美精品在线观看| 久久全球大尺度高清视频| 国产精品美女久久久免费| 欧美插天视频在线播放| 日韩国产精品视频| 国产亚洲在线播放|