日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
對(duì)Oracle性能調(diào)優(yōu)的基本方案

以下的文章主要是對(duì)Oracle 性能優(yōu)化基本方案的概述,Oracle 性能優(yōu)化基本方案在實(shí)際中的應(yīng)用比例還是占為多數(shù)的,如果你對(duì)這一技術(shù),心存好奇的話,以下的文章將會(huì)揭開(kāi)它的神秘面紗。

我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、甌海ssl等。為上千多家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢(xún)和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的甌海網(wǎng)站制作公司

1)設(shè)立合理的Oracle 性能優(yōu)化目標(biāo)。

2)測(cè)量并記錄當(dāng)前性能。

3)確定當(dāng)前Oracle性能瓶頸(Oracle等待什么、哪些SQL語(yǔ)句是該等待事件的成分)。

4)把等待事件記入跟蹤文件。

5)確定當(dāng)前的OS瓶頸。

6)優(yōu)化所需的成分(應(yīng)用程序、數(shù)據(jù)庫(kù)、I/O、爭(zhēng)用、OS等)。

7)跟蹤并實(shí)施更改控制過(guò)程。

8)測(cè)量并記錄當(dāng)前性能

9)重復(fù)步驟3到7,直到滿足優(yōu)化目標(biāo)

1.設(shè)立合理的Oracle 性能優(yōu)化目標(biāo)

重點(diǎn):關(guān)于設(shè)立目標(biāo)的最重要的一點(diǎn)是它們必須是可量化和可達(dá)到的。

方法:目標(biāo)必須是當(dāng)前性能和所需性能的的陳述形式的語(yǔ)句。只需填寫(xiě)下列語(yǔ)句中的空格即可。

花費(fèi)了 (時(shí)/分/秒),但要求它在 (時(shí)/分/秒)內(nèi)執(zhí)行。

使用了 (資源量),但它不能使用超過(guò) 。

2. 測(cè)量并記錄當(dāng)前性能

重點(diǎn):

(1)需要在峰值活動(dòng)時(shí)間獲得當(dāng)前系統(tǒng)性能快照

(2)關(guān)鍵是要在出現(xiàn)性能問(wèn)題的時(shí)間段內(nèi)采集信息

(3)必須在合理的時(shí)間段上采集,一般在峰值期間照幾個(gè)為期15分鐘的快照

方法:執(zhí)行STATSPACK

建立Oracle 性能快照表空間

 
 
 
  1. sqlplus sys as sysdba
  2. create tablespace perfstat datafile '/u02/oradata/dbnms/perfstat.dbf' size 500M extent management local;

安裝STATSPACK

 
 
 
  1. @$ORACLE_HOME/rdbms/admin/spcreate.sql;

獲取性能數(shù)據(jù),可以生成多個(gè)快照

 
 
 
  1. sqlplus perfstat
  2. execute statspack.snap;

生成性能快照的報(bào)表

 
 
 
  1. sqlplus perfstat
  2. select min(snap_id) snapid_min, max(snap_id) snapid_max from stats$snapshot;
  3. @$ORACLE_HOME/rdbms/admin/spreport;

該報(bào)告中有關(guān)于性能的重要信息,如前5位的等待事件、cache大小、各種內(nèi)存結(jié)構(gòu)的命中率、每秒及每事務(wù)邏輯、物理讀寫(xiě)數(shù)據(jù)塊數(shù)、性能最差的sql語(yǔ)句等

3. 確定當(dāng)前Oracle性能瓶頸

重點(diǎn):從Oracle 等待接口v$system_event、v$session_event和v$session_wait中獲得等待事件,進(jìn)而找出影響性能的對(duì)象和sql語(yǔ)句

方法:

首先,利用v$system_event視圖執(zhí)行下面的查詢(xún)查看數(shù)據(jù)庫(kù)中某些常見(jiàn)的等待事件:

 
 
 
  1. select * from v$system_event
  2. where event in ('buffer busy waits',
  3. 'db file sequential read',
  4. 'db file scattered read',
  5. 'enqueue',
  6. 'free buffer waits',
  7. 'latch free',
  8. 'log file parallel write',
  9. 'log file sync');

接著,利用下面對(duì)v$session_event和v$session視圖進(jìn)行的查詢(xún),研究具有對(duì)上面顯示的內(nèi)容有貢獻(xiàn)的等待事件的會(huì)話:

 
 
 
  1. select se.sid,s.username,se.event,se.total_waits,se.time_waited,se.average_wait
  2. from v$session s,v$session_event se
  3. where s.sid = se.sid
  4. and se.event not like 'SQL*Net%'
  5. and s.status = 'ACTIVE'
  6. and s.username is not null;

使用下面查詢(xún)找到與所連接的會(huì)話有關(guān)的當(dāng)前等待事件。這些信息是動(dòng)態(tài)的,為了查看一個(gè)會(huì)話的等待最多的事件是什么,需要多次執(zhí)行此查詢(xún)。

 
 
 
  1. select sw.sid,s.username,sw.event,sw.wait_time,sw.state,sw.seconds_in_wait SEC_IN_WAIT
  2. from v$session s,v$session_wait sw
  3. where s.sid = sw.sid
  4. and sw.event not like 'SQL*Net%'
  5. and s.username is not null
  6. order by sw.wait_time desc;

查詢(xún)會(huì)話等待事件的詳細(xì)信息

 
 
 
  1. select sid,event,p1text,p1,p2text,p2,p3text,p3
  2. from v$session_wait
  3. where sid between &1 and &2
  4. and event not like '%SQL%'
  5. and event not like '%rdbms%';

利用P1、P2的信息,找出等待事件的相關(guān)的段

 
 
 
  1. select owner,segment_name,segment_type,tablespace_name
  2. from dba_extents
  3. where file_id = &fileid_in
  4. and &blockid_in between block_id and block_id + blocks - 1;

獲得操作該段的sql語(yǔ)句:

 
 
 
  1. select sid, getsqltxt(sql_hash_value,sql_address)
  2. from v$session
  3. where sid = &sid_in;

getsqltxt函數(shù)

 
 
 
  1. create or replace
  2. function GetSQLtxt (hashaddr_in in v$sqltext.hash_value%type,
  3. addr_in in v$sqltext.address%type)
  4. return varchar2
  5. is
  6. temp_sqltxt varchar2(32767);
  7. cursor sqlpiece_cur
  8. is
  9. select piece,sql_text
  10. from v$sqltext
  11. where hash_value = hashaddr_in
  12. and address = addr_in
  13. order by piece;
  14. begin
  15. for sqlpiece_rec in sqlpiece_cur
  16. loop
  17. temp_sqltxt := temp_sqltxt || sqlpiece_rec.sql_text;
  18. end loop;
  19. return temp_sqltxt;
  20. end GetSQLtxt;

至此已經(jīng)找到影響Oracle 性能的對(duì)象和sql語(yǔ)句,可以有針對(duì)性地優(yōu)化

4. 把等待事件記入跟蹤文件

重點(diǎn):如果在跟蹤系統(tǒng)上的等待事件時(shí),由于某種原因遇到了麻煩,則可以將這些等待事件記入一個(gè)跟蹤文件。

方法:

對(duì)于當(dāng)前會(huì)話:

 
 
 
  1. alter session set timed_statistics=true;
  2. alter session set max_dump_file_size=unlimited;
  3. alter session set events '10046 trace name context forever, level 12';

執(zhí)行應(yīng)用程序,然后在USER_DUMP_DEST指出的目錄中找到跟蹤文件。

查看文件中以詞WAIT開(kāi)始的所有行。

對(duì)于其它的會(huì)話

確定會(huì)話的進(jìn)程ID(SPID)。下面的查詢(xún)識(shí)別出名稱(chēng)以A開(kāi)始的所有用戶(hù)的會(huì)話進(jìn)程ID:

 
 
 
  1. select S.Username, P.Spid from V$SESSION S, V$PROCESS P
  2. where S.PADDR = P.ADDR and S.Username like 'A%';

以 sysdba 進(jìn)入sqlplus執(zhí)行

 
 
 
  1. alter session set timed_statistics=true;
  2. alter session set max_dump_file_size=unlimited;
  3. oradebug setospid 
  4. oradebug unlimit
  5. oradebug event 10046 trace name context forever, level X /* Where X = (1,4,8,12) */

跟蹤某個(gè)時(shí)間間隔得會(huì)話應(yīng)用程序。

在USER_DUMP_DEST 的值指出的目錄中利用SPID查看跟蹤文件

查看文件中以詞WAIT開(kāi)始的所有行。

5. 確定當(dāng)前OS瓶頸

(1)Windows NT上的監(jiān)控

使用控制面板-〉管理工具-〉Oracle 性能即可

(2)UNIX上的監(jiān)控

使用通用性的工具,包括sar、iostat、cpustat、mpstat、netstat、top、osview等。

1) CPU使用情況

sar -u 5 1000

%sys和%wio的數(shù)值應(yīng)該小于百分之10到15

2) 設(shè)備使用情況

sar -d 5 1000

在%busy超過(guò)60%時(shí),***設(shè)備利用率開(kāi)始降低;在具有足夠磁盤(pán)高速緩存的系統(tǒng)上,認(rèn)為avserv為100毫秒的值非常高。

3) 虛擬內(nèi)存使用情況

vmstat -S 5 1000

執(zhí)行隊(duì)列(r)應(yīng)該明確的平均小于(2*CPU數(shù)目)

6.優(yōu)化所需的成分(應(yīng)用程序、數(shù)據(jù)庫(kù)、I/O、爭(zhēng)用、OS等)。

7.跟蹤并實(shí)施更改控制過(guò)程。

8.測(cè)量并記錄當(dāng)前Oracle 性能

9.重復(fù)步驟3到7,直到滿足優(yōu)化目標(biāo)


當(dāng)前名稱(chēng):對(duì)Oracle性能調(diào)優(yōu)的基本方案
URL標(biāo)題:http://www.5511xx.com/article/dpogois.html