46
特濃JPOUG Oracle Database 12c Pluggable Database でSTATSPACKつかったらどうなるんだ ~ V$SYSSTATには要注意 ~ Japan Oracle User Group 山下 正

[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

Embed Size (px)

Citation preview

Page 1: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

特濃JPOUGOracle Database 12c Pluggable DatabaseでSTATSPACKつかったらどうなるんだ

~ V$SYSSTATには要注意 ~

Japan Oracle User Group山下 正

Page 2: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

Contents

• JPOUG

•今日話すこと

•検証説明 / デモ

• まとめ

2

Page 3: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

JPOUG

Japan Oracle User Group (http://www.jpoug.org/)

活動事例:2011年6月 JPOUG活動開始

2012年4月 Oracle OpenWorld Unconference presented by JPOUG 開催

2012年7月 JPOUG> SET EVENTS 20120721

2012年10月 Unconference at db tech showcase 2012

2013年12月 JPOUG Advent Calendar 2013

2013年5月 db tech showcase 2013 Osaka

2013年7月 Tech Talk Night スタート

2013年9月 JAWS FESTA Kansai 2013

2013年11月 db tech showcase 2013 Tokyo

2013年12月 JPOUG Advent Calendar 2013 (http://www.zusaar.com/event/1687004)

3

Page 4: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

今日話すこと

• Oracle Database 12c の Pluggable Database 環境で STATSPACK を動かす。

• STATSPACKの結果を”素”のまま眺めるのはつらいので”ビジュアル系”にしてみる。

• “???”を発見。

• “???”をもうちょっと深堀する。

•無理やりまとめてみる。

4

Page 5: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

検証環境

• Oracle Database 12c ( 12.1.0 ) Enterprise Edition on Oracle Linux 6.4 64bit

• Pluggable Database (Oracle Multitenant option)

• STATSPACK

• Oracle Application Express 4.2

5

Page 6: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

検証環境

CDB

CDB$ROOT

PDB$SEED PDB(PDBORCL)

PDB(PDBORCL2)

PDB(PDBORCL3)

APEXSTATSPACK

STATSPACK

STATSPACK

APEX APEX

Oracle Database 12c Container Database

6

Page 7: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

検証環境

CON_ID=0

CON_ID=1

CON_ID=2 CON_ID=3(PDBORCL)

CON_ID=4(PDBORCL2)

CON_ID=5(PDBORCL3)

Oracle Database 12c Container Database

APEXSTATSPACK

STATSPACK

STATSPACK

APEX APEX

7

Page 8: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

検証環境CDB$ROOT@ORCL SQL> select CON_ID,DBID,NAME,OPEN_MODE,OPEN_TIME from v$containers;

CON_ID DBID NAME OPEN_MODE OPEN_TIME---------- ---------- ---------- ---------- ------------------------------

1 1350188225 CDB$ROOT READ WRITE 13-11-07 11:59:14.6852 4064979437 PDB$SEED READ ONLY 13-11-07 11:59:14.6913 2269547790 PDBORCL READ WRITE 13-11-10 17:54:27.3474 1200336578 PDBORCL2 READ WRITE 13-11-10 17:54:27.3445 1153988180 PDBORCL3 READ WRITE 13-11-10 17:54:27.344

CDB$ROOT@ORCL SQL>

CDB$ROOT@ORCL SQL> show userユーザーは"SYS"です。CDB$ROOT@ORCL SQL> select count(*) from gv$sessions_count;

COUNT(*)----------

254 8

Page 9: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

検証環境STATSPACK 12.1

11g との違いは??sprepins.sql

… といっても、もともと11gから存在するビューの情報が出るようになっただけ。

他は

spcreate.sql

spcusr.sql

spctab.sql

Rem MODIFIED (MM/DD/YY)Rem shsong 06/29/11 - shsong 06/28/11 - Bug 12702106: displayRem v$IOSTAT_FUNCTION_DETAIL

9

Page 10: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

検証環境STATSPACK 12.1-----------------------------------------------------------------------

Oracle12g Server

Release 12.1

Production

-------------------------------------------------------------------------

Copyright (c) 1993, 2012, Oracle and/or its affiliates. All rights reserved.

Author: Connie Dialeris GreenContributors: Cecilia Gervasio, Graham Wood, Russell Green, Patrick Tearle,

Harald Eri, Stefan Pommerenk, Vladimir Barriere, Kathryn Chou

Please refer to the Oracle11g server README file in the rdbms doc directory,for copyright, disclosure, restrictions, warrant, trademark, disclaimer, and licensing information. The README file is README_RDBMS.HTM.

Oracle Corporation, 500 Oracle Parkway, Redwood City, CA 94065.

-------------------------------------------------------------------------10

Page 11: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

検証環境

Oracle Application Express 4.2

「Oracle Application Express(Oracle APEX)は、Oracleデータベース用の宣言型高速Webアプリケーション開発ツールです。完全にサポートされた無償のオプションとして、Oracle Databaseのすべてのエディションで使用できます。」

http://www.oracle.com/technetwork/jp/developer-tools/apex/overview/index.html

11

Page 12: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

検証

PDBORCL2上で3パターンの処理を実行し、それぞれのデータベース上で確認できる統計値の現れ方を確認する。

…画面

12

Page 13: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

検証

画面サンプル(TopN Wait Event相当)

13

Page 14: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

検証

画面サンプル(SQL ordered by XXX相当)

14

Page 15: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

検証 waitevent

PDBORCL2

PDBORCL

CDB$ROOT

15

PDBORCL2で処理した影響を受けて、PDBORCLで待機イベントのWAIT時間が上昇

Page 16: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

検証 waiteventPDBORCL

PDBORCL2

CDB$ROOT

16

PDBORCL2で処理した影響を受けて、PDBORCLで待機イベントのWAIT時間が上昇

Page 17: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

中間まとめ

• PDBで処理した結果はそれぞれのSTATSPACKに反映されている。

• コンテナ・データベースはSGAも共有リソースとしているため、SGA関連の待機イベントは他のPDBに影響する可能性があるので注意。 ORA-04031 とか

• CDB$ROOTで確認できる統計値はすべてのPDBの統計値を包含している。

17

Page 18: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

もう一度APEXの画面確認

18

PDB(PDBORCL)

PDB(PDBORCL2)

PDBORCL2で実行した処理によりexecute count が上昇しているケース。

PDBORCL2で実行した処理により execute count が上昇していないケース。

PDBORCL2で実行した処理によりexecute count が上昇しているケース。

Page 19: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

もう一度APEXの画面確認

• 処理を実行したPDB以外で “execute count” が上昇している

• “execute count”はインスタンス・ワイドでカウントされる?………………そうではないケースもある。

• CDB$ROOTで見るといずれのケースでも “execute count”が上昇している。

…… よくわからない……

19

Page 20: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

“execute count”深堀

• Oracle Database 12c で追加された新しいビューをみる。

http://docs.oracle.com/cd/E49329_01/server.121/b71292/release_changes.htm#CJAJEECB

• 今回は「 V$CON_SYSSTAT 」ビューをチェック

20

Page 21: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

V$SYSSTATとV$CON_SYSSTAT

CDB$ROOT@ORCL SQL> desc v$sysstat名前 NULL? 型----------------------------- -------- ---------------STATISTIC# NUMBERNAME VARCHAR2(64)CLASS NUMBERVALUE NUMBERSTAT_ID NUMBERCON_ID NUMBER

CDB$ROOT@ORCL SQL> desc v$con_sysstat名前 NULL? 型----------------------------- -------- ---------------STATISTIC# NUMBERNAME VARCHAR2(64)CLASS NUMBERVALUE NUMBERSTAT_ID NUMBERCON_ID NUMBER

おなじ21

Page 22: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

CON_IDって…

Oracle Databaseリファレンス 12c リリース1 (12.1) B71292-01

http://docs.oracle.com/cd/E49329_01/server.121/b71292/refrn30272.htm#i1420473

Oracle Databaseリファレンス 12c リリース1 (12.1) B71292-01

http://docs.oracle.com/cd/E49329_01/server.121/b71292/refrn30716.htm#I1030716

<V$SYSSTAT から抜粋 >

CON_ID NUMBER データが関係するコンテナのID。

可能な値は次のとおり。0: この値は、CDB全体に関連するデータを含む行に使用される。この値は、非CDB内の行にも使用される1: この値は、ルートのみに関連するデータを含む行に使用されるn: nは、データを含む行に適用されるコンテナID

<V$CON_SYSSTAT から抜粋 >

CON_ID NUMBER CDB以外から問合せが行われた場合は、そのインスタンスの統計情報が返され、CON_ID値が0に設定されます。

CDBのルートから問合せが行われた場合は、各コンテナの統計情報が返され、CON_ID値はその統計情報に対応するコンテナを示します。PDBから問合せが行われた場合は、そのPDBの統計情報が返され、CON_ID値がそのPDBのコンテナIDに設定されます。

22

Page 23: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

V$SYSSTATとV$CON_SYSSTAT

データベース CON_ID 参照時のユーザがSYSの場合のV$SYSSTATのCON_ID

参照時のユーザがPERFSTATの場合のV$SYSSTATのCON_ID

CDB$ROOT 1 0 0

PDB(PDBORCL) 3 3 3

- CDB$ROOTで確認できるのは、コンテナ・データベース全体の統計値

- 各PDBではPDB内の統計情報が参照可能

- CDB$ROOTでは、自分(CON_ID=1)だけの統計値を見ることができない

●各データベース内でV$SYSSTATを参照した時のCON_ID

23

Page 24: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

●さらに、各データベース内でV$CON_SYSSTATを参照した時のCON_ID

V$SYSSTATとV$CON_SYSSTAT

データベース V$SYSSTATのCON_ID V$CON_SYSSTATのCON_ID

CON_ID SYS PERFSTAT SYS PERFSTAT

CDB$ROOT 1 0 0 1,2,3,4,5 1

PDB(PDBORCL) 3 3 3 3 3

- V$CON_SYSSTAT をつかうと CDB$ROOTでコンテナ・データベース内の個々の統計値をすべて参照可能

- V$CON_SYSSTATを使っても各PDBではPDB内の統計情報だけが参照可能

24

Page 25: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

●さらに、各データベース内でV$CON_SYSSTATを参照した時のCON_ID

V$SYSSTATとV$CON_SYSSTAT

データベース V$SYSSTATのCON_ID V$CON_SYSSTATのCON_ID

CON_ID SYS PERFSTAT SYS PERFSTAT

CDB$ROOT 1 0 0 1,2,3,4,5 1

PDB(PDBORCL) 3 3 3 3 3

PDB(PDBORCL2) 4 4 4 4 4

- V$CON_SYSSTAT をつかうと CDB$ROOTでコンテナ・データベース内の個々の統計値をすべて参照可能

- V$CON_SYSSTATを使っても各PDBではPDB内の統計情報だけが参照可能

25

Page 26: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

V$CON_SYSSTATって…

CDB$ROOT@ORCL SQL> select * from v$con_sysstat where name = 'execute count'

STATISTIC# NAME CLASS VALUE STAT_ID CON_ID

---------- -------------------- ---------- ---------- ---------- ----------

3890 execute count 64 16268331 2453370665 1

3891 execute count 64 14966176 2453370665 2

3892 execute count 64 14966689 2453370665 3

3893 execute count 64 14966659 2453370665 4

3894 execute count 64 14966176 2453370665 5

26

Page 27: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

V$CON_SYSSTATって…

CDB$ROOT@ORCL SQL> select * from v$con_sysstat where name = 'execute count'

2 union all

3 select * from v$sysstat where name = 'execute count';

STATISTIC# NAME CLASS VALUE STAT_ID CON_ID

---------- -------------------- ---------- ---------- ---------- ----------

3890 execute count 64 16268331 2453370665 1

3891 execute count 64 14966176 2453370665 2

3892 execute count 64 14966689 2453370665 3

3893 execute count 64 14966659 2453370665 4

3894 execute count 64 14966176 2453370665 5

778 execute count 64 16269327 2453370665 0 27

Page 28: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

V$CON_SYSSTATって…

• V$CON_SYSSTAT の縦横を変換して差分計算する。

• ダミーの負荷(@1000_select.pdborcl.loop.sql)かけた結果は、、、、

…..画面

28

Page 29: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

V$CON_SYSSTATって…

CDB$ROOT@ORCL SQL> select * from v$con_sysstat where name = 'execute count'

2 union all

3 select * from v$sysstat where name = 'execute count';

STATISTIC# NAME CLASS VALUE STAT_ID CON_ID

---------- -------------------- ---------- ---------- ---------- ----------

3890 execute count 64 16268331 2453370665 1

3891 execute count 64 14966176 2453370665 2

3892 execute count 64 14966689 2453370665 3

3893 execute count 64 14966659 2453370665 4

3894 execute count 64 14966176 2453370665 5

778 execute count 64 16269327 2453370665 0 29

Page 30: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

V$CON_SYSSTATって…

CDB$ROOT@ORCL SQL> select * from v$con_sysstat where name = 'execute count'

2 union all

3 select * from v$sysstat where name = 'execute count';

STATISTIC# NAME CLASS VALUE STAT_ID CON_ID

---------- -------------------- ---------- ---------- ---------- ----------

3890 execute count 64 16268331 2453370665 1

3891 execute count 64 14966176 2453370665 2

3892 execute count 64 14966689 2453370665 3

3893 execute count 64 14966659 2453370665 4

3894 execute count 64 14966176 2453370665 5

778 execute count 64 16269327 2453370665 0

CON_ID=0 CON_ID=1 CON_ID=2 CON_ID=3 CON_ID=4 CON_ID=5

execute count

execute count

※イメージです

30

CON_ID=2,5はアクティビティーがないPDBかつ、execute count の値が同じ!?

CON_ID=1,3,4はアクティビティーがあるPDB

Page 31: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

V$CON_SYSSTATって…

CDB$ROOT@ORCL SQL> select * from v$con_sysstat where name = 'execute count'

2 union all

3 select * from v$sysstat where name = 'execute count';

STATISTIC# NAME CLASS VALUE STAT_ID CON_ID

---------- -------------------- ---------- ---------- ---------- ----------

3890 execute count 64 16268331 2453370665 1

3891 execute count 64 14966176 2453370665 2

3892 execute count 64 14966689 2453370665 3

3893 execute count 64 14966659 2453370665 4

3894 execute count 64 14966176 2453370665 5

778 execute count 64 16269327 2453370665 0

CON_ID=0 CON_ID=1 CON_ID=2 CON_ID=3 CON_ID=4 CON_ID=5

execute count execute count2 execute count3 execute count4 execute count5

※イメージです

31

CON_ID=2(PDB$SEED)の値をベースライ

ンとして、その差分を合計すると、V$SYSSTATで検索した execute count (CON_ID=0)の値と一致する。

Page 32: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

V$CON_SYSSTATって…

VIEW CON_ID NAME VALUE VALUE –” CON_ID=2”のVALUEV$CON_SYSSTAT 1 execute count 16527933 1312820V$CON_SYSSTAT 2 execute count 15215113 0V$CON_SYSSTAT 3 execute count 15215795 682V$CON_SYSSTAT 4 execute count 15215581 468V$CON_SYSSTAT 5 execute count 15215113 0

sum 1313970V$SYSSTAT 0 execute count 16529083 + con_id=2のVALUE 16529083

32

“execute count” の値で確認

Page 33: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

V$CON_SYSSTATって…

VIEW CON_ID NAME VALUE VALUE –” CON_ID=2”のVALUEV$CON_SYSSTAT 1 physical reads 13045097 446076V$CON_SYSSTAT 2 physical reads 12599021 0V$CON_SYSSTAT 3 physical reads 12599273 252V$CON_SYSSTAT 4 physical reads 12599155 134V$CON_SYSSTAT 5 physical reads 12599021 0

sum 446462V$SYSSTAT 0 physical reads 13045483 + con_id=2のVALUE 13045483

33

“physical reads” の値で確認

Page 34: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

V$CON_SYSSTATって…

VIEW CON_ID NAME VALUE VALUE –” CON_ID=2”のVALUEV$CON_SYSSTAT 1 consistent gets 98434084 4972139V$CON_SYSSTAT 2 consistent gets 93461945 0V$CON_SYSSTAT 3 consistent gets 93464277 2332V$CON_SYSSTAT 4 consistent gets 93463505 1560V$CON_SYSSTAT 5 consistent gets 93461945 0

sum 4976031V$SYSSTAT 0 consistent gets 98437976 + con_id=2のVALUE 98437976

34

“consistent gets” の値で確認

Page 35: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

V$CON_SYSSTATって

• PDB$SEEDの値はコンテナ・データベース内の共通的な値のようだ。

• それぞれのPDBに重複してカウントされているように見える。

• この値を考慮して差分と合計すると、CON_ID=0の値と同じになる。

•各PDBの差分の値を利用することで、PDB個別のアクティビティを把握することができるのではないか。

35

Page 36: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

V$CON_SYSSTATって

• もう一度 PDBORCL2(CON_ID:4)に負荷をかけると、、、

•今度の負荷(1000_select.pdborcl.loop.sh)かけた結果は、、、、

…画面

36

Page 37: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

補足

• 「ダミーの負荷(@1000_select.pdborcl.loop.sql)」負荷をかけた環境でのみ “execute count”がカウントされる

• 「今度の負荷(1000_select.pdborcl.loop.sh)」負荷をかけた環境以外でも “execute count”がカウントされる

• 上記より、同じ処理でも実行方法の違いにより、”execute count”の値が異なって表示されることがある事象を確認。

• つまり、PDBのV$SYSSTATから得られる execute count の値は従来と同じような(期待した通りの)値を示さない場合がある。

※ここでは “期待した通り”とは、「あるPDBで実行したSQLの実行回数は、そのPDBのみの”execute count”としてカウントされること」としています。

37

Page 38: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

PDBのV$SYSSTATでは、、、

•同一の処理にも拘わらず、SQLの実行方法によっては、CDB$ROOTで確認するV$CON_SYSSTATの各PDBの統計値が異なってしまう。

• V$SYSSTATでインスタンス全体の統計値(CON_ID:0)が確認できれば、STATSPACKを利用する分には問題ないだろうか。

38

Page 39: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

CDB$ROOTならSTATSPACK使えるか?…PERFSTATスキーマでCDB$ROOTのV$SQLを確認すると各PDBのSQLの情報は確認できない。なぜなら、CDB$ROOTでは CON_ID=1しか見えないから。 …..画面

CDB$ROOT@ORCL SQL> show userユーザーは"PERFSTAT"です。CDB$ROOT@ORCL SQL> show con_id

CON_ID------------------------------1CDB$ROOT@ORCL SQL> show con_name

CON_NAME------------------------------CDB$ROOT

CDB$ROOT@ORCL SQL> select distinct con_id from v$sql;

CON_ID----------

1

CDB$ROOT@ORCL SQL> select distinct con_id from v$sqlarea;

CON_ID----------

1

39

Page 40: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

●各DBとユーザで確認できるビュー別のCON_ID

各ビューで確認できるCON_IDは、、、

データベース CDB$ROOT PDB(PDBORCL)

ビュー/ユーザ SYS PERFSTAT SYS PERFSTAT

V$SYSSTAT 0 0 3 3

V$SQL 1,2,3,4,5 1 3 3

V$WAITSTAT 1 1 3 3

V$CON_SYSSTAT 1,2,3,4,5 1 3 3

40

Page 41: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

●各DBのPERFSTATスキーマでレポートに必要な情報が取得できているか????

STATSPACKが使えるかといえば、、、

データベース CDB$ROOT PDB(PDBORCL)

ビュー/ユーザ SYS PERFSTAT SYS PERFSTAT

V$SYSSTAT 0 0 3 3

V$SQL 1,2,3,4,5 1 3 3

V$WAITSTAT 1 1 3 3

V$CON_SYSSTAT 1,2,3,4,5 1 3 3

41

×○○××

○××

CDB$ROOTのPERFSTATでは、CON_ID=1のデータしか確認することができない。

つまり、コンテナ・データベース全体の統計値を扱うことができないため、STATSPACKレポートとしてはデータがたりない???

各PDBのPERFSTATで確認できるV$SYSSTAT/V$CON_SYSSTATの値は、SQLの実行方法によっては、別のPDBの統計値が含まれてしまう場合があり、正確性に欠ける。つまり、PDB個別の統計値を扱うことができないため、個別のPDBを評価するためのSTATSPACKレポートとしては???

Page 42: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

Pluggable Database の STATSPACKって…

いまのところよくわからないねぇ…

42

Page 43: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

続報 2013/11/18更新

• 各PDBへの接続がない状態では、CDB$ROOTで検索するV$CON_SYSSTATのそれぞれのCON_ID(2,3,4,5…)は同じ値になることを確認。(※ CON_ID=1でクエリーを実行するため、CON_ID=1の値は異なる)

• 各PDBのセッション別の統計値を合計した値と、V$CON_SYSSTAT の各CON_IDの統計値からCON_ID=2の統計値を差し引いた値が同じ値になることを確認。

• つまり、V$CON_SYSSTATの値は、V$SESSTATの値から導出(sum(value))されていると考えられる。

• V$SESSSTATは該当セッションが切断されると、当然検索できなくなるが、このタイミングで、V$CON_SYSSTATの自身以外のCON_IDに切断されたセッション分の統計値が加算されているように見える。

• 各PDBのV$CON_SYSSTATの値は、自身のPDBで検索できるV$SYSSTATの値と同じであるため、上記の動作からV$SYSSTATにはほかのPDBの統計値が反映されていると考えられる。

• よって、各PDBのSTATSPACKには別のPDBの統計情報が反映されていると考えられるため、純粋に対象のPDBのみを分析する目的としては不向きではないだろうか。

43

Page 44: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

続報 2013/11/18更新

44

CDB$ROOT@ORCL SQL> select 'v$sesstat' viewname ,a.name,sum(b.value),c.con_id2 from v$statname a,v$sesstat b,v$session c3 where a.statistic# = b.statistic#4 and a.name ='execute count'5 and b.sid = c.sid6 and c.con_id = 37 group by a.name,c.con_id8 union all9 select 'v$con_sysstat' viewname, name,value,con_id10 from v$con_sysstat11 where name = 'execute count'12 union all13 select 'v$sysstat' viewname, name ,value,con_id14 from v$sysstat15 where name = 'execute count'16 /

VIEWNAME NAME SUM(B.VALUE) CON_ID------------- ------------------ ------------ ----------v$sesstat execute count 722 3v$con_sysstat execute count 52860484 1v$con_sysstat execute count 50340943 2v$con_sysstat execute count 50341665 3v$con_sysstat execute count 50340943 4v$con_sysstat execute count 50340943 5v$sysstat execute count 52861206 0

7行が選択されました。

CDB$ROOT@ORCL SQL> /

VIEWNAME NAME SUM(B.VALUE) CON_ID------------- ------------------ ------------ ----------v$con_sysstat execute count 52862201 1v$con_sysstat execute count 50341695 2v$con_sysstat execute count 50341695 3v$con_sysstat execute count 50341695 4v$con_sysstat execute count 50341695 5v$sysstat execute count 52862201 0

6行が選択されました。

この間にCON_ID=3のセッションを切断

50341665(CON_ID:3)- 50340943(CON_ID:2)----------------

722

CON_ID2~5まで全部同じ値。よって、CON_ID=1の値も、CON_ID=0の値と同じ。

Page 45: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

Any Question?

@tadayima_jpTadashi Yamashita

45

Page 46: [A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き

Thank you!

@tadayima_jpTadashi Yamashita

46