自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

對(duì)Oracle 性能調(diào)優(yōu)的基本方案

數(shù)據(jù)庫(kù) Oracle
下面的文章主要介紹的是Oracle 性能優(yōu)化基本方案 ,以下的文章是對(duì)Oracle 性能優(yōu)化基本方案的詳細(xì)介紹,望你會(huì)從中有所收獲。

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

 

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ǔ)句。只需填寫下列語(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ù)邏輯、物理讀寫數(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í)行下面的查詢查看數(shù)據(jù)庫(kù)中某些常見的等待事件:

 

 

  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)行的查詢,研究具有對(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; 

 

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

 

 

  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; 

 

查詢會(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開始的所有行。

 

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

確定會(huì)話的進(jìn)程ID(SPID)。下面的查詢識(shí)別出名稱以A開始的所有用戶的會(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 <SPID> 
  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開始的所有行。

 

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è)備利用率開始降低;在具有足夠磁盤高速緩存的系統(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)

 【編輯推薦】

  1. Oracle空間管理的3技巧
  2. Oracle數(shù)據(jù)庫(kù)的統(tǒng)計(jì)數(shù)據(jù)與其生成的具體方式
  3. Oracle加速計(jì)劃與推出的新門戶網(wǎng)站簡(jiǎn)介
  4. Oracle數(shù)據(jù)庫(kù)提升效率,用3PAR
  5. 支付寶如何用Oracle 11g創(chuàng)建新一代數(shù)據(jù)的分析
責(zé)任編輯:佚名 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-05-20 15:02:01

Oracle性能調(diào)優(yōu)

2011-11-14 10:28:23

2014-02-21 10:40:39

GlusterFS性能調(diào)優(yōu)

2011-05-20 14:23:01

Oracle調(diào)優(yōu)

2009-04-01 11:17:52

內(nèi)存分配調(diào)優(yōu)Oracle

2011-03-10 14:40:54

LAMPMysql

2010-05-04 17:08:24

Oracle數(shù)據(jù)庫(kù)

2013-09-24 13:06:56

AngularJS性能優(yōu)化

2017-07-21 08:55:13

TomcatJVM容器

2012-06-20 11:05:47

性能調(diào)優(yōu)攻略

2010-04-07 13:32:39

Oracle調(diào)優(yōu)

2021-03-04 08:39:21

SparkRDD調(diào)優(yōu)

2020-01-14 09:13:48

Tomcat調(diào)優(yōu)配置

2010-03-31 08:51:35

Oracle 10g

2011-05-18 10:16:24

Oracle調(diào)優(yōu)

2020-10-20 11:13:19

性能調(diào)優(yōu)標(biāo)準(zhǔn)

2020-11-30 11:40:35

NginxLinux性能調(diào)優(yōu)

2014-12-01 11:30:06

PostgreSQL

2011-03-18 11:21:48

2010-04-12 17:30:44

Oracle SQL調(diào)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)