SlideShare une entreprise Scribd logo
1  sur  62
JPOUG Advent Calendar 2017 – Day15 -
V$SQLとその周辺で
ER図を描いてみよう!
柴田 歩
2
 Bind Peek をもっと使おうぜ!
-JPOUG Advent Calendar 2014-
 http://d.hatena.ne.jp/gonsuke777/20
141205/1417710300
 まだ統計固定で消耗してるの?
-JPOUG Advent Calendar 2015-
 http://d.hatena.ne.jp/gonsuke777/20
151208/1449587953
 SQLチューニングと対戦格闘ゲーム
の類似性について語る
- JPOUG Advent Calendar 2016-
 http://d.hatena.ne.jp/gonsuke777/
20161215/1481795088
 JPOUG Tech Talk Night #6「固定
化か?最新化か?オプティマイザ統
計の運用をもう一度考える。」
 http://d.hatena.ne.jp/gonsuke777/20
160226/1456488499
自己紹介代わりの
過去コンテンツ
 DDD 2013 SQLチューニングに
必要な考え方と最新テクニック
 http://www.oracle.com/technetwo
rk/jp/ondemand/ddd-2013-
2051348-ja.html
コレ
 ブログ「ねら~ITエンジニア雑記」
 http://d.hatena.ne.jp/gonsuke777/
• DDD 2016 SQL性能を最大限に引き出す
DB 12cクエリー・オプティマイザ 新機
能活用と統計情報運用の戦略
• http://www.oracle.com/technetwork/jp/on
demand/ddd-2016-3373953-ja.html
コレ
3
免責事項/注意事項/おことわり
 本資料において示されている見解は、私自身(柴田 歩)の
“独自研究”/”独自検証”/”独自解釈”
に基づいた見解となります。
 したがって Oracle Corporation 及び 日本オラクル社
の見解を必ずしも反映したものではなく、
マニュアル等で公開されている情報や
実際の製品仕様/動作と異なる可能性があります。
 この点は予めご了承ください。
4
はじめに
5
皆さん、ER図って
描いてますか?
はじめに
6
こういうの
7
ER図はアプリ仕様を映す影、とても重要!
(c)三浦健太郎・白泉社 ベルセルク より
8
でもインフラ廻りをやってると
ER図を描く機会なんて
ほぼ無いやなぁ……彡(゚)(゚)
インフラエンジニアのつぶやき
9
だが Oracle Database を
日々弄っているエンジニア
なら しょっちゅう見ている
モノが有る。
10
動的ビューと静的ディクショナリ
動的パフォーマンス・ビュー(V$~表)
– V$SESSION
– V$SQL
– V$SYSSTAT
– Etc…
静的データ・ディクショナリ・ビュー(DBA~表)
– DBA_TABLES
– DBA_SEGMENTS
– DBA_TAB_STATISTICS
– Etc…
11
今回はこの中から
V$SQLとその周辺の
動的ビューをチョイスして、
ER図を描いてみるやで彡(゚)(゚)
12
V$SQL
13
V$SQL
 SQLと実行計画における情報保持の”中核”を成す動的ビュー
– SQL_ID と CHILD_NUMBER で一意になる。
– V$SQLの1レコードが、俗に言う「子カーソル」と対応
– PLAN_HASH_VALUE, SQL_TEXT や BUFFER_GETS, ELAPSED_TIME など
SQL廻りの実行計画関連/統計値関連の情報を保持する。
sql_id child_number sql_text plan_hash_value …
97ykpd1t3b66x 0 WITH WVIEW_JYU1 AS ( … 3426259815 …
97ykpd1t3b66x 1 WITH WVIEW_JYU1 AS ( … 3426259815 …
97ykpd1t3b66x 2 WITH WVIEW_JYU1 AS ( … 3281144771 …
97ykpd1t3b66x 3 WITH WVIEW_JYU1 AS ( … 3281144771 …
0ra4n68mxm4bm 0 SELECT SMGOCHGURIINFO… 1646154537 …
0ra4n68mxm4bm 1 SELECT SMGOCHGURIINFO… 1646154537 …
… … … … …
V$SQL_PLAN
V$SQLTEXT
V$SQLのサンプル
関連表
14
V$SQLのマニュアル記述
 Oracle Databaseリファレンス 12cリリース2 V$SQL
https://docs.oracle.com/cd/E82638_01/REFRN/V-SQL.htm#GUID-2B9340D7-4AA8-4894-94C0-
D5990F67BE75
– V$SQLは、GROUP BY句のない共有SQL領域についての統計情報を
示し、入力された元のSQLテキストの子ごとに1行ずつ表示します。
– V$SQLに表示される統計情報は、通常、問合せの実行が終了した
時点で更新されます。ただし、問合せの実行が長期にわたる場合は、
5秒ごとに更新されます。これによって、実行中に、長時間実行される
SQL文の影響を容易に確認できます。
15
V$SQLのエンティティ表現
 V$SQLをER図のエンティティとして表現すると、こうなる。
– マニュアルにも有る通り、実際は属性がもっと沢山あります。
16
V$SQLAREA
17
V$SQLAREA
 V$SQLとほぼ同一構造だが、親としてのサマリ情報を保持する。
– SQL_ID で一意になる。
– EXECUTIONS, BUFFER_GETS, ELAPSED_TIME などはV$SQLの合計となる。
– V$SQLの「子カーソル」と対を成す「親カーソル」がV$SQLAREA
 V$SQLAREAから見ると、V$SQLのレコード数は1レコード以上
 V$SQLから見ると、V$SQLAREAのレコード数は1レコード
sql_id sql_text plan_hash_value EXECUTIONS …
97ykpd1t3b66x WITH WVIEW_JYU1 AS ( … 3426259815 10 …
0ra4n68mxm4bm SELECT SMGOCHGURIINFO… 1646154537 989 …
… … … …
V$SQLAREA
18
V$SQLAREAのマニュアル記述
 Oracle Databaseリファレンス 12cリリース2 V$SQLAREA
https://docs.oracle.com/cd/E82638_01/REFRN/V-SQLAREA.htm#GUID-09D5169F-EE9E-4297-
8E01-8D191D87BDF7
– V$SQLAREAは、共有SQL領域の統計情報を示し、SQL文字列ごとに1行ず
つ表示します。メモリー内にあり、解析済で、実行準備のできているSQL文
に関する統計情報を提供します。
19
V$SQLAREAのエンティティ/リレーション
 V$SQLAREAをER図のエンティティとして表現すると、こうなる。
– V$SQL とは 1:N(1以上) の リレーション
– SQL_IDで結合される。
20
V$SQLTEXT
21
V$SQLTEXT
 SQLテキストを一定の長さ毎のSQL_TEXT列に保持
– SQL_ID, PIECE で一意になる。
– 複数PIECEから成るレコードのSQL_TEXTを繋ぎ合わせると全体のSQL文になる
 V$SQLAREAから見ると、V$SQLTEXTのレコード数は1レコード以上
 V$SQLTEXTから見ると、V$SQLAREAのレコード数は1レコード
sql_id piece sql_text …
g9gnrhjwajfnn 0 SELECT /*+ MONITOR */ … …
g9gnrhjwajfnn 1 L_B B WHERE A.P_NO2 = B.P_NO … …
g9gnrhjwajfnn 2 TO_CHAR(B.P_DATE, 'YYYYMMDD’) …
… … …
V$SQLTEXT
22
V$SQLTEXTのマニュアル記述
 Oracle Databaseリファレンス 12cリリース2 V$SQLTEXT
https://docs.oracle.com/cd/E82638_01/REFRN/V-SQLTEXT.htm#GUID-72BB2F9E-A521-425C-89F0-
5B4088B73C14
– V$SQLTEXTは、SGA内の共有SQLカーソルに属するSQL文のテキストを示
します。
23
V$SQLTEXTのエンティティ/リレーション
 V$SQLTEXTをER図のエンティティとして表現すると、こう
– V$SQLAREA とは N(1以上):1 の リレーション
– SQL_IDで結合される。
24
V$SQL_PLAN
25
V$SQL_PLAN
 V$SQL(子カーソル)の実行計画をステップ(ID)ごとに保持
– SQL_ID, CHILD_NUMBER, ID で一意になる。
– V$SQLの子カーソル(1レコード)毎に、複数ID(複数ステップ)の情報を保持
– 各ステップ(ID)には実行計画のoperationやobject_name等を保持
 V$SQLから見ると、V$SQL_PLANのレコード数は1レコード以上
 V$SQ_PLANから見ると、V$SQLのレコード数は1レコード
V$SQL_PLANのサンプル
sql_id child_number id operation object_name depth …
g9gnrhjwajfnn 0 0 SELECT STATEMENT 0
g9gnrhjwajfnn 0 1 HASH JOIN 1
g9gnrhjwajfnn 0 2 TABLE ACCESS TEST_TABLE_A 2
g9gnrhjwajfnn 0 3 TABLE ACCESS TBL_B 2
: : : : : :
26
V$SQL_PLANのマニュアル記述
 Oracle Databaseリファレンス 12cリリース2 V$SQL_PLAN
https://docs.oracle.com/cd/E82638_01/REFRN/V-SQL_PLAN.htm#GUID-87561B21-721C-42EB-
8E3D-28251C9BC50C
– V$SQL_PLANは、ライブラリ・キャッシュにロードされる子カーソルごと
の実行計画情報を示します。
27
V$SQL_PLANのエンティティ/リレーション
 V$SQL_PLANをER図のエンティティとして表現すると、こうなる。
– V$SQL とは 1:N(1以上) の リレーション
– SQL_ID, CHILD_NUMBER で結合される。
28
V$SQL_PLANを整形して出力するのがDBMS_XPLAN
 DBMS_XPLAN.DISPLAY_CURSORの実行例
SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(sql_id => 'g9gnrhjwajfnn'));
PLAN_TABLE_OUTPUT
-------------------------------------------------------------------------------------
SQL_ID g9gnrhjwajfnn, child number 0
-------------------------------------
SELECT /*+ MONITOR */ A.* FROM TEST_TABLE_A A , TBL_B B
:
Plan hash value: 1335612663
:
-----------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | | 27 (100)| |
|* 1 | HASH JOIN | | 81 | 2349 | 27 (4)| 00:00:01 |
| 2 | TABLE ACCESS FULL| TEST_TABLE_A | 26 | 416 | 3 (0)| 00:00:01 |
|* 3 | TABLE ACCESS FULL| TBL_B | 300 | 3900 | 24 (5)| 00:00:01 |
-----------------------------------------------------------------------------------
:
V$SQL_PLANの各列に対応
29
V$SQL_PLAN_
STATISTICS
30
V$SQL_PLAN_STATISTICS
 V$SQL_PLANにおけるステップ(ID)ごとの”実行統計”を保持
– SQL_ID, CHILD_NUMBER, OPERATION_ID で一意になる。
– 各ステップ毎におけるelapsed_time, last_elapsed_time等の実行統計を保持
 V$SQL_PLAN_STATISTICS は V$SQL_PLANの属性に相当する
情報(※但し必須ではない)のため、レコードの対応は1: (0 or 1)になる。
V$SQL_PLAN_STATISTICSのサンプル
sql_id child_number operation_id last_elapsed_time elapsed_time …
g9gnrhjwajfnn 0 1 1161324 3357997
g9gnrhjwajfnn 0 2 97137 276762
g9gnrhjwajfnn 0 3 7381 22592
: : : : :
31
V$SQL_PLAN_STATISTICSのマニュアル記述
 Oracle Databaseリファレンス 12cリリース2 V$SQL_PLAN_STATISTICS
https://docs.oracle.com/cd/E82638_01/REFRN/V-SQL_PLAN_STATISTICS.htm#GUID-983DE0B1-
1824-4A03-9C96-DCAFF5662B1A
– V$SQL_PLAN_STATISTICSは、子カーソルごとの行ソース・レベルにおけ
る実行統計を示します。
32
V$SQL_PLAN_STATISTICSのエンティティ/リレーション
 V$SQL_PLAN_STATISTICSのER図エンティティ表現はこう。
– V$SQL_PLAN とは 1: (0 or 1) の関係(※実行統計は採取されない場合も有るため)
– SQL_ID, CHILD_NUMBER, (OPERATION_)ID で結合される。
33
SQLの実行統計が採取される条件(制限事項)
 10gR1以降の機能となります。
 下記の「どちらか」を満たして SQL を実行する必要があります。
– 初期化パラメータ「STATISTICS_LEVEL = ALL」を設定
※セッション単位(ALTER SESSION~)でも設定可能
– SQL に /*+ gather_plan_statistics */ヒントを付与
 対象SQLが終了すると、実行統計が共有プールに反映されます。
– SQLが完全に終了するか、Ctrl+C等で強制終了させる必要があります。
– 強制終了させた場合は、強制終了時点までの実行統計が反映されます。
 SQL終了前に実行計画を出力しても、実行統計は出てきません。
34
DBMS_XPLAN.DISPLAY_CURSORによる出力例
 実行統計出力例(※ALLSTATSがカギ、一部の出力行/出力項目を省略)
SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('80w7gaz4dywud', NULL, 'ALL ALLSTATS LAST'));
PLAN_TABLE_OUTPUT
-----------------------------------------------------------------------------------------------------------------------
SQL_ID 80w7gaz4dywud, child number 0
-------------------------------------
SELECT /*+ gather_plan_statistics */ C.DATBI, C.HI_PR, C.LOW_PR,
:
Plan hash value: 3232858554
----------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name |…| E-Rows |E-Bytes|…| E-Time | A-Rows | A-Time |…|
------------------------------------------------------------------------------------------------------------------ --
| 0 | SELECT STATEMENT | |…| | |…| | 5924 |00:00:53.45 |…|
| 1 | SORT ORDER BY | |…| 414 | 28566 |…| 00:02:43 | 5924 |00:00:53.45 |…|
| 2 | VIEW | |…| 414 | 28566 |…| 00:02:43 | 5924 |00:00:53.43 |…|
| 3 | SORT UNIQUE | |…| 414 | 47610 |…| 00:02:43 | 5924 |00:00:53.42 |…|
| 4 | WINDOW SORT | |…| 414 | 47610 |…| 00:02:43 | 53460 |00:00:53.33 |…|
|* 5 | HASH JOIN | |…| 2722 | 305K|…| 00:02:43 | 53460 |00:00:52.69 |…|
| 6 | TABLE ACCESS BY INDEX ROWID| DBN_FTBPR900 |…| 3640 | 145K|…| 00:02:43 | 54338 |00:00:52.49 |…|
|* 7 | INDEX SKIP SCAN | DBN_FTBPR900PK |…| 2 | |…| 00:02:43 | 54338 |00:00:51.98 |…|
|* 8 | TABLE ACCESS FULL | DBN_FTBAT045 |…| 11477 | 829K|…| 00:00:01 | 22310 |00:00:00.01 |…|
----------------------------------------------------------------------------------------------------------------------
:
実行統計
ここが遅そう…
35
実行統計について詳しく知りたい方は
DDD 2013の資料を見よう!(ステマ)
Oracle DDD 2013
SQLチューニングに必要な考え方と最新テクニック
http://www.oracle.com/webfolder/technetwork/jp/ondemand/ddd2013/A-1.pdf
36
V$SQL_BIND_
CAPTURE
37
V$SQL_BIND_CAPTURE
 V$SQL(子カーソル)毎のバインド変数関連の情報を保持
– SQL_ID, CHILD_NUMBER, POSITION で一意になる。
– V$SQLの1レコード毎に、複数バインド変数の情報を保持
– 変数名やデータ型、データ最大長等の情報を格納する。
 全てのSQLでバインド変数が使われている訳ではなく、
バインド変数が複数使われる場合も有るので、V$SQLから見た
V$SQL_BIND_CAPTUREのレコード数は0~複数 となる。
V$SQL_BIND_CAPTUREのサンプル
sql_id child_number position name datatype_string max_length value_string …
7fwycf57590uk 0 1 :B1 VARCHAR2(128) 128 20120801
7fwycf57590uk 0 2 :B2 VARCHAR2(128) 128 20120802
: : : : : :
38
V$SQL_BIND_CAPTUREのマニュアル記述
 Oracle Databaseリファレンス 12cリリース2 V$SQL_BIND_CAPTURE
https://docs.oracle.com/cd/E82638_01/REFRN/V-SQL_BIND_CAPTURE.htm#GUID-D353F4BE-5943-
4F5B-A99B-BC9505E9579C
– V$SQL_BIND_CAPTUREは、SQLカーソルによって使用されたバインド変数に関する情報を示しま
す。ビュー内の各行には、カーソルで定義されたバインド変数1個に関する情報が格納されています。
次のものが含まれる。
 そのバインド変数を定義するカーソルへの参照
(hash_value, address)は親カーソル用および(hash_value, child_address)は子カーソル用
 バインド・メタデータ
 バインド変数の名前、位置、データ型、キャラクタ・セットID、精度、スケールおよび最大長。
 バインド・データ
バインド変数に対応付けられたSQL文の以前の実行中に、バインド変数に対して使用されたバインド値の1つ。このビュー
では、バインド変数が取得されない場合があります。バインド変数の型が単純な場合(LONG、LOBおよびADTデータ型は
除外)またはバインド変数がSQL文のWHERE句またはHAVING句で使用されている場合にのみ、このビューでバインド値
が表示されます。
– STATISTICS_LEVEL初期化パラメータがBASICに設定されている場合、バインド取得は実行できま
せん。このビューは、(HASH_VALUE, ADDRESS)のV$SQLAREAおよび(HASH_VALUE,
CHILD_ADDRESS)のV$SQLと結合できます。
39
V$SQL_BIND_CAPTUREのエンティティ/リレーション
 V$SQL_BIND_CAPTUREのER図エンティティ表現はこう。
– V$SQL とは 1: (0 ~ N) の リレーション
– SQL_ID, CHILD_NUMBER で結合される。
40
V$SQLSTATS
41
V$SQLSTATS
 V$SQLAREAとほぼ同一構造だが、「高速かつスケーラブルで、
データ保存の仕組みも優れている。 (by マニュアル) 」
– V$SQLAREA同様に SQL_ID で一意になる。
– EXECUTIONS, BUFFER_GETS, ELAPSED_TIME などの列も同一
– 最終AWRスナップ後のDELTA値を保持するDELTA_***列が有るのが最大の違い
 マニュアルには「カーソルが共有プールで無効になった後でも、
統計情報を表示できます。」と書いてある。
– どう解釈するかだが「カーソル無効化 =レコード無し」と捉えると、
V$SQLAREAにレコードが無くてもV$SQLSTATSにはレコード有と判断できる。
sql_id executions elapsed_time delta_execution
_count
delta_elapsed_ti
me
…
97ykpd1t3b66x 4 1175441 1 10236 …
0ra4n68mxm4bm 989 23198012 0 0 …
… …
V$SQLSTATS
42
V$SQLSTATSのマニュアル記述
 Oracle Databaseリファレンス 12cリリース2 V$SQLSTATS
https://docs.oracle.com/cd/E82638_01/REFRN/V-SQLSTATS.htm#GUID-495DD17D-6741-433F-
871D-C965EB221DA9
– V$SQLSTATSは、SQLカーソルに関する基本的なパフォーマンス統計情報
を示し、SQL文ごとに1行ずつ(つまり、SQL_IDの一意の値ごとに1行ずつ)
表示します。V$SQLSTATSの各列の定義は、V$SQLビューおよび
V$SQLAREAビューと同じです。
– ただし、V$SQLSTATSビューは、V$SQLおよびV$SQLAREAに比べて、高
速かつスケーラブルで、データ保存の仕組みも優れています(カーソルが共
有プールで無効になった後でも、統計情報を表示できます)。
– V$SQLSTATSは、V$SQLおよびV$SQLAREAに表示される列のサブセット
を含みます。
43
V$SQLSTATSのエンティティ/リレーション
 V$SQLSTATSをER図のエンティティとして表現すると、こうなる。
– V$SQLAREA とは基本は 1:1 の リレーション
– ただし「カーソル無効 = レコード無し」と捉えた場合は、V$SQLSTATSから
見たV$SQLAREAのレコード数は 0 or 1 ※本資料ではこちらの解釈を採用
– SQL_IDで結合される。
44
V$SQLSTATS_
PLAN_HASH
45
V$SQLSTATS_PLAN_HASH
 V$SQLSTATSと同一構造だが、SQL_ID と PLAN_HASH_VALUE毎の
サマリー情報を保持する。
– SQL_ID と PLAN_HASH_VALUE で一意になる。
– 列は通常の列、DELTA_***列含めてV$SQLSTATSと同一
 V$SQLは同一PLAN_HASH_VALUEでも異なるレコードになるケースが有る
ため、V$SQLSTATS_PLAN_HASHから見たV$SQLのレコード数は複数
– 「カーソル無効化 =レコード無し」と捉えると、V$SQLAREA ⇔ V$SQLSTATS
と同様にV$SQL側のレコードが無いケースも有り得る。
sql_id plan_hash_v
alue
executions elapsed_time delta_executio
n_count
delta_elapsed_
time
…
7fwycf57590uk 1694919098 2 25158 1 14995 …
7fwycf57590uk 1458270739 3 1165278 0 0 …
… …
V$SQLSTATS_PLAN_HASHのサンプル
46
V$SQLSTATS_PLAN_HASHのマニュアル記述
 Oracle Databaseリファレンス 12cリリース2 V$SQLSTATS_PLAN_HASH
https://docs.oracle.com/cd/E82638_01/REFRN/V-SQLSTATS_PLAN_HASH.htm#GUID-
B94CE96E-59D1-45AB-B845-B80F76397A9C
– V$SQLSTATS_PLAN_HASHは、SQLカーソルに関する基本的なパフォーマンス統計
情報を示し、SQL文の実行計画ごとに1行ずつ(つまり、SQL_IDと
PLAN_HASH_VALUEの一意の組合せごとに1行ずつ)表示します。
– V$SQLSTATS_PLAN_HASHの列は、V$SQLSTATSの列と同じです。
47
V$SQLSTATS_PLAN_HASHのエンティティ/リレーション
 V$SQLSTATS_PLAN_HASHのER図エンティティ表現はこう。
– V$SQLをSQL_IDとPLAN_HASH_VALUEでサマリしているため、1:Nの関係
– ただし「カーソル無効 = レコード無し」と捉えた場合は、V$SQLSTATS_PLAN_HASH から
見た V$SQL のレコード数は0も有り得る。※本資料ではこちらの解釈を採用
– SQL_ID と PLAN_HASH_VALUE で結合される。
48
V$SQL_SHARED_
CURSOR
49
V$SQL_SHARED_CURSOR
 V$SQLのレコード(子カーソル)が増える(共有されない)理由を保持
– SQL_ID と CHILD_NUMBER で一意になる。
– V$SQLのレコードと1対1になるため、同ビューの属性ビューとして定義できる。
– Translation_mismatch や use_feedback_stats等の、
カーソルが共有されない理由を保持しています。
sql_id child_number translation_misma
tch
load_optimizer_sta
ts
use_feedback_stat
s
…
7fwycf57590uk 0 N Y N …
7fwycf57590uk 1 N N N …
g9gnrhjwajfnn 0 N N Y …
g9gnrhjwajfnn 1 Y N Y …
g9gnrhjwajfnn 2 Y N Y …
g9gnrhjwajfnn 3 Y N N …
… …
V$SQL_SHARED_CURSORのサンプル
50
V$SQL_SHARED_CURSORのマニュアル記述
 Oracle Databaseリファレンス 12cリリース2 V$SQL_SHARED_CURSOR
https://docs.oracle.com/cd/E82638_01/REFRN/V-SQL_SHARED_CURSOR.htm#GUID-
4993A6DE-5658-4745-B43E-F5AD9DB8DCCC
 V$SQL_SHARED_CURSORは、特定の子カーソルが既存の子カーソル
と共有されない理由を示します。それぞれの列は、カーソルが共有され
ない具体的な理由を示します。
51
V$SQL_SHARED_CURSORのエンティティ表現
 V$SQL_SHARED_CURSORをER図のエンティティとして表現すると、
こうなる。
– V$SQLのレコードと1対1になるため、同ビューの属性として定義できる。
– V$SQLと一体化しないのは、何かしら理由が有るんやろうか?彡(゚)(゚)
52
V$SQL周辺の
ER図を俯瞰
53
V$SQL周辺のER図を俯瞰
 http://photozou.jp/photo/photo_only/310073/252932724
54
V$SQLを中心に広がる
リレーショナルな世界と、
そこから透けて見える
Oracle Databaseの動作
55
ER図最高や!
彡(^)(^)
56
こういう風に役立つ
ER図/モデリング
のスキルは、アプリにも
インフラにも役立つ
最強スキルなんやで彡(゚)(゚)
57
まとめ?
58
ER図はインフラエンジニアにとっても強力な武器
(c)三浦健太郎・白泉社
ベルセルク より
59
ER図が解ればアプリ/製品の動きが解る
(c)三浦健太郎・白泉社 ベルセルク より
60
強力な武器を手に闘い抜け!
(c)三浦健太郎・白泉社
ベルセルク より
E R 図
61
画像引用元
(c)三浦健太郎・白泉社 ベルセルク
62
おわり
ご清聴、サンガツだったやで!

Contenu connexe

Tendances

待ち事象から考える、Sql server の改善ポイント
待ち事象から考える、Sql server の改善ポイント待ち事象から考える、Sql server の改善ポイント
待ち事象から考える、Sql server の改善ポイント
Masayuki Ozawa
 

Tendances (20)

待ち事象から考える、Sql server の改善ポイント
待ち事象から考える、Sql server の改善ポイント待ち事象から考える、Sql server の改善ポイント
待ち事象から考える、Sql server の改善ポイント
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
 
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
 
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
 
アクセスプラン(実行計画)の読み方入門
アクセスプラン(実行計画)の読み方入門アクセスプラン(実行計画)の読み方入門
アクセスプラン(実行計画)の読み方入門
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
TIME_WAITに関する話
TIME_WAITに関する話TIME_WAITに関する話
TIME_WAITに関する話
 
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
 
トランザクションの設計と進化
トランザクションの設計と進化トランザクションの設計と進化
トランザクションの設計と進化
 
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
 
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身
 
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
 

Similaire à V$SQLとその周辺でER図を描いてみよう!

[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き
[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き
[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き
Insight Technology, Inc.
 
Maatkit で MySQL チューニング
Maatkit で MySQL チューニングMaatkit で MySQL チューニング
Maatkit で MySQL チューニング
Kensuke Nagae
 
Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理
土岐 孝平
 
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
Naoyuki Yamada
 
[INSIGHT OUT 2011] A24 sql server wait events(mario broodbakker)
[INSIGHT OUT 2011] A24 sql server wait events(mario broodbakker)[INSIGHT OUT 2011] A24 sql server wait events(mario broodbakker)
[INSIGHT OUT 2011] A24 sql server wait events(mario broodbakker)
Insight Technology, Inc.
 
[db tech showcase Tokyo 2016] A32: Oracle脳で考えるSQL Server運用 by 株式会社インサイトテクノロジー...
[db tech showcase Tokyo 2016] A32: Oracle脳で考えるSQL Server運用 by 株式会社インサイトテクノロジー...[db tech showcase Tokyo 2016] A32: Oracle脳で考えるSQL Server運用 by 株式会社インサイトテクノロジー...
[db tech showcase Tokyo 2016] A32: Oracle脳で考えるSQL Server運用 by 株式会社インサイトテクノロジー...
Insight Technology, Inc.
 
T sql の parse と generator
T sql の parse と generatorT sql の parse と generator
T sql の parse と generator
Oda Shinsuke
 
My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1
Makoto Haruyama
 

Similaire à V$SQLとその周辺でER図を描いてみよう! (20)

2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 15
2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 152016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 15
2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 15
 
PostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU CollationPostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU Collation
 
[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き
[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き
[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き
 
Maatkit で MySQL チューニング
Maatkit で MySQL チューニングMaatkit で MySQL チューニング
Maatkit で MySQL チューニング
 
Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理
 
MySQLerの7つ道具
MySQLerの7つ道具MySQLerの7つ道具
MySQLerの7つ道具
 
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
 
PostgreSQL Unconference #26 No Error on PostgreSQL
PostgreSQL Unconference #26 No Error on PostgreSQLPostgreSQL Unconference #26 No Error on PostgreSQL
PostgreSQL Unconference #26 No Error on PostgreSQL
 
Autonomous Database で Oracle Database19c 新機能 を味わう。
Autonomous Database で Oracle Database19c 新機能 を味わう。Autonomous Database で Oracle Database19c 新機能 を味わう。
Autonomous Database で Oracle Database19c 新機能 を味わう。
 
Bind Peek をもっと使おうぜ!(柴田 歩) - JPOUG Advent Calendar 2014(Day 5) -
Bind Peek をもっと使おうぜ!(柴田 歩) - JPOUG Advent Calendar 2014(Day 5) -Bind Peek をもっと使おうぜ!(柴田 歩) - JPOUG Advent Calendar 2014(Day 5) -
Bind Peek をもっと使おうぜ!(柴田 歩) - JPOUG Advent Calendar 2014(Day 5) -
 
System2 s2
System2 s2System2 s2
System2 s2
 
PandasとSQLとの比較
PandasとSQLとの比較PandasとSQLとの比較
PandasとSQLとの比較
 
[INSIGHT OUT 2011] A24 sql server wait events(mario broodbakker)
[INSIGHT OUT 2011] A24 sql server wait events(mario broodbakker)[INSIGHT OUT 2011] A24 sql server wait events(mario broodbakker)
[INSIGHT OUT 2011] A24 sql server wait events(mario broodbakker)
 
about dakota6.7 gui
about dakota6.7 guiabout dakota6.7 gui
about dakota6.7 gui
 
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...
 
20181212 - PGconf.ASIA - LT
20181212 - PGconf.ASIA - LT20181212 - PGconf.ASIA - LT
20181212 - PGconf.ASIA - LT
 
[db tech showcase Tokyo 2016] A32: Oracle脳で考えるSQL Server運用 by 株式会社インサイトテクノロジー...
[db tech showcase Tokyo 2016] A32: Oracle脳で考えるSQL Server運用 by 株式会社インサイトテクノロジー...[db tech showcase Tokyo 2016] A32: Oracle脳で考えるSQL Server運用 by 株式会社インサイトテクノロジー...
[db tech showcase Tokyo 2016] A32: Oracle脳で考えるSQL Server運用 by 株式会社インサイトテクノロジー...
 
VerilatorとSystemC
VerilatorとSystemCVerilatorとSystemC
VerilatorとSystemC
 
T sql の parse と generator
T sql の parse と generatorT sql の parse と generator
T sql の parse と generator
 
My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1
 

Dernier

Dernier (12)

Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 

V$SQLとその周辺でER図を描いてみよう!