新聞中心
Oracle有很多值得學(xué)習(xí)的地方,這里我們主要介紹Oracle日志緩沖區(qū),包括介紹建立優(yōu)化索引等方面。Oracle日志緩沖區(qū)的爭(zhēng)用將完全抑制數(shù)據(jù)庫(kù)的性能,因此要設(shè)法減少它。日志空間請(qǐng)求反映了用戶進(jìn)程等待Oracle日志緩沖區(qū)空間的次數(shù)。所以可通過(guò)查問(wèn)動(dòng)態(tài)性能表V$SYSSTAT(需有SELECT ANY TABLE特權(quán))來(lái)確定是否爭(zhēng)用Oracle日志緩沖區(qū)空間。該查詢語(yǔ)句的格式如下:

企業(yè)建站必須是能夠以充分展現(xiàn)企業(yè)形象為主要目的,是企業(yè)文化與產(chǎn)品對(duì)外擴(kuò)展宣傳的重要窗口,一個(gè)合格的網(wǎng)站不僅僅能為公司帶來(lái)巨大的互聯(lián)網(wǎng)上的收集和信息發(fā)布平臺(tái),成都創(chuàng)新互聯(lián)面向各種領(lǐng)域:成都木制涼亭等網(wǎng)站設(shè)計(jì)、成都全網(wǎng)營(yíng)銷解決方案、網(wǎng)站設(shè)計(jì)等建站排名服務(wù)。
- SQL>SELECT name, value
- 2>FROM V$SYSSTAT
- 3>WHERE name='redo log space requests';
日志空間的請(qǐng)求值應(yīng)接近于0,否則需增加初始化參數(shù)LOG_BUFFER的值,以增加空間、減少爭(zhēng)用。減少Oracle日志緩沖區(qū)閂鎖的爭(zhēng)用對(duì)Oracle日志緩沖區(qū)的訪問(wèn)由閂鎖(latches)調(diào)控。閂鎖分為日志分配閂鎖和日志拷貝閂鎖兩類。
當(dāng)多個(gè)用戶同時(shí)頻繁地訪問(wèn)Oracle日志緩沖區(qū)時(shí),就可能引起對(duì)Oracle日志緩沖區(qū)閂鎖的爭(zhēng)用,從而降低性能。Oracle將所有閂鎖的活動(dòng)記錄在動(dòng)態(tài)性能表V$LATCH中。有SELECT ANY TABLE特權(quán)的用戶可以查詢它,以了解是否有爭(zhēng)用發(fā)生。查詢語(yǔ)句如下:
- SQL>SELECT name,gets,misses,iddediate_gets,iddediate_miss
- 2>FROM V$LATCH l,V$LATCHMANE ln
- 3>WHERE ln.nome IN('redo allocation','redo copv')AND ln.latch #=1.latch #;
其中:
◆ willing_to_wait:對(duì)閂鎖的請(qǐng)求種類之一。
◆ iddediate:對(duì)閂鎖的請(qǐng)求種類之二。
◆ gets:表示對(duì)閂鎖的willing_to_wait請(qǐng)求成功的次數(shù)。
◆ misses:表示對(duì)閂鎖的willing_to_wait請(qǐng)求不成功的次數(shù)。
◆ iddediate_gets:表示對(duì)每個(gè)閂鎖立即請(qǐng)求成功的次數(shù)。
◆ iddediate_miss:表示對(duì)每個(gè)閂鎖立即請(qǐng)求不成功的次數(shù)。
要減少日志分配閂鎖的爭(zhēng)用就需使單個(gè)進(jìn)程持有閂鎖的時(shí)間最短,要減少此時(shí)間又應(yīng)減少在日志閂鎖上的拷貝,即減少參數(shù)LOG_SMALL_ENTRY_MAX_SIZE的值。要減少日志拷貝閂鎖的爭(zhēng)用,一是觀察其爭(zhēng)用情況,增加閂鎖,即增加LOG_SIMULTANEOUS_COPIES的值;二是減少持有閂鎖的時(shí)間,即在獲得日志拷貝閂鎖之前,就迫使Oracle用戶進(jìn)程事先建立日志項(xiàng)。事先建立的所有日志項(xiàng)的大小都要小于參數(shù) LOG_ENTRY_PREBUILD_THRESHOLD,要事先建立日志項(xiàng)就要增加參數(shù)LOG_ENTRY_PREBUILD_THRESSHOLD 的值。
排序是一項(xiàng)花銷很大的操作,而且對(duì)性能的影響程度也較大,因此使大部分排序在內(nèi)存中完成,而不是在磁盤上進(jìn)行,這是至關(guān)重要的。其中“sorts(memory)”選項(xiàng)表示不需要磁盤I/O,選項(xiàng)“sorts(disk)” 表示需要磁盤I/O。如果用戶認(rèn)為在磁盤上的排序意義較大,可以增加init.ora文件SORT_AREA_SIZE參數(shù)的設(shè)置值。以上介紹Oracle日志緩沖區(qū)。
建立優(yōu)化索引
當(dāng)要改進(jìn)查詢的性能時(shí),索引是最便捷的,常常也是最好的技術(shù)。多數(shù)新應(yīng)用程序的存取速度問(wèn)題是由于缺少合適的索引。使用索引可以使性能發(fā)生巨大的變化,而且確定需要什么樣的索引也相對(duì)簡(jiǎn)單,只需要考察您的SQL語(yǔ)句,看WHERE子句中您用了什么內(nèi)容。
對(duì)待索引的建立要特別謹(jǐn)慎,因?yàn)樗饕加么疟P空間。如果索引同表本身的大小差不多,那就不能從索引得到多少好處。索引還要對(duì)表的更新、插入和刪除的性能產(chǎn)生影響。除了這幾點(diǎn)之外,索引是改進(jìn)查詢性能的最簡(jiǎn)單、最有效的方法,尤其是當(dāng)您總是對(duì)幾個(gè)關(guān)鍵字字段進(jìn)行搜索時(shí),這種方法最合適。
索引建立要花費(fèi)大量時(shí)間,可以使用ALTER INDEX REBUILD來(lái)創(chuàng)建新索引,這比其刪除和重建索引要迅速得多。如果用戶的數(shù)據(jù)已經(jīng)排序,在構(gòu)建索引時(shí)使用NOSORT選項(xiàng),如:
- SQL>ALTER INDEX emp_primary_key REBUILD;
- SQL>CREATE INDEX myindex ON emp(ename) NOSORT;
【編輯推薦】
- 閑扯Oracle數(shù)據(jù)導(dǎo)入
- 精煉概括Oracle性能測(cè)試
- 簡(jiǎn)介Oracle INDEX提示
- 五分鐘精通Oracle Hints
- 簡(jiǎn)單介紹Oracle驅(qū)動(dòng)表
新聞標(biāo)題:籠統(tǒng)描述Oracle日志緩沖區(qū)
鏈接分享:http://www.5511xx.com/article/dpheopo.html


咨詢
建站咨詢
