RAC的cache fusion對資料塊訪問效率的影響
說明:測試RAC的cache fusion對資料塊訪問效率的影響
第一步,建立測試表
BYS@ bysrac1>create table test9 as select * from dba_objects;Table created.
################################
第二步:在節點1進行更新不提交併查詢
BYS@ bysrac1>conn / as sysdbaConnected.
SYS@ bysrac1>select instance_name from v$instance;
INSTANCE_NAME
----------------
bysrac1
SYS@ bysrac1>select distinct sid from v$mystat;
SID
----------
53
col spid for a10
SYS@ bysrac1>col machine for a15
SYS@ bysrac1>select b.spid,a.sid,a.serial#,a.machine from v$session a,v$process b where a.paddr =b.addr and a.sid='53';
SPID SID SERIAL# MACHINE
---------- ---------- ---------- ---------------
15241 53 104 bysrac1.bys.com
SYS@ bysrac1>alter session set tracefile_identifier=test9_1; 給TRACE語句加個標識test9_1
Session altered.
PL/SQL procedure successfully completed.
SYS@ bysrac1>update bys.test9 set subobject_name = 'test' where object_id<20000;
16914 rows updated.
SYS@ bysrac1>set autotrace traceonly stat 讓只輸出統計資訊,不輸入資料。
SYS@ bysrac1>select * from bys.test9 where object_id <20000;
16914 rows selected.
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
1342 consistent gets
0 physical reads
0 redo size
855042 bytes sent via SQL*Net to client
12816 bytes received via SQL*Net from client
1129 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
16914 rows processed
SYS@ bysrac1>exec sys.dbms_system.set_ev('53','104',10046,0,'');
PL/SQL procedure successfully completed.
SYS@ bysrac1>exit
############################################################
第三步:在節點2對同一表進行查詢
SQL> conn / as sysdbaConnected.
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
bysrac2
SQL> select distinct sid from v$mystat;
SID
----------
37
col spid for a10
SQL> col machine for a15
SQL> select b.spid,a.sid,a.serial#,a.machine from v$session a,v$process b where a.paddr =b.addr and a.sid='37';
SPID SID SERIAL# MACHINE
---------- ---------- ---------- ---------------
17047 37 447 bysrac2.bys.com
SQL> alter session set tracefile_identifier=test9_2; 給TRACE語句加個標識test9_2
Session altered.
SQL> exec sys.dbms_system.set_ev('37','447',10046,12,''); 開啟TRACE語句
PL/SQL procedure successfully completed.
SQL> set autotrace traceonly stat
SQL> select * from bys.test9 where object_id <20000;
16914 rows selected.
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
1342 consistent gets
0 physical reads
0 redo size
855042 bytes sent via SQL*Net to client
12816 bytes received via SQL*Net from client
1129 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
16914 rows processed
SQL> exec sys.dbms_system.set_ev('37','447',10046,0,'');
PL/SQL procedure successfully completed.
SQL> exit
####################################
第四步:分別在兩個節點上使用tkprof將TRACE檔案生成方便閱讀的格式
節點1:[oracle@bysrac1 trace]$ ls
alert_bysrac1.log
bysrac1_ora_15241_TEST9_1.trc
bysrac1_ora_15241_TEST9_1.trm
[oracle@bysrac1 trace]$ cd $ORACLE_HOME/bin
[oracle@bysrac1 bin]$ tkprof /u01/diag/rdbms/bysrac/bysrac1/trace/bysrac1_ora_15241_TEST9_1.trc /home/oracle/test9_1.trc
TKPROF: Release 11.2.0.1.0 - Development on Thu Oct 24 12:48:22 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
[oracle@bysrac1 bin]$ cd
[oracle@bysrac1 ~]$ ls
alert_bysrac1.log Desktop fullback.sh oradiag_oracle racfull_5_1 racfull_6_1 test9_1.trc
#####################
節點2:
[oracle@bysrac2 ~]$ cd -
/u01/diag/rdbms/bysrac/bysrac2/trace
[oracle@bysrac2 trace]$ ls
alert_bysrac2.log bysrac2_ora_17047_TEST9_2.trc
bysrac2_arc2_5210.trc bysrac2_ora_17047_TEST9_2.trm
bysrac2_arc2_5210.trm
[oracle@bysrac2 trace]$ cd $ORACLE_HOME/bin
[oracle@bysrac2 bin]$ tkprof /u01/diag/rdbms/bysrac/bysrac2/trace/bysrac2_ora_17047_TEST9_2.trc /home/oracle/test9_2.trc
TKPROF: Release 11.2.0.1.0 - Development on Thu Oct 24 12:49:01 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
[oracle@bysrac2 bin]$ cd
[oracle@bysrac2 ~]$ ls
alert_bysrac2.log inita.ora oradiag_oracle test9_2.trc
######################################
第五步:檢視重新格式化的TRACE檔案轉儲中資訊如下
節點1:---內容較多,僅擷取了查詢語句部分********************************************************************************
SQL ID: 6ns41jwh1fz2u
Plan Hash: 1544281142
select *
from
bys.test9 where object_id <20000
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 1129 0.06 0.15 0 1342 0 16914
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 1131 0.06 0.15 0 1342 0 16914
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: SYS
Rows Row Source Operation
------- ---------------------------------------------------
16914 TABLE ACCESS FULL TEST9 (cr=1342 pr=0 pw=0 time=184505 us cost=67 size=3484845 card=16835)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 1129 0.00 0.01
SQL*Net message from client 1129 0.00 0.49
********************************************************************************
節點2:---內容較多,僅擷取了查詢語句部分。--可以看到有gc cr multi block request等待事件,同時可以對比出節點2執行此查詢所需CPU及查詢總時間較多。
gc cr multi block request實際就是global cache cr multi block request,10G以後global cache被簡稱為gc,在RAC應用系統裡面,這是一個常見的等待事件。
工作原理:
當程式請求資料庫塊時,首先會在本地的CACHE裡面檢視是否存在,這種檢視是根據DBA (Data Block Address) 轉化為cache buffers chains,然後再從hash bucket確認是否存在。
如果在本地沒發現有塊的CACHE,程式就會請求resource master授予共享訪問給資料塊,然後再去獲取資料塊的CACHE。
如果請求的BLOCK CACHE在遠端的節點,resource master就會使用內部通訊把遠端的CACHE傳輸到本地。當請求的CACHE BUFFER是共享模式的,遠端節點就會克隆一個然後傳輸到本地。非則,就建立PI映像,然後傳輸到本地。
********************************************************************************
SQL ID: 6ns41jwh1fz2u
Plan Hash: 1544281142
select *
from
bys.test9 where object_id <20000
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 1129 0.09 0.65 0 1342 0 16914
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 1131 0.09 0.65 0 1342 0 16914
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: SYS
Rows Row Source Operation
------- ---------------------------------------------------
16914 TABLE ACCESS FULL TEST9 (cr=1342 pr=0 pw=0 time=92380 us cost=67 size=3484845 card=16835)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 1129 0.00 0.01
Disk file operations I/O 1 0.00 0.00
ges message buffer allocation 21 0.00 0.00
gc cr multi block request 25 0.04 0.44
SQL*Net message from client 1129 0.00 0.35
********************************************************************************
相關文章
- Oracle RAC Cache Fusion 系列十三:PCM資源訪問Oracle
- 【RAC原理】Cache Fusion
- 資料可用性問題對如今的區塊鏈有何影響?區塊鏈
- 【RAC】資料庫的靜默狀態(QUIESCE RESTRICTED)對RAC環境的影響資料庫UIREST
- 影響資料檢索效率的幾個因素
- Oracle RAC Cache Fusion 系列十七:Oracle RAC DRMOracle
- 初探Cache Fusion對block的鎖管理BloC
- 【RAC】在RAC環境中SQL*Plus命令對資料庫及例項的影響SQL資料庫
- Oracle RAC Cache Fusion 系列九:Oracle RAC 分散式資源管理(二)Oracle分散式
- Oracle RAC Cache Fusion 系列八:Oracle RAC 分散式資源管理(一)Oracle分散式
- table_open_cache引數對mysql效能的影響MySql
- 表資料的儲存對索引的影響索引
- RAC環境下的SEQUENCE對應用的影響
- GPFS Persistent Reserve 的設定對Oracle RAC 的影響Oracle
- Oracle RAC Cache Fusion 系列一:基礎概念Oracle
- Oracle RAC 和OPS 區別 - Cache FusionOracle
- 影響伺服器訪問速度的原因伺服器
- mysql事務對效率的影響分析總結JILEMySql
- HDU4920 Matrix multiplication (CPU cache對程式的影響)
- Oracle RAC Cache Fusion系列十八:Oracle RAC Statisticsand Wait EventsOracleAI
- Oracle RAC Cache Fusion 系列十四:Oracle RAC CR Server Part OneOracleServer
- Oracle RAC Cache Fusion 系列十:Oracle RAC Enqueues And Lock Part 1OracleENQ
- 驗證資料壓縮對DML的影響
- 磁碟排序對Oracle資料庫效能的影響排序Oracle資料庫
- 磁碟排序對Oracle資料庫效能的影響PT排序Oracle資料庫
- 容器化對資料庫的效能有影響嗎?資料庫
- 變更OS時間對資料庫的影響資料庫
- 大資料對法律行業產生的影響大資料行業
- 執行緒數目對資料庫的影響執行緒資料庫
- iPad對各行業的影響–資料資訊圖iPad行業
- Cirium:資料揭示新冠肺炎對中國航空業的影響及對全球航空旅遊增長的影響
- 業務資料抓取的影響
- 影響代理IP訪問速度的兩個關鍵
- 基於row cache object latch研究對於sga抖動的影響Object
- 聊聊虛擬化和容器對資料庫的影響資料庫
- 產品資料管理對ERP系統的影響
- 大資料對我們生活中的影響有哪些?大資料
- 資料對於製造業的國際化影響