掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
Oracle有很多值得學(xué)習(xí)的地方,這里我們主要介紹Oracle日志緩沖區(qū),包括介紹建立優(yōu)化索引等方面。Oracle日志緩沖區(qū)的爭用將完全抑制數(shù)據(jù)庫的性能,因此要設(shè)法減少它。日志空間請求反映了用戶進(jìn)程等待Oracle日志緩沖區(qū)空間的次數(shù)。所以可通過查問動態(tài)性能表V$SYSSTAT(需有SELECT ANY TABLE特權(quán))來確定是否爭用Oracle日志緩沖區(qū)空間。該查詢語句的格式如下:

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

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流