SlideShare a Scribd company logo
1 of 117
Download to read offline
潮溜まりでジャブジャブ、
SQLチューニング

Rock Pool / Michael

Hiroshi Sekiguchi ( @discus_hamburg )
13年11月16日土曜日
自己紹介

@discus_hamburg

関口 裕士 (屋号 Stargrass Software)
最近の仕事 : Software Engineer < DB Engineer
最近は医者のような問診に興味を持っている
JPOUG ボードメンバー
Oracle ACE (2012)
Blog : Mac De Oracle / http://discus-hamburg.cocolog-nifty.com

13年11月16日土曜日
皆が、Deep   dive、Deep   diveというの
で、Oracle   Coreの深い海ではなく沢⼭山
のSQL⽂文が泳ぐ浅瀬へShallow   Diveす
ることに決めた天の邪⻤⿁鬼。

13年11月16日土曜日
潮溜溜まりに取り残された、⼀一癖ありそう
なSQL⽂文を釣り上げてみると...
いろいろな病に苦しんでいた。
治療療できたのか、治療療できなかったの
か...

13年11月16日土曜日
釣り上げたSQL文の病名
過フィルタリング症候群
クエリー分裂症
バッファキャッシュ欠乏症
参照整合性制約アレルギー

13年11月16日土曜日
過フィルタリング症候群

13年11月16日土曜日
ウォームアップ!

13年11月16日土曜日
クエリー分裂症

13年11月16日土曜日
釣り上げたSQLは、一匹で
あるかのように見えるが...
散らばっている情報が治療
を難しくする...
13年11月16日土曜日
問診結果
OLTPで分散クエリーを利用している。(分散DB)
OLTPなので大きなクエリーではないものの非機能要
件が厳しいので可能な限り改善したい。
大人の事情により、SQL文だけしか変更できない。
(・・)

13年11月16日土曜日
分散クエリーとリモートクエリー

どのような
クエリーなのでしょう?

13年11月16日土曜日
分散クエリー

13年11月16日土曜日
リモートクエリー

13年11月16日土曜日
釣り上げたSQL文
SELECT
	
  	
  	
  	
  	
  	
  	
  	
  /*+	
  USE_NL(tab1	
  tab2	
  tab3	
  tab4)	
  */
	
  	
  	
  	
  	
  	
  	
  	
  tab4.*
FROM
	
  	
  	
  	
  	
  	
  	
  	
  tab1
	
  	
  	
  	
  	
  	
  	
  	
  INNER	
  JOIN	
  tab2
	
  	
  	
  	
  	
  	
  	
  	
  ON
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  tab1.unique#	
  =	
  tab2.unique#	
  
	
  	
  	
  	
  	
  	
  	
  	
  AND	
  tab1.unique#	
  IN	
  (1,2)
	
  	
  	
  	
  	
  	
  	
  	
  INNER	
  JOIN	
  tab3
	
  	
  	
  	
  	
  	
  	
  	
  ON
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  tab2.unique#	
  =	
  tab3.unique#	
  
	
  	
  	
  	
  	
  	
  	
  	
  AND	
  tab2.branch#	
  =	
  tab3.branch#
	
  	
  	
  	
  	
  	
  	
  	
  INNER	
  JOIN	
  tab4
	
  	
  	
  	
  	
  	
  	
  	
  ON
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  tab3.unique#	
  =	
  tab4.unique#	
  
	
  	
  	
  	
  	
  	
  	
  	
  AND	
  tab3.branch#	
  =	
  tab4.branch#
	
  	
  	
  	
  	
  	
  	
  	
  AND	
  tab3.loc#	
  	
  	
  	
  =	
  tab4.loc#
;
13年11月16日土曜日
釣り上げたSQL文 (実行計画)
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  Id	
  	
  |	
  Operation	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Name	
  	
  	
  	
  |	
  Rows	
  	
  |	
  Bytes	
  |	
  Cost	
  (%CPU)|	
  Time	
  	
  	
  	
  	
  |	
  Inst	
  	
  	
  |IN-­‐OUT|
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  	
  	
  0	
  |	
  SELECT	
  STATEMENT	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  20000	
  |	
  	
  	
  	
  11M|	
  	
  	
  603	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  1	
  |	
  	
  NESTED	
  LOOPS	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  2	
  |	
  	
  	
  NESTED	
  LOOPS	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  20000	
  |	
  	
  	
  	
  11M|	
  	
  	
  603	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  3	
  |	
  	
  	
  	
  NESTED	
  LOOPS	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  200	
  |	
  15600	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  4	
  |	
  	
  	
  	
  	
  NESTED	
  LOOPS	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  200	
  |	
  13000	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  5	
  |	
  	
  	
  	
  	
  	
  REMOTE	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  TAB3	
  	
  	
  	
  |	
  	
  	
  200	
  |	
  	
  7800	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |	
  PDBOR~	
  |	
  R-­‐>S	
  |
|	
  	
  	
  6	
  |	
  	
  	
  	
  	
  	
  REMOTE	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  TAB2	
  	
  	
  	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  26	
  |	
  	
  	
  	
  	
  0	
  	
  	
  (0)|	
  00:00:01	
  |	
  PDBOR~	
  |	
  R-­‐>S	
  |
|	
  	
  	
  7	
  |	
  	
  	
  	
  	
  REMOTE	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  TAB1	
  	
  	
  	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  13	
  |	
  	
  	
  	
  	
  0	
  	
  	
  (0)|	
  00:00:01	
  |	
  PDBOR~	
  |	
  R-­‐>S	
  |
|*	
  	
  8	
  |	
  	
  	
  	
  INDEX	
  RANGE	
  SCAN	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  PK_TAB4	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  2	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  9	
  |	
  	
  	
  TABLE	
  ACCESS	
  BY	
  INDEX	
  ROWID|	
  TAB4	
  	
  	
  	
  |	
  	
  	
  100	
  |	
  51400	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
Predicate	
  Information	
  (identified	
  by	
  operation	
  id):
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
	
  	
  	
  8	
  -­‐	
  access("TAB3"."UNIQUE#"="TAB4"."UNIQUE#"	
  AND	
  "TAB3"."BRANCH#"="TAB4"."BRANCH#"	
  AND
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  "TAB3"."LOC#"="TAB4"."LOC#")
	
  	
  	
  	
  	
  	
  	
  filter("TAB4"."UNIQUE#"=1	
  OR	
  "TAB4"."UNIQUE#"=2)

13年11月16日土曜日
釣り上げたSQL文 (実行計画)
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  Id	
  	
  |	
  Operation	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Name	
  	
  	
  	
  |	
  Rows	
  	
  |	
  Bytes	
  |	
  Cost	
  (%CPU)|	
  Time	
  	
  	
  	
  	
  |	
  Inst	
  	
  	
  |IN-­‐OUT|
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  	
  	
  0	
  |	
  SELECT	
  STATEMENT	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  20000	
  |	
  	
  	
  	
  11M|	
  	
  	
  603	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  1	
  |	
  	
  NESTED	
  LOOPS	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  2	
  |	
  	
  	
  NESTED	
  LOOPS	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  20000	
  |	
  	
  	
  	
  11M|	
  	
  	
  603	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  3	
  |	
  	
  	
  	
  NESTED	
  LOOPS	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  200	
  |	
  15600	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  4	
  |	
  	
  	
  	
  	
  NESTED	
  LOOPS	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  200	
  |	
  13000	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  5	
  |	
  	
  	
  	
  	
  	
  REMOTE	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  TAB3	
  	
  	
  	
  |	
  	
  	
  200	
  |	
  	
  7800	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |	
  PDBOR~	
  |	
  R-­‐>S	
  |
|	
  	
  	
  6	
  |	
  	
  	
  	
  	
  	
  REMOTE	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  TAB2	
  	
  	
  	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  26	
  |	
  	
  	
  	
  	
  0	
  	
  	
  (0)|	
  00:00:01	
  |	
  PDBOR~	
  |	
  R-­‐>S	
  |
|	
  	
  	
  7	
  |	
  	
  	
  	
  	
  REMOTE	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  TAB1	
  	
  	
  	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  13	
  |	
  	
  	
  	
  	
  0	
  	
  	
  (0)|	
  00:00:01	
  |	
  PDBOR~	
  |	
  R-­‐>S	
  |
|*	
  	
  8	
  |	
  	
  	
  	
  INDEX	
  RANGE	
  SCAN	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  PK_TAB4	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  2	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  9	
  |	
  	
  	
  TABLE	
  ACCESS	
  BY	
  INDEX	
  ROWID|	
  TAB4	
  	
  	
  	
  |	
  	
  	
  100	
  |	
  51400	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
Predicate	
  Information	
  (identified	
  by	
  operation	
  id):
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
	
  	
  	
  8	
  -­‐	
  access("TAB3"."UNIQUE#"="TAB4"."UNIQUE#"	
  AND	
  "TAB3"."BRANCH#"="TAB4"."BRANCH#"	
  AND
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  "TAB3"."LOC#"="TAB4"."LOC#")
	
  	
  	
  	
  	
  	
  	
  filter("TAB4"."UNIQUE#"=1	
  OR	
  "TAB4"."UNIQUE#"=2)

13年11月16日土曜日
釣り上げたSQL文 (DB Link..)
●USER_DB_LINKSより
DB_LINK	
  	
  	
  	
  USERNAME	
  	
  	
  HOST
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐	
  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐	
  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
PDBORCL_R	
  	
  SCOTT	
  	
  	
  	
  	
  	
  PDBORCL_R
●USER_SYNONYMSより
SYNONYM_NAME	
  	
  	
  	
  	
  	
  	
  	
  	
  TABLE_NAME	
  	
  	
  DB_LINK
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐	
  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐	
  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
TAB1	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  TAB1	
  	
  	
  	
  	
  	
  	
  	
  	
  PDBORCL_R
TAB2	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  TAB2	
  	
  	
  	
  	
  	
  	
  	
  	
  PDBORCL_R
TAB3	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  TAB3	
  	
  	
  	
  	
  	
  	
  	
  	
  PDBORCL_R

13年11月16日土曜日
釣り上げたSQL文 (DB Link..)
●USER_DB_LINKSより
DB_LINK	
  	
  	
  	
  USERNAME	
  	
  	
  HOST
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐	
  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐	
  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
PDBORCL_R	
  	
  SCOTT	
  	
  	
  	
  	
  	
  PDBORCL_R

DB Link先は1つで
3表が同一リモートデ
ータベースに存在する

●USER_SYNONYMSより
SYNONYM_NAME	
  	
  	
  	
  	
  	
  	
  	
  	
  TABLE_NAME	
  	
  	
  DB_LINK
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐	
  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐	
  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
TAB1	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  TAB1	
  	
  	
  	
  	
  	
  	
  	
  	
  PDBORCL_R
TAB2	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  TAB2	
  	
  	
  	
  	
  	
  	
  	
  	
  PDBORCL_R
TAB3	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  TAB3	
  	
  	
  	
  	
  	
  	
  	
  	
  PDBORCL_R

13年11月16日土曜日
釣り上げたSQL文 (表の配置)

13年11月16日土曜日
釣り上げたSQL文 (表の配置)
リモート表の3
表は同一インスタ
ンスにある

問題のSQL文は
このインスタンス
から実行される。
13年11月16日土曜日
釣り上げたSQL文 (実行計画)
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  Id	
  	
  |	
  Operation	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Name	
  	
  	
  	
  |	
  Rows	
  	
  |	
  Bytes	
  |	
  Cost	
  (%CPU)|	
  Time	
  	
  	
  	
  	
  |	
  Inst	
  	
  	
  |IN-­‐OUT|
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  	
  	
  0	
  |	
  SELECT	
  STATEMENT	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  20000	
  |	
  	
  	
  	
  11M|	
  	
  	
  603	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  1	
  |	
  	
  NESTED	
  LOOPS	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  2	
  |	
  	
  	
  NESTED	
  LOOPS	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  20000	
  |	
  	
  	
  	
  11M|	
  	
  	
  603	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  3	
  |	
  	
  	
  	
  NESTED	
  LOOPS	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  200	
  |	
  15600	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  4	
  |	
  	
  	
  	
  	
  NESTED	
  LOOPS	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  200	
  |	
  13000	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  5	
  |	
  	
  	
  	
  	
  	
  REMOTE	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  TAB3	
  	
  	
  	
  |	
  	
  	
  200	
  |	
  	
  7800	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |	
  PDBOR~	
  |	
  R-­‐>S	
  |
|	
  	
  	
  6	
  |	
  	
  	
  	
  	
  	
  REMOTE	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  TAB2	
  	
  	
  	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  26	
  |	
  	
  	
  	
  	
  0	
  	
  	
  (0)|	
  00:00:01	
  |	
  PDBOR~	
  |	
  R-­‐>S	
  |
|	
  	
  	
  7	
  |	
  	
  	
  	
  	
  REMOTE	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  TAB1	
  	
  	
  	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  13	
  |	
  	
  	
  	
  	
  0	
  	
  	
  (0)|	
  00:00:01	
  |	
  PDBOR~	
  |	
  R-­‐>S	
  |
|*	
  	
  8	
  |	
  	
  	
  	
  INDEX	
  RANGE	
  SCAN	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  PK_TAB4	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  2	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  9	
  |	
  	
  	
  TABLE	
  ACCESS	
  BY	
  INDEX	
  ROWID|	
  TAB4	
  	
  	
  	
  |	
  	
  	
  100	
  |	
  51400	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
Predicate	
  Information	
  (identified	
  by	
  operation	
  id):
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
	
  	
  	
  8	
  -­‐	
  access("TAB3"."UNIQUE#"="TAB4"."UNIQUE#"	
  AND	
  "TAB3"."BRANCH#"="TAB4"."BRANCH#"	
  AND
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  "TAB3"."LOC#"="TAB4"."LOC#")
	
  	
  	
  	
  	
  	
  	
  filter("TAB4"."UNIQUE#"=1	
  OR	
  "TAB4"."UNIQUE#"=2)

13年11月16日土曜日
釣り上げたSQL文 (実行計画)
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  Id	
  	
  |	
  Operation	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Name	
  	
  	
  	
  |	
  Rows	
  	
  |	
  Bytes	
  |	
  Cost	
  (%CPU)|	
  Time	
  	
  	
  	
  	
  |	
  Inst	
  	
  	
  |IN-­‐OUT|
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  	
  	
  0	
  |	
  SELECT	
  STATEMENT	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  20000	
  |	
  	
  	
  	
  11M|	
  	
  	
  603	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  1	
  |	
  	
  NESTED	
  LOOPS	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  2	
  |	
  	
  	
  NESTED	
  LOOPS	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  20000	
  |	
  	
  	
  	
  11M|	
  	
  	
  603	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  3	
  |	
  	
  	
  	
  NESTED	
  LOOPS	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  200	
  |	
  15600	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  4	
  |	
  	
  	
  	
  	
  NESTED	
  LOOPS	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  200	
  |	
  13000	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  5	
  |	
  	
  	
  	
  	
  	
  REMOTE	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  TAB3	
  	
  	
  	
  |	
  	
  	
  200	
  |	
  	
  7800	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |	
  PDBOR~	
  |	
  R-­‐>S	
  |
|	
  	
  	
  6	
  |	
  	
  	
  	
  	
  	
  REMOTE	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  TAB2	
  	
  	
  	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  26	
  |	
  	
  	
  	
  	
  0	
  	
  	
  (0)|	
  00:00:01	
  |	
  PDBOR~	
  |	
  R-­‐>S	
  |
|	
  	
  	
  7	
  |	
  	
  	
  	
  	
  REMOTE	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  TAB1	
  	
  	
  	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  13	
  |	
  	
  	
  	
  	
  0	
  	
  	
  (0)|	
  00:00:01	
  |	
  PDBOR~	
  |	
  R-­‐>S	
  |
|*	
  	
  8	
  |	
  	
  	
  	
  INDEX	
  RANGE	
  SCAN	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  PK_TAB4	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  2	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  9	
  |	
  	
  	
  TABLE	
  ACCESS	
  BY	
  INDEX	
  ROWID|	
  TAB4	
  	
  	
  	
  |	
  	
  	
  100	
  |	
  51400	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
Predicate	
  Information	
  (identified	
  by	
  operation	
  id):
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐

この実行計画はローカルデー

	
  	
  	
  8	
  -­‐	
  access("TAB3"."UNIQUE#"="TAB4"."UNIQUE#"	
  AND	
  "TAB3"."BRANCH#"="TAB4"."BRANCH#"	
  AND
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  "TAB3"."LOC#"="TAB4"."LOC#")
	
  	
  	
  	
  	
  	
  	
  filter("TAB4"."UNIQUE#"=1	
  OR	
  "TAB4"."UNIQUE#"=2)

タベースで取得されたもの

13年11月16日土曜日
リモートクエリーの実行計画
Remote	
  SQL	
  Information	
  (identified	
  by	
  operation	
  id):
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
	
  	
  	
  5	
  -­‐	
  SELECT	
  /*+	
  USE_NL	
  ("TAB3")	
  */	
  "UNIQUE#","BRANCH#"
	
  	
  	
  	
  	
  	
  	
  ,"LOC#"	
  FROM	
  "TAB3"	
  "TAB3"	
  WHERE
	
  	
  	
  	
  	
  	
  	
  "UNIQUE#"=1	
  OR	
  "UNIQUE#"=2	
  (accessing	
  'PDBORCL_R'	
  )
	
  	
  	
  6	
  -­‐	
  SELECT	
  /*+	
  USE_NL	
  ("TAB2")	
  */	
  "UNIQUE#","BRANCH#"	
  
	
  	
  	
  	
  	
  	
  	
  	
  FROM	
  "TAB2"	
  "TAB2"	
  WHERE	
  "BRANCH#"=:1
	
  	
  	
  	
  	
  	
  	
  	
  AND	
  "UNIQUE#"=:2	
  AND	
  ("UNIQUE#"=1	
  OR	
  "UNIQUE#"=2)	
  
	
  	
  	
  	
  	
  	
  	
  	
  (accessing	
  'PDBORCL_R'	
  )
	
  	
  	
  7	
  -­‐	
  SELECT	
  /*+	
  USE_NL	
  ("TAB1")	
  */	
  "UNIQUE#"	
  
	
  	
  	
  	
  	
  	
  	
  	
  FROM	
  "TAB1"	
  "TAB1"	
  WHERE	
  "UNIQUE#"=:1	
  AND
	
  	
  	
  	
  	
  	
  	
  	
  ("UNIQUE#"=1	
  OR	
  "UNIQUE#"=2)	
  (accessing	
  'PDBORCL_R'	
  )

explain plan文などでオプティマイザーが
切り出したリモートクエリーを確認
13年11月16日土曜日
リモートクエリーの実行計画
Remote	
  SQL	
  Information	
  (identified	
  by	
  operation	
  id):
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
	
  	
  	
  5	
  -­‐	
  SELECT	
  /*+	
  USE_NL	
  ("TAB3")	
  */	
  "UNIQUE#","BRANCH#"
	
  	
  	
  	
  	
  	
  	
  ,"LOC#"	
  FROM	
  "TAB3"	
  "TAB3"	
  WHERE
	
  	
  	
  	
  	
  	
  	
  "UNIQUE#"=1	
  OR	
  "UNIQUE#"=2	
  (accessing	
  'PDBORCL_R'	
  )
	
  	
  	
  6	
  -­‐	
  SELECT	
  /*+	
  USE_NL	
  ("TAB2")	
  */	
  "UNIQUE#","BRANCH#"	
  
	
  	
  	
  	
  	
  	
  	
  	
  FROM	
  "TAB2"	
  "TAB2"	
  WHERE	
  "BRANCH#"=:1
	
  	
  	
  	
  	
  	
  	
  	
  AND	
  "UNIQUE#"=:2	
  AND	
  ("UNIQUE#"=1	
  OR	
  "UNIQUE#"=2)	
  
	
  	
  	
  	
  	
  	
  	
  	
  (accessing	
  'PDBORCL_R'	
  )
	
  	
  	
  7	
  -­‐	
  SELECT	
  /*+	
  USE_NL	
  ("TAB1")	
  */	
  "UNIQUE#"	
  
	
  	
  	
  	
  	
  	
  	
  	
  FROM	
  "TAB1"	
  "TAB1"	
  WHERE	
  "UNIQUE#"=:1	
  AND
	
  	
  	
  	
  	
  	
  	
  	
  ("UNIQUE#"=1	
  OR	
  "UNIQUE#"=2)	
  (accessing	
  'PDBORCL_R'	
  )

これらのSQL文はリモートデータベースで実
行されるため、実行計画はリモートデータベ
ース上で確認する必要がある。
13年11月16日土曜日
リモートクエリーの
実行計画①
Remote	
  SQL	
  Information	
  (identified	
  by	
  operation	
  id):
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
	
  	
  	
  5	
  -­‐	
  SELECT	
  /*+	
  USE_NL	
  ("TAB3")	
  */	
  "UNIQUE#","BRANCH#"
	
  	
  	
  	
  	
  	
  	
  ,"LOC#"	
  FROM	
  "TAB3"	
  "TAB3"	
  WHERE
	
  	
  	
  	
  	
  	
  	
  "UNIQUE#"=1	
  OR	
  "UNIQUE#"=2	
  (accessing	
  'PDBORCL_R'	
  )

-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  Id	
  	
  |	
  Operation	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Name	
  	
  	
  	
  |	
  Rows	
  	
  |	
  Bytes	
  |	
  Cost	
  (%CPU)|	
  Time	
  	
  	
  	
  	
  |
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  	
  	
  0	
  |	
  SELECT	
  STATEMENT	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  200	
  |	
  	
  2000	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |
|	
  	
  	
  1	
  |	
  	
  INLIST	
  ITERATOR	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |
|*	
  	
  2	
  |	
  	
  	
  INDEX	
  RANGE	
  SCAN|	
  PK_TAB3	
  |	
  	
  	
  200	
  |	
  	
  2000	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐

13年11月16日土曜日
リモートクエリーの
実行計画①
Remote	
  SQL	
  Information	
  (identified	
  by	
  operation	
  id):
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
	
  	
  	
  5	
  -­‐	
  SELECT	
  /*+	
  USE_NL	
  ("TAB3")	
  */	
  "UNIQUE#","BRANCH#"
	
  	
  	
  	
  	
  	
  	
  ,"LOC#"	
  FROM	
  "TAB3"	
  "TAB3"	
  WHERE
	
  	
  	
  	
  	
  	
  	
  "UNIQUE#"=1	
  OR	
  "UNIQUE#"=2	
  (accessing	
  'PDBORCL_R'	
  )

-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  Id	
  	
  |	
  Operation	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Name	
  	
  	
  	
  |	
  Rows	
  	
  |	
  Bytes	
  |	
  Cost	
  (%CPU)|	
  Time	
  	
  	
  	
  	
  |
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  	
  	
  0	
  |	
  SELECT	
  STATEMENT	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  200	
  |	
  	
  2000	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |
|	
  	
  	
  1	
  |	
  	
  INLIST	
  ITERATOR	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |
|*	
  	
  2	
  |	
  	
  	
  INDEX	
  RANGE	
  SCAN|	
  PK_TAB3	
  |	
  	
  	
  200	
  |	
  	
  2000	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
チューニングが必要だとは
思えない...

13年11月16日土曜日
リモートクエリーの
実行計画②
Remote	
  SQL	
  Information	
  (identified	
  by	
  operation	
  id):
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
	
  	
  	
  	
  6	
  -­‐	
  SELECT	
  /*+	
  USE_NL	
  ("TAB2")	
  */	
  "UNIQUE#","BRANCH#"	
  
	
  	
  	
  	
  	
  	
  	
  	
  FROM	
  "TAB2"	
  "TAB2"	
  WHERE	
  "BRANCH#"=:1
	
  	
  	
  	
  	
  	
  	
  	
  AND	
  "UNIQUE#"=:2	
  AND	
  ("UNIQUE#"=1	
  OR	
  "UNIQUE#"=2)	
  
	
  	
  	
  	
  	
  	
  	
  	
  (accessing	
  'PDBORCL_R'	
  )
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  Id	
  	
  |	
  Operation	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Name	
  	
  	
  	
  |	
  Rows	
  	
  |	
  Bytes	
  |	
  Cost	
  (%CPU)|	
  Time	
  	
  	
  	
  	
  |
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  	
  	
  0	
  |	
  SELECT	
  STATEMENT	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  	
  7	
  |	
  	
  	
  	
  	
  1	
  	
  	
  (0)|	
  00:00:01	
  |
|*	
  	
  1	
  |	
  	
  FILTER	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |
|*	
  	
  2	
  |	
  	
  	
  INDEX	
  UNIQUE	
  SCAN|	
  PK_TAB2	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  	
  7	
  |	
  	
  	
  	
  	
  1	
  	
  	
  (0)|	
  00:00:01	
  |
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐

13年11月16日土曜日
リモートクエリーの
実行計画②
Remote	
  SQL	
  Information	
  (identified	
  by	
  operation	
  id):
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
	
  	
  	
  	
  6	
  -­‐	
  SELECT	
  /*+	
  USE_NL	
  ("TAB2")	
  */	
  "UNIQUE#","BRANCH#"	
  
	
  	
  	
  	
  	
  	
  	
  	
  FROM	
  "TAB2"	
  "TAB2"	
  WHERE	
  "BRANCH#"=:1
	
  	
  	
  	
  	
  	
  	
  	
  AND	
  "UNIQUE#"=:2	
  AND	
  ("UNIQUE#"=1	
  OR	
  "UNIQUE#"=2)	
  
	
  	
  	
  	
  	
  	
  	
  	
  (accessing	
  'PDBORCL_R'	
  )
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  Id	
  	
  |	
  Operation	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Name	
  	
  	
  	
  |	
  Rows	
  	
  |	
  Bytes	
  |	
  Cost	
  (%CPU)|	
  Time	
  	
  	
  	
  	
  |
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  	
  	
  0	
  |	
  SELECT	
  STATEMENT	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  	
  7	
  |	
  	
  	
  	
  	
  1	
  	
  	
  (0)|	
  00:00:01	
  |
|*	
  	
  1	
  |	
  	
  FILTER	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |
|*	
  	
  2	
  |	
  	
  	
  INDEX	
  UNIQUE	
  SCAN|	
  PK_TAB2	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  	
  7	
  |	
  	
  	
  	
  	
  1	
  	
  	
  (0)|	
  00:00:01	
  |
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
チューニングが必要だとは
思えない...

13年11月16日土曜日
リモートクエリーの
実行計画③
Remote	
  SQL	
  Information	
  (identified	
  by	
  operation	
  id):
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
	
  	
  7	
  -­‐	
  SELECT	
  /*+	
  USE_NL	
  ("TAB1")	
  */	
  "UNIQUE#"	
  
	
  	
  	
  	
  	
  	
  	
  	
  FROM	
  "TAB1"	
  "TAB1"	
  WHERE	
  "UNIQUE#"=:1	
  AND
	
  	
  	
  	
  	
  	
  	
  	
  ("UNIQUE#"=1	
  OR	
  "UNIQUE#"=2)	
  (accessing	
  'PDBORCL_R'	
  )

-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  Id	
  	
  |	
  Operation	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Name	
  	
  	
  	
  |	
  Rows	
  	
  |	
  Bytes	
  |	
  Cost	
  (%CPU)|	
  Time	
  	
  	
  	
  	
  |
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  	
  	
  0	
  |	
  SELECT	
  STATEMENT	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  	
  4	
  |	
  	
  	
  	
  	
  1	
  	
  	
  (0)|	
  00:00:01	
  |
|*	
  	
  1	
  |	
  	
  FILTER	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |
|*	
  	
  2	
  |	
  	
  	
  INDEX	
  UNIQUE	
  SCAN|	
  PK_TAB1	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  	
  4	
  |	
  	
  	
  	
  	
  1	
  	
  	
  (0)|	
  00:00:01	
  |
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐

13年11月16日土曜日
リモートクエリーの
実行計画③
Remote	
  SQL	
  Information	
  (identified	
  by	
  operation	
  id):
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
	
  	
  7	
  -­‐	
  SELECT	
  /*+	
  USE_NL	
  ("TAB1")	
  */	
  "UNIQUE#"	
  
	
  	
  	
  	
  	
  	
  	
  	
  FROM	
  "TAB1"	
  "TAB1"	
  WHERE	
  "UNIQUE#"=:1	
  AND
	
  	
  	
  	
  	
  	
  	
  	
  ("UNIQUE#"=1	
  OR	
  "UNIQUE#"=2)	
  (accessing	
  'PDBORCL_R'	
  )

-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  Id	
  	
  |	
  Operation	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Name	
  	
  	
  	
  |	
  Rows	
  	
  |	
  Bytes	
  |	
  Cost	
  (%CPU)|	
  Time	
  	
  	
  	
  	
  |
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  	
  	
  0	
  |	
  SELECT	
  STATEMENT	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  	
  4	
  |	
  	
  	
  	
  	
  1	
  	
  	
  (0)|	
  00:00:01	
  |
|*	
  	
  1	
  |	
  	
  FILTER	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |
|*	
  	
  2	
  |	
  	
  	
  INDEX	
  UNIQUE	
  SCAN|	
  PK_TAB1	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  	
  4	
  |	
  	
  	
  	
  	
  1	
  	
  	
  (0)|	
  00:00:01	
  |
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
チューニングが必要だとは
思えない...

13年11月16日土曜日
リモートクエリーの分析結果
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  Id	
  	
  |	
  Operation	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Name	
  	
  	
  	
  |	
  Rows	
  	
  |	
  Bytes	
  |	
  Cost	
  (%CPU)|	
  Time	
  	
  	
  	
  	
  |
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  	
  	
  0	
  |	
  SELECT	
  STATEMENT	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  200	
  |	
  	
  2000	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |
|	
  	
  	
  1	
  |	
  	
  INLIST	
  ITERATOR	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |
|*	
  	
  2	
  |	
  	
  	
  INDEX	
  RANGE	
  SCAN|	
  PK_TAB3	
  |	
  	
  	
  200	
  |	
  	
  2000	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  Id	
  	
  |	
  Operation	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Name	
  	
  	
  	
  |	
  Rows	
  	
  |	
  Bytes	
  |	
  Cost	
  (%CPU)|	
  Time	
  	
  	
  	
  	
  |
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  	
  	
  0	
  |	
  SELECT	
  STATEMENT	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  	
  7	
  |	
  	
  	
  	
  	
  1	
  	
  	
  (0)|	
  00:00:01	
  |
|*	
  	
  1	
  |	
  	
  FILTER	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |
|*	
  	
  2	
  |	
  	
  	
  INDEX	
  UNIQUE	
  SCAN|	
  PK_TAB2	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  	
  7	
  |	
  	
  	
  	
  	
  1	
  	
  	
  (0)|	
  00:00:01	
  |
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  Id	
  	
  |	
  Operation	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Name	
  	
  	
  	
  |	
  Rows	
  	
  |	
  Bytes	
  |	
  Cost	
  (%CPU)|	
  Time	
  	
  	
  	
  	
  |
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  	
  	
  0	
  |	
  SELECT	
  STATEMENT	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  	
  4	
  |	
  	
  	
  	
  	
  1	
  	
  	
  (0)|	
  00:00:01	
  |
|*	
  	
  1	
  |	
  	
  FILTER	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |
|*	
  	
  2	
  |	
  	
  	
  INDEX	
  UNIQUE	
  SCAN|	
  PK_TAB1	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  	
  4	
  |	
  	
  	
  	
  	
  1	
  	
  	
  (0)|	
  00:00:01	
  |
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐

13年11月16日土曜日
リモートクエリーの分析結果
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  Id	
  	
  |	
  Operation	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Name	
  	
  	
  	
  |	
  Rows	
  	
  |	
  Bytes	
  |	
  Cost	
  (%CPU)|	
  Time	
  	
  	
  	
  	
  |
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  	
  	
  0	
  |	
  SELECT	
  STATEMENT	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  200	
  |	
  	
  2000	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |
|	
  	
  	
  1	
  |	
  	
  INLIST	
  ITERATOR	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |
|*	
  	
  2	
  |	
  	
  	
  INDEX	
  RANGE	
  SCAN|	
  PK_TAB3	
  |	
  	
  	
  200	
  |	
  	
  2000	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  Id	
  	
  |	
  Operation	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Name	
  	
  	
  	
  |	
  Rows	
  	
  |	
  Bytes	
  |	
  Cost	
  (%CPU)|	
  Time	
  	
  	
  	
  	
  |
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  	
  	
  0	
  |	
  SELECT	
  STATEMENT	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  	
  7	
  |	
  	
  	
  	
  	
  1	
  	
  	
  (0)|	
  00:00:01	
  |
|*	
  	
  1	
  |	
  	
  FILTER	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |
|*	
  	
  2	
  |	
  	
  	
  INDEX	
  UNIQUE	
  SCAN|	
  PK_TAB2	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  	
  7	
  |	
  	
  	
  	
  	
  1	
  	
  	
  (0)|	
  00:00:01	
  |
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  Id	
  	
  |	
  Operation	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Name	
  	
  	
  	
  |	
  Rows	
  	
  |	
  Bytes	
  |	
  Cost	
  (%CPU)|	
  Time	
  	
  	
  	
  	
  |
3本のリモートクエリは個別は、個別に発行
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
されており、実行計画は単純であり、SQL文
|	
  	
  	
  0	
  |	
  SELECT	
  STATEMENT	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  	
  4	
  |	
  	
  	
  	
  	
  1	
  	
  	
  (0)|	
  00:00:01	
  |
|*	
  	
  1	
  |	
  	
  FILTER	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |
単体ではチューニングが必要という状態には
|*	
  	
  2	
  |	
  	
  	
  INDEX	
  UNIQUE	
  SCAN|	
  PK_TAB1	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  	
  4	
  |	
  	
  	
  	
  	
  1	
  	
  	
  (0)|	
  00:00:01	
  |
ない....
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
ほかにチューニング可能な箇所はないか.......
13年11月16日土曜日
改善できそうな箇所
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  Id	
  	
  |	
  Operation	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Name	
  	
  	
  	
  |	
  Rows	
  	
  |	
  Bytes	
  |	
  Cost	
  (%CPU)|	
  Time	
  	
  	
  	
  	
  |	
  Inst	
  	
  	
  |IN-­‐OUT|
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  	
  	
  0	
  |	
  SELECT	
  STATEMENT	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  20000	
  |	
  	
  	
  	
  11M|	
  	
  	
  603	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  1	
  |	
  	
  NESTED	
  LOOPS	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  2	
  |	
  	
  	
  NESTED	
  LOOPS	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  20000	
  |	
  	
  	
  	
  11M|	
  	
  	
  603	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  3	
  |	
  	
  	
  	
  NESTED	
  LOOPS	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  200	
  |	
  15600	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  4	
  |	
  	
  	
  	
  	
  NESTED	
  LOOPS	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  200	
  |	
  13000	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  5	
  |	
  	
  	
  	
  	
  	
  REMOTE	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  TAB3	
  	
  	
  	
  |	
  	
  	
  200	
  |	
  	
  7800	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |	
  PDBOR~	
  |	
  R-­‐>S	
  |
|	
  	
  	
  6	
  |	
  	
  	
  	
  	
  	
  REMOTE	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  TAB2	
  	
  	
  	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  26	
  |	
  	
  	
  	
  	
  0	
  	
  	
  (0)|	
  00:00:01	
  |	
  PDBOR~	
  |	
  R-­‐>S	
  |
|	
  	
  	
  7	
  |	
  	
  	
  	
  	
  REMOTE	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  TAB1	
  	
  	
  	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  13	
  |	
  	
  	
  	
  	
  0	
  	
  	
  (0)|	
  00:00:01	
  |	
  PDBOR~	
  |	
  R-­‐>S	
  |
|*	
  	
  8	
  |	
  	
  	
  	
  INDEX	
  RANGE	
  SCAN	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  PK_TAB4	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  2	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  9	
  |	
  	
  	
  TABLE	
  ACCESS	
  BY	
  INDEX	
  ROWID|	
  TAB4	
  	
  	
  	
  |	
  	
  	
  100	
  |	
  51400	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
Predicate	
  Information	
  (identified	
  by	
  operation	
  id):
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
	
  	
  	
  8	
  -­‐	
  access("TAB3"."UNIQUE#"="TAB4"."UNIQUE#"	
  AND	
  "TAB3"."BRANCH#"="TAB4"."BRANCH#"	
  AND
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  "TAB3"."LOC#"="TAB4"."LOC#")
	
  	
  	
  	
  	
  	
  	
  filter("TAB4"."UNIQUE#"=1	
  OR	
  "TAB4"."UNIQUE#"=2)

13年11月16日土曜日
改善できそうな箇所
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  Id	
  	
  |	
  Operation	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Name	
  	
  	
  	
  |	
  Rows	
  	
  |	
  Bytes	
  |	
  Cost	
  (%CPU)|	
  Time	
  	
  	
  	
  	
  |	
  Inst	
  	
  	
  |IN-­‐OUT|
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  	
  	
  0	
  |	
  SELECT	
  STATEMENT	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  20000	
  |	
  	
  	
  	
  11M|	
  	
  	
  603	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  1	
  |	
  	
  NESTED	
  LOOPS	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  2	
  |	
  	
  	
  NESTED	
  LOOPS	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  20000	
  |	
  	
  	
  	
  11M|	
  	
  	
  603	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  3	
  |	
  	
  	
  	
  NESTED	
  LOOPS	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  200	
  |	
  15600	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  4	
  |	
  	
  	
  	
  	
  NESTED	
  LOOPS	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  200	
  |	
  13000	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  5	
  |	
  	
  	
  	
  	
  	
  REMOTE	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  TAB3	
  	
  	
  	
  |	
  	
  	
  200	
  |	
  	
  7800	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |	
  PDBOR~	
  |	
  R-­‐>S	
  |
|	
  	
  	
  6	
  |	
  	
  	
  	
  	
  	
  REMOTE	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  TAB2	
  	
  	
  	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  26	
  |	
  	
  	
  	
  	
  0	
  	
  	
  (0)|	
  00:00:01	
  |	
  PDBOR~	
  |	
  R-­‐>S	
  |
|	
  	
  	
  7	
  |	
  	
  	
  	
  	
  REMOTE	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  TAB1	
  	
  	
  	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  13	
  |	
  	
  	
  	
  	
  0	
  	
  	
  (0)|	
  00:00:01	
  |	
  PDBOR~	
  |	
  R-­‐>S	
  |
|*	
  	
  8	
  |	
  	
  	
  	
  INDEX	
  RANGE	
  SCAN	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  PK_TAB4	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  2	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  9	
  |	
  	
  	
  TABLE	
  ACCESS	
  BY	
  INDEX	
  ROWID|	
  TAB4	
  	
  	
  	
  |	
  	
  	
  100	
  |	
  51400	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
Predicate	
  Information	
  (identified	
  by	
  operation	
  id):
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐

3つのリモートクエリーをDB Linkを介して
ネットワーク越しにNested Loop結合を行っ

	
  	
  	
  8	
  -­‐	
  access("TAB3"."UNIQUE#"="TAB4"."UNIQUE#"	
  AND	
  "TAB3"."BRANCH#"="TAB4"."BRANCH#"	
  AND
ている。
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  "TAB3"."LOC#"="TAB4"."LOC#")
	
  	
  	
  	
  	
  	
  	
  filter("TAB4"."UNIQUE#"=1	
  OR	
  "TAB4"."UNIQUE#"=2)
この部分をすべてリモートデータベース内で

完結させれば、多少の効率改善になるのでは
ないか....

13年11月16日土曜日
治療方針

3つのリモートクエリーを
インラインビューにまとめ
ることで、1つのリモート
クエリーとして効率化を狙
う

SELECT
	
  	
  	
  	
  /*+	
  USE_NL(t01	
  tab4)	
  */
	
  	
  	
  	
  tab4.*
FROM
	
  	
  	
  	
  (
	
  	
  	
  	
  	
  	
  	
  	
  SELECT
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  /*+	
  NO_MERGE	
  */
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  tab3.unique#
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ,tab3.branch#
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ,tab3.loc#
	
  	
  	
  	
  	
  	
  	
  	
  FROM
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  tab1
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  INNER	
  JOIN	
  tab2
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ON
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  tab1.unique#	
  =	
  tab2.unique#	
  AND	
  tab1.unique#	
  IN	
  (1,2)
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  INNER	
  JOIN	
  tab3
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ON
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  tab2.unique#	
  =	
  tab3.unique#	
  AND	
  tab2.branch#	
  =	
  tab3.branch#
	
  	
  	
  	
  )	
  t01
	
  	
  	
  	
  INNER	
  JOIN	
  tab4
	
  	
  	
  	
  ON
	
  	
  	
  	
  	
  	
  	
  	
  t01.unique#	
  =	
  tab4.unique#	
  AND	
  t01.branch#	
  =	
  tab4.branch#
	
  	
  	
  	
  AND	
  t01.loc#	
  	
  	
  	
  =	
  tab4.loc#
;

13年11月16日土曜日
DEMO

13年11月16日土曜日
治療後の実行計画(ローカル)
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  Id	
  	
  |	
  Operation	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Name	
  	
  	
  	
  |	
  Rows	
  	
  |	
  Bytes	
  |	
  Cost	
  (%CPU)|	
  Time	
  	
  	
  	
  	
  |	
  Inst	
  	
  	
  |IN-­‐OUT|
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  	
  	
  0	
  |	
  SELECT	
  STATEMENT	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  20000	
  |	
  	
  	
  	
  10M|	
  	
  2004	
  	
  	
  (1)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  1	
  |	
  	
  NESTED	
  LOOPS	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  2	
  |	
  	
  	
  NESTED	
  LOOPS	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  20000	
  |	
  	
  	
  	
  10M|	
  	
  2004	
  	
  	
  (1)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  3	
  |	
  	
  	
  	
  VIEW	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  200	
  |	
  	
  7800	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  4	
  |	
  	
  	
  	
  	
  REMOTE	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  PDBOR~	
  |	
  R-­‐>S	
  |
|*	
  	
  5	
  |	
  	
  	
  	
  INDEX	
  RANGE	
  SCAN	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  PK_TAB4	
  |	
  	
  	
  100	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  2	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
|	
  	
  	
  6	
  |	
  	
  	
  TABLE	
  ACCESS	
  BY	
  INDEX	
  ROWID|	
  TAB4	
  	
  	
  	
  |	
  	
  	
  100	
  |	
  51400	
  |	
  	
  	
  	
  10	
  	
  	
  (0)|	
  00:00:01	
  |	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  |
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
Predicate	
  Information	
  (identified	
  by	
  operation	
  id):
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
	
  	
  	
  5	
  -­‐	
  access("T01"."UNIQUE#"="TAB4"."UNIQUE#"	
  AND	
  "T01"."BRANCH#"="TAB4"."BRANCH#"	
  AND
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  "T01"."LOC#"="TAB4"."LOC#")
Remote	
  SQL	
  Information	
  (identified	
  by	
  operation	
  id):
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
	
  	
  	
  4	
  -­‐	
  EXPLAIN	
  PLAN	
  SET	
  STATEMENT_ID='PLUS8440309'	
  INTO	
  PLAN_TABLE@!	
  FOR	
  SELECT	
  /*+	
  NO_MERGE	
  */
	
  	
  	
  	
  	
  	
  	
  "A1"."UNIQUE#","A1"."BRANCH#","A1"."LOC#"	
  FROM	
  "TAB1"	
  "A3","TAB2"	
  "A2","TAB3"	
  "A1"	
  WHERE
	
  	
  	
  	
  	
  	
  	
  "A2"."UNIQUE#"="A1"."UNIQUE#"	
  AND	
  "A2"."BRANCH#"="A1"."BRANCH#"	
  AND
	
  	
  	
  	
  	
  	
  	
  "A3"."UNIQUE#"="A2"."UNIQUE#"	
  AND	
  ("A3"."UNIQUE#"=1	
  OR	
  "A3"."UNIQUE#"=2)	
  AND	
  ("A2"."UNIQUE#"=1
	
  	
  	
  	
  	
  	
  	
  OR	
  "A2"."UNIQUE#"=2)	
  AND	
  ("A1"."UNIQUE#"=1	
  OR	
  "A1"."UNIQUE#"=2)	
  (accessing	
  'PDBORCL_R'	
  )

13年11月16日土曜日
治療後の実行計画(リモート)
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  Id	
  	
  |	
  Operation	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Name	
  	
  	
  	
  |	
  Rows	
  	
  |	
  Bytes	
  |	
  Cost	
  (%CPU)|	
  Time	
  	
  	
  	
  	
  |
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
|	
  	
  	
  0	
  |	
  SELECT	
  STATEMENT	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  20	
  |	
  	
  	
  420	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |
|	
  	
  	
  1	
  |	
  	
  NESTED	
  LOOPS	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  20	
  |	
  	
  	
  420	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |
|	
  	
  	
  2	
  |	
  	
  	
  NESTED	
  LOOPS	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  20	
  |	
  	
  	
  340	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |
|	
  	
  	
  3	
  |	
  	
  	
  	
  INLIST	
  ITERATOR	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |
|*	
  	
  4	
  |	
  	
  	
  	
  	
  INDEX	
  RANGE	
  SCAN|	
  PK_TAB3	
  |	
  	
  	
  200	
  |	
  	
  2000	
  |	
  	
  	
  	
  	
  3	
  	
  	
  (0)|	
  00:00:01	
  |
|*	
  	
  5	
  |	
  	
  	
  	
  INDEX	
  UNIQUE	
  SCAN|	
  PK_TAB2	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  	
  7	
  |	
  	
  	
  	
  	
  0	
  	
  	
  (0)|	
  00:00:01	
  |
|*	
  	
  6	
  |	
  	
  	
  INDEX	
  UNIQUE	
  SCAN	
  |	
  PK_TAB1	
  |	
  	
  	
  	
  	
  1	
  |	
  	
  	
  	
  	
  4	
  |	
  	
  	
  	
  	
  0	
  	
  	
  (0)|	
  00:00:01	
  |
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
Predicate	
  Information	
  (identified	
  by	
  operation	
  id):
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
	
  	
  	
  4	
  -­‐	
  access("A1"."UNIQUE#"=1	
  OR	
  "A1"."UNIQUE#"=2)
	
  	
  	
  5	
  -­‐	
  access("A2"."UNIQUE#"="A1"."UNIQUE#"	
  AND
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  "A2"."BRANCH#"="A1"."BRANCH#")
	
  	
  	
  	
  	
  	
  	
  filter("A2"."UNIQUE#"=1	
  OR	
  "A2"."UNIQUE#"=2)
	
  	
  	
  6	
  -­‐	
  access("A3"."UNIQUE#"="A2"."UNIQUE#")
	
  	
  	
  	
  	
  	
  	
  filter("A3"."UNIQUE#"=1	
  OR	
  "A3"."UNIQUE#"=2)

13年11月16日土曜日
治療効果の確認

Elapsed TIme

Before
After
13年11月16日土曜日
治療完!
釣ったSQL文はリリース

13年11月16日土曜日
治療完!
釣ったSQL文はリリース
分散クエリーをチューニングする
スキルを手に入れた。:)

13年11月16日土曜日
Oracle® Database管理者ガイド 12c リリース1 (12.1)
分散問合せのチューニング

http://docs.oracle.com/cd/E49329_01/server.
121/b71301/ds_appdev.htm#i1007640

13年11月16日土曜日
バッファキャッシュ欠乏症

13年11月16日土曜日
釣り上げたSQLは、バッフ
ァキャッシュが足りなくて
息も絶え絶え...ほとんどが
User I/O待機...治療法は...
13年11月16日土曜日
問診結果
開口一番、予算はほぼないが小手先でなにか対処で
きない?
UPDATE文をループ処理内で繰り返し発行している
(ループ処理は大人の事情により一括化できない)
ストレージは非力で遅い
処理対象表のデータは増加しつづける
OracleはStandard Edition
年々というより毎月処理速度が劣化している
etc...
13年11月16日土曜日
精密検査(コード)
DECLARE
	
  	
  	
  	
  CURSOR	
  cs_foobar	
  IS
	
  	
  	
  	
  	
  	
  	
  	
  SELECT
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  rowid
	
  	
  	
  	
  	
  	
  	
  	
  FROM
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  foobar
	
  	
  	
  	
  	
  	
  	
  	
  WHERE
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  unique#	
  BETWEEN	
  1	
  AND	
  400000
	
  	
  	
  	
  	
  	
  	
  	
  ORDER	
  BY
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  unique#
	
  	
  	
  	
  	
  	
  	
  	
  FOR	
  UPDATE;
BEGIN
	
  	
  	
  	
  FOR	
  row	
  IN	
  cs_foobar	
  LOOP
	
  	
  	
  	
  	
  	
  	
  UPDATE	
  foobar
	
  	
  	
  	
  	
  	
  	
  SET
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  foobar_str	
  =	
  LPAD('y',500,'y')
	
  	
  	
  	
  	
  	
  	
  WHERE
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  rowid	
  =	
  row.rowid;
	
  	
  	
  	
  END	
  LOOP;
	
  	
  	
  	
  COMMIT;
END;
/

13年11月16日土曜日
精密検査(コード)
DECLARE
	
  	
  	
  	
  CURSOR	
  cs_foobar	
  IS
	
  	
  	
  	
  	
  	
  	
  	
  SELECT
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  rowid
	
  	
  	
  	
  	
  	
  	
  	
  FROM
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  foobar
	
  	
  	
  	
  	
  	
  	
  	
  WHERE
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  unique#	
  BETWEEN	
  1	
  AND	
  400000
	
  	
  	
  	
  	
  	
  	
  	
  ORDER	
  BY
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  unique#
	
  	
  	
  	
  	
  	
  	
  	
  FOR	
  UPDATE;
BEGIN
	
  	
  	
  	
  FOR	
  row	
  IN	
  cs_foobar	
  LOOP
	
  	
  	
  	
  	
  	
  	
  UPDATE	
  foobar
	
  	
  	
  	
  	
  	
  	
  SET
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  foobar_str	
  =	
  LPAD('y',500,'y')
	
  	
  	
  	
  	
  	
  	
  WHERE
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  rowid	
  =	
  row.rowid;
	
  	
  	
  	
  END	
  LOOP;
	
  	
  	
  	
  COMMIT;
END;
/

13年11月16日土曜日
精密検査(統計情報)
USER_INDEXESより
TABLE_NAME
INDEX_NAME
NUM_ROWS
DISTINCT_KEYS CLUSTERING_FACTOR
-------------- --------------- ---------- ------------- ----------------FOOBAR
SYS_C0010235
2070913
2070913
2070899
USER_IND_COLUMNSより
NDEX_NAME
COLUMN_NAME
---------------- -------------SYS_C0010235
UNIQUE#
USER_TABLESより
TABLE_NAME
NUM_ROWS
AVG_ROW_LEN
------------ ---------- ----------FOOBAR
2000000
506

13年11月16日土曜日
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング
db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング

More Related Content

Featured

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

db tech showcase Tokyo 2013 - A35 特濃JPOUG:潮溜まりでジャブジャブ、SQLチューニング

  • 1. 潮溜まりでジャブジャブ、 SQLチューニング Rock Pool / Michael Hiroshi Sekiguchi ( @discus_hamburg ) 13年11月16日土曜日
  • 2. 自己紹介 @discus_hamburg 関口 裕士 (屋号 Stargrass Software) 最近の仕事 : Software Engineer < DB Engineer 最近は医者のような問診に興味を持っている JPOUG ボードメンバー Oracle ACE (2012) Blog : Mac De Oracle / http://discus-hamburg.cocolog-nifty.com 13年11月16日土曜日
  • 3. 皆が、Deep   dive、Deep   diveというの で、Oracle   Coreの深い海ではなく沢⼭山 のSQL⽂文が泳ぐ浅瀬へShallow   Diveす ることに決めた天の邪⻤⿁鬼。 13年11月16日土曜日
  • 14. 釣り上げたSQL文 SELECT                /*+  USE_NL(tab1  tab2  tab3  tab4)  */                tab4.* FROM                tab1                INNER  JOIN  tab2                ON                                tab1.unique#  =  tab2.unique#                  AND  tab1.unique#  IN  (1,2)                INNER  JOIN  tab3                ON                                tab2.unique#  =  tab3.unique#                  AND  tab2.branch#  =  tab3.branch#                INNER  JOIN  tab4                ON                                tab3.unique#  =  tab4.unique#                  AND  tab3.branch#  =  tab4.branch#                AND  tab3.loc#        =  tab4.loc# ; 13年11月16日土曜日
  • 15. 釣り上げたSQL文 (実行計画) -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |  Id    |  Operation                                        |  Name        |  Rows    |  Bytes  |  Cost  (%CPU)|  Time          |  Inst      |IN-­‐OUT| -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |      0  |  SELECT  STATEMENT                          |                  |  20000  |        11M|      603      (0)|  00:00:01  |                |            | |      1  |    NESTED  LOOPS                                |                  |              |              |                        |                    |                |            | |      2  |      NESTED  LOOPS                              |                  |  20000  |        11M|      603      (0)|  00:00:01  |                |            | |      3  |        NESTED  LOOPS                            |                  |      200  |  15600  |          3      (0)|  00:00:01  |                |            | |      4  |          NESTED  LOOPS                          |                  |      200  |  13000  |          3      (0)|  00:00:01  |                |            | |      5  |            REMOTE                                    |  TAB3        |      200  |    7800  |          3      (0)|  00:00:01  |  PDBOR~  |  R-­‐>S  | |      6  |            REMOTE                                    |  TAB2        |          1  |        26  |          0      (0)|  00:00:01  |  PDBOR~  |  R-­‐>S  | |      7  |          REMOTE                                      |  TAB1        |          1  |        13  |          0      (0)|  00:00:01  |  PDBOR~  |  R-­‐>S  | |*    8  |        INDEX  RANGE  SCAN                    |  PK_TAB4  |          1  |              |          2      (0)|  00:00:01  |                |            | |      9  |      TABLE  ACCESS  BY  INDEX  ROWID|  TAB4        |      100  |  51400  |          3      (0)|  00:00:01  |                |            | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ Predicate  Information  (identified  by  operation  id): -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐      8  -­‐  access("TAB3"."UNIQUE#"="TAB4"."UNIQUE#"  AND  "TAB3"."BRANCH#"="TAB4"."BRANCH#"  AND                            "TAB3"."LOC#"="TAB4"."LOC#")              filter("TAB4"."UNIQUE#"=1  OR  "TAB4"."UNIQUE#"=2) 13年11月16日土曜日
  • 16. 釣り上げたSQL文 (実行計画) -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |  Id    |  Operation                                        |  Name        |  Rows    |  Bytes  |  Cost  (%CPU)|  Time          |  Inst      |IN-­‐OUT| -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |      0  |  SELECT  STATEMENT                          |                  |  20000  |        11M|      603      (0)|  00:00:01  |                |            | |      1  |    NESTED  LOOPS                                |                  |              |              |                        |                    |                |            | |      2  |      NESTED  LOOPS                              |                  |  20000  |        11M|      603      (0)|  00:00:01  |                |            | |      3  |        NESTED  LOOPS                            |                  |      200  |  15600  |          3      (0)|  00:00:01  |                |            | |      4  |          NESTED  LOOPS                          |                  |      200  |  13000  |          3      (0)|  00:00:01  |                |            | |      5  |            REMOTE                                    |  TAB3        |      200  |    7800  |          3      (0)|  00:00:01  |  PDBOR~  |  R-­‐>S  | |      6  |            REMOTE                                    |  TAB2        |          1  |        26  |          0      (0)|  00:00:01  |  PDBOR~  |  R-­‐>S  | |      7  |          REMOTE                                      |  TAB1        |          1  |        13  |          0      (0)|  00:00:01  |  PDBOR~  |  R-­‐>S  | |*    8  |        INDEX  RANGE  SCAN                    |  PK_TAB4  |          1  |              |          2      (0)|  00:00:01  |                |            | |      9  |      TABLE  ACCESS  BY  INDEX  ROWID|  TAB4        |      100  |  51400  |          3      (0)|  00:00:01  |                |            | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ Predicate  Information  (identified  by  operation  id): -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐      8  -­‐  access("TAB3"."UNIQUE#"="TAB4"."UNIQUE#"  AND  "TAB3"."BRANCH#"="TAB4"."BRANCH#"  AND                            "TAB3"."LOC#"="TAB4"."LOC#")              filter("TAB4"."UNIQUE#"=1  OR  "TAB4"."UNIQUE#"=2) 13年11月16日土曜日
  • 17. 釣り上げたSQL文 (DB Link..) ●USER_DB_LINKSより DB_LINK        USERNAME      HOST -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ PDBORCL_R    SCOTT            PDBORCL_R ●USER_SYNONYMSより SYNONYM_NAME                  TABLE_NAME      DB_LINK -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ TAB1                                  TAB1                  PDBORCL_R TAB2                                  TAB2                  PDBORCL_R TAB3                                  TAB3                  PDBORCL_R 13年11月16日土曜日
  • 18. 釣り上げたSQL文 (DB Link..) ●USER_DB_LINKSより DB_LINK        USERNAME      HOST -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ PDBORCL_R    SCOTT            PDBORCL_R DB Link先は1つで 3表が同一リモートデ ータベースに存在する ●USER_SYNONYMSより SYNONYM_NAME                  TABLE_NAME      DB_LINK -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ TAB1                                  TAB1                  PDBORCL_R TAB2                                  TAB2                  PDBORCL_R TAB3                                  TAB3                  PDBORCL_R 13年11月16日土曜日
  • 21. 釣り上げたSQL文 (実行計画) -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |  Id    |  Operation                                        |  Name        |  Rows    |  Bytes  |  Cost  (%CPU)|  Time          |  Inst      |IN-­‐OUT| -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |      0  |  SELECT  STATEMENT                          |                  |  20000  |        11M|      603      (0)|  00:00:01  |                |            | |      1  |    NESTED  LOOPS                                |                  |              |              |                        |                    |                |            | |      2  |      NESTED  LOOPS                              |                  |  20000  |        11M|      603      (0)|  00:00:01  |                |            | |      3  |        NESTED  LOOPS                            |                  |      200  |  15600  |          3      (0)|  00:00:01  |                |            | |      4  |          NESTED  LOOPS                          |                  |      200  |  13000  |          3      (0)|  00:00:01  |                |            | |      5  |            REMOTE                                    |  TAB3        |      200  |    7800  |          3      (0)|  00:00:01  |  PDBOR~  |  R-­‐>S  | |      6  |            REMOTE                                    |  TAB2        |          1  |        26  |          0      (0)|  00:00:01  |  PDBOR~  |  R-­‐>S  | |      7  |          REMOTE                                      |  TAB1        |          1  |        13  |          0      (0)|  00:00:01  |  PDBOR~  |  R-­‐>S  | |*    8  |        INDEX  RANGE  SCAN                    |  PK_TAB4  |          1  |              |          2      (0)|  00:00:01  |                |            | |      9  |      TABLE  ACCESS  BY  INDEX  ROWID|  TAB4        |      100  |  51400  |          3      (0)|  00:00:01  |                |            | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ Predicate  Information  (identified  by  operation  id): -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐      8  -­‐  access("TAB3"."UNIQUE#"="TAB4"."UNIQUE#"  AND  "TAB3"."BRANCH#"="TAB4"."BRANCH#"  AND                            "TAB3"."LOC#"="TAB4"."LOC#")              filter("TAB4"."UNIQUE#"=1  OR  "TAB4"."UNIQUE#"=2) 13年11月16日土曜日
  • 22. 釣り上げたSQL文 (実行計画) -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |  Id    |  Operation                                        |  Name        |  Rows    |  Bytes  |  Cost  (%CPU)|  Time          |  Inst      |IN-­‐OUT| -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |      0  |  SELECT  STATEMENT                          |                  |  20000  |        11M|      603      (0)|  00:00:01  |                |            | |      1  |    NESTED  LOOPS                                |                  |              |              |                        |                    |                |            | |      2  |      NESTED  LOOPS                              |                  |  20000  |        11M|      603      (0)|  00:00:01  |                |            | |      3  |        NESTED  LOOPS                            |                  |      200  |  15600  |          3      (0)|  00:00:01  |                |            | |      4  |          NESTED  LOOPS                          |                  |      200  |  13000  |          3      (0)|  00:00:01  |                |            | |      5  |            REMOTE                                    |  TAB3        |      200  |    7800  |          3      (0)|  00:00:01  |  PDBOR~  |  R-­‐>S  | |      6  |            REMOTE                                    |  TAB2        |          1  |        26  |          0      (0)|  00:00:01  |  PDBOR~  |  R-­‐>S  | |      7  |          REMOTE                                      |  TAB1        |          1  |        13  |          0      (0)|  00:00:01  |  PDBOR~  |  R-­‐>S  | |*    8  |        INDEX  RANGE  SCAN                    |  PK_TAB4  |          1  |              |          2      (0)|  00:00:01  |                |            | |      9  |      TABLE  ACCESS  BY  INDEX  ROWID|  TAB4        |      100  |  51400  |          3      (0)|  00:00:01  |                |            | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ Predicate  Information  (identified  by  operation  id): -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ この実行計画はローカルデー      8  -­‐  access("TAB3"."UNIQUE#"="TAB4"."UNIQUE#"  AND  "TAB3"."BRANCH#"="TAB4"."BRANCH#"  AND                            "TAB3"."LOC#"="TAB4"."LOC#")              filter("TAB4"."UNIQUE#"=1  OR  "TAB4"."UNIQUE#"=2) タベースで取得されたもの 13年11月16日土曜日
  • 23. リモートクエリーの実行計画 Remote  SQL  Information  (identified  by  operation  id): -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐      5  -­‐  SELECT  /*+  USE_NL  ("TAB3")  */  "UNIQUE#","BRANCH#"              ,"LOC#"  FROM  "TAB3"  "TAB3"  WHERE              "UNIQUE#"=1  OR  "UNIQUE#"=2  (accessing  'PDBORCL_R'  )      6  -­‐  SELECT  /*+  USE_NL  ("TAB2")  */  "UNIQUE#","BRANCH#"                  FROM  "TAB2"  "TAB2"  WHERE  "BRANCH#"=:1                AND  "UNIQUE#"=:2  AND  ("UNIQUE#"=1  OR  "UNIQUE#"=2)                  (accessing  'PDBORCL_R'  )      7  -­‐  SELECT  /*+  USE_NL  ("TAB1")  */  "UNIQUE#"                  FROM  "TAB1"  "TAB1"  WHERE  "UNIQUE#"=:1  AND                ("UNIQUE#"=1  OR  "UNIQUE#"=2)  (accessing  'PDBORCL_R'  ) explain plan文などでオプティマイザーが 切り出したリモートクエリーを確認 13年11月16日土曜日
  • 24. リモートクエリーの実行計画 Remote  SQL  Information  (identified  by  operation  id): -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐      5  -­‐  SELECT  /*+  USE_NL  ("TAB3")  */  "UNIQUE#","BRANCH#"              ,"LOC#"  FROM  "TAB3"  "TAB3"  WHERE              "UNIQUE#"=1  OR  "UNIQUE#"=2  (accessing  'PDBORCL_R'  )      6  -­‐  SELECT  /*+  USE_NL  ("TAB2")  */  "UNIQUE#","BRANCH#"                  FROM  "TAB2"  "TAB2"  WHERE  "BRANCH#"=:1                AND  "UNIQUE#"=:2  AND  ("UNIQUE#"=1  OR  "UNIQUE#"=2)                  (accessing  'PDBORCL_R'  )      7  -­‐  SELECT  /*+  USE_NL  ("TAB1")  */  "UNIQUE#"                  FROM  "TAB1"  "TAB1"  WHERE  "UNIQUE#"=:1  AND                ("UNIQUE#"=1  OR  "UNIQUE#"=2)  (accessing  'PDBORCL_R'  ) これらのSQL文はリモートデータベースで実 行されるため、実行計画はリモートデータベ ース上で確認する必要がある。 13年11月16日土曜日
  • 25. リモートクエリーの 実行計画① Remote  SQL  Information  (identified  by  operation  id): -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐      5  -­‐  SELECT  /*+  USE_NL  ("TAB3")  */  "UNIQUE#","BRANCH#"              ,"LOC#"  FROM  "TAB3"  "TAB3"  WHERE              "UNIQUE#"=1  OR  "UNIQUE#"=2  (accessing  'PDBORCL_R'  ) -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |  Id    |  Operation                  |  Name        |  Rows    |  Bytes  |  Cost  (%CPU)|  Time          | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |      0  |  SELECT  STATEMENT    |                  |      200  |    2000  |          3      (0)|  00:00:01  | |      1  |    INLIST  ITERATOR    |                  |              |              |                        |                    | |*    2  |      INDEX  RANGE  SCAN|  PK_TAB3  |      200  |    2000  |          3      (0)|  00:00:01  | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ 13年11月16日土曜日
  • 26. リモートクエリーの 実行計画① Remote  SQL  Information  (identified  by  operation  id): -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐      5  -­‐  SELECT  /*+  USE_NL  ("TAB3")  */  "UNIQUE#","BRANCH#"              ,"LOC#"  FROM  "TAB3"  "TAB3"  WHERE              "UNIQUE#"=1  OR  "UNIQUE#"=2  (accessing  'PDBORCL_R'  ) -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |  Id    |  Operation                  |  Name        |  Rows    |  Bytes  |  Cost  (%CPU)|  Time          | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |      0  |  SELECT  STATEMENT    |                  |      200  |    2000  |          3      (0)|  00:00:01  | |      1  |    INLIST  ITERATOR    |                  |              |              |                        |                    | |*    2  |      INDEX  RANGE  SCAN|  PK_TAB3  |      200  |    2000  |          3      (0)|  00:00:01  | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ チューニングが必要だとは 思えない... 13年11月16日土曜日
  • 27. リモートクエリーの 実行計画② Remote  SQL  Information  (identified  by  operation  id): -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐        6  -­‐  SELECT  /*+  USE_NL  ("TAB2")  */  "UNIQUE#","BRANCH#"                  FROM  "TAB2"  "TAB2"  WHERE  "BRANCH#"=:1                AND  "UNIQUE#"=:2  AND  ("UNIQUE#"=1  OR  "UNIQUE#"=2)                  (accessing  'PDBORCL_R'  ) -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |  Id    |  Operation                    |  Name        |  Rows    |  Bytes  |  Cost  (%CPU)|  Time          | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |      0  |  SELECT  STATEMENT      |                  |          1  |          7  |          1      (0)|  00:00:01  | |*    1  |    FILTER                        |                  |              |              |                        |                    | |*    2  |      INDEX  UNIQUE  SCAN|  PK_TAB2  |          1  |          7  |          1      (0)|  00:00:01  | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ 13年11月16日土曜日
  • 28. リモートクエリーの 実行計画② Remote  SQL  Information  (identified  by  operation  id): -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐        6  -­‐  SELECT  /*+  USE_NL  ("TAB2")  */  "UNIQUE#","BRANCH#"                  FROM  "TAB2"  "TAB2"  WHERE  "BRANCH#"=:1                AND  "UNIQUE#"=:2  AND  ("UNIQUE#"=1  OR  "UNIQUE#"=2)                  (accessing  'PDBORCL_R'  ) -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |  Id    |  Operation                    |  Name        |  Rows    |  Bytes  |  Cost  (%CPU)|  Time          | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |      0  |  SELECT  STATEMENT      |                  |          1  |          7  |          1      (0)|  00:00:01  | |*    1  |    FILTER                        |                  |              |              |                        |                    | |*    2  |      INDEX  UNIQUE  SCAN|  PK_TAB2  |          1  |          7  |          1      (0)|  00:00:01  | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ チューニングが必要だとは 思えない... 13年11月16日土曜日
  • 29. リモートクエリーの 実行計画③ Remote  SQL  Information  (identified  by  operation  id): -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐    7  -­‐  SELECT  /*+  USE_NL  ("TAB1")  */  "UNIQUE#"                  FROM  "TAB1"  "TAB1"  WHERE  "UNIQUE#"=:1  AND                ("UNIQUE#"=1  OR  "UNIQUE#"=2)  (accessing  'PDBORCL_R'  ) -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |  Id    |  Operation                    |  Name        |  Rows    |  Bytes  |  Cost  (%CPU)|  Time          | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |      0  |  SELECT  STATEMENT      |                  |          1  |          4  |          1      (0)|  00:00:01  | |*    1  |    FILTER                        |                  |              |              |                        |                    | |*    2  |      INDEX  UNIQUE  SCAN|  PK_TAB1  |          1  |          4  |          1      (0)|  00:00:01  | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ 13年11月16日土曜日
  • 30. リモートクエリーの 実行計画③ Remote  SQL  Information  (identified  by  operation  id): -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐    7  -­‐  SELECT  /*+  USE_NL  ("TAB1")  */  "UNIQUE#"                  FROM  "TAB1"  "TAB1"  WHERE  "UNIQUE#"=:1  AND                ("UNIQUE#"=1  OR  "UNIQUE#"=2)  (accessing  'PDBORCL_R'  ) -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |  Id    |  Operation                    |  Name        |  Rows    |  Bytes  |  Cost  (%CPU)|  Time          | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |      0  |  SELECT  STATEMENT      |                  |          1  |          4  |          1      (0)|  00:00:01  | |*    1  |    FILTER                        |                  |              |              |                        |                    | |*    2  |      INDEX  UNIQUE  SCAN|  PK_TAB1  |          1  |          4  |          1      (0)|  00:00:01  | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ チューニングが必要だとは 思えない... 13年11月16日土曜日
  • 31. リモートクエリーの分析結果 -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |  Id    |  Operation                  |  Name        |  Rows    |  Bytes  |  Cost  (%CPU)|  Time          | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |      0  |  SELECT  STATEMENT    |                  |      200  |    2000  |          3      (0)|  00:00:01  | |      1  |    INLIST  ITERATOR    |                  |              |              |                        |                    | |*    2  |      INDEX  RANGE  SCAN|  PK_TAB3  |      200  |    2000  |          3      (0)|  00:00:01  | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |  Id    |  Operation                    |  Name        |  Rows    |  Bytes  |  Cost  (%CPU)|  Time          | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |      0  |  SELECT  STATEMENT      |                  |          1  |          7  |          1      (0)|  00:00:01  | |*    1  |    FILTER                        |                  |              |              |                        |                    | |*    2  |      INDEX  UNIQUE  SCAN|  PK_TAB2  |          1  |          7  |          1      (0)|  00:00:01  | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |  Id    |  Operation                    |  Name        |  Rows    |  Bytes  |  Cost  (%CPU)|  Time          | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |      0  |  SELECT  STATEMENT      |                  |          1  |          4  |          1      (0)|  00:00:01  | |*    1  |    FILTER                        |                  |              |              |                        |                    | |*    2  |      INDEX  UNIQUE  SCAN|  PK_TAB1  |          1  |          4  |          1      (0)|  00:00:01  | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ 13年11月16日土曜日
  • 32. リモートクエリーの分析結果 -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |  Id    |  Operation                  |  Name        |  Rows    |  Bytes  |  Cost  (%CPU)|  Time          | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |      0  |  SELECT  STATEMENT    |                  |      200  |    2000  |          3      (0)|  00:00:01  | |      1  |    INLIST  ITERATOR    |                  |              |              |                        |                    | |*    2  |      INDEX  RANGE  SCAN|  PK_TAB3  |      200  |    2000  |          3      (0)|  00:00:01  | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |  Id    |  Operation                    |  Name        |  Rows    |  Bytes  |  Cost  (%CPU)|  Time          | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |      0  |  SELECT  STATEMENT      |                  |          1  |          7  |          1      (0)|  00:00:01  | |*    1  |    FILTER                        |                  |              |              |                        |                    | |*    2  |      INDEX  UNIQUE  SCAN|  PK_TAB2  |          1  |          7  |          1      (0)|  00:00:01  | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |  Id    |  Operation                    |  Name        |  Rows    |  Bytes  |  Cost  (%CPU)|  Time          | 3本のリモートクエリは個別は、個別に発行 -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ されており、実行計画は単純であり、SQL文 |      0  |  SELECT  STATEMENT      |                  |          1  |          4  |          1      (0)|  00:00:01  | |*    1  |    FILTER                        |                  |              |              |                        |                    | 単体ではチューニングが必要という状態には |*    2  |      INDEX  UNIQUE  SCAN|  PK_TAB1  |          1  |          4  |          1      (0)|  00:00:01  | ない.... -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ ほかにチューニング可能な箇所はないか....... 13年11月16日土曜日
  • 33. 改善できそうな箇所 -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |  Id    |  Operation                                        |  Name        |  Rows    |  Bytes  |  Cost  (%CPU)|  Time          |  Inst      |IN-­‐OUT| -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |      0  |  SELECT  STATEMENT                          |                  |  20000  |        11M|      603      (0)|  00:00:01  |                |            | |      1  |    NESTED  LOOPS                                |                  |              |              |                        |                    |                |            | |      2  |      NESTED  LOOPS                              |                  |  20000  |        11M|      603      (0)|  00:00:01  |                |            | |      3  |        NESTED  LOOPS                            |                  |      200  |  15600  |          3      (0)|  00:00:01  |                |            | |      4  |          NESTED  LOOPS                          |                  |      200  |  13000  |          3      (0)|  00:00:01  |                |            | |      5  |            REMOTE                                    |  TAB3        |      200  |    7800  |          3      (0)|  00:00:01  |  PDBOR~  |  R-­‐>S  | |      6  |            REMOTE                                    |  TAB2        |          1  |        26  |          0      (0)|  00:00:01  |  PDBOR~  |  R-­‐>S  | |      7  |          REMOTE                                      |  TAB1        |          1  |        13  |          0      (0)|  00:00:01  |  PDBOR~  |  R-­‐>S  | |*    8  |        INDEX  RANGE  SCAN                    |  PK_TAB4  |          1  |              |          2      (0)|  00:00:01  |                |            | |      9  |      TABLE  ACCESS  BY  INDEX  ROWID|  TAB4        |      100  |  51400  |          3      (0)|  00:00:01  |                |            | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ Predicate  Information  (identified  by  operation  id): -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐      8  -­‐  access("TAB3"."UNIQUE#"="TAB4"."UNIQUE#"  AND  "TAB3"."BRANCH#"="TAB4"."BRANCH#"  AND                            "TAB3"."LOC#"="TAB4"."LOC#")              filter("TAB4"."UNIQUE#"=1  OR  "TAB4"."UNIQUE#"=2) 13年11月16日土曜日
  • 34. 改善できそうな箇所 -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |  Id    |  Operation                                        |  Name        |  Rows    |  Bytes  |  Cost  (%CPU)|  Time          |  Inst      |IN-­‐OUT| -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |      0  |  SELECT  STATEMENT                          |                  |  20000  |        11M|      603      (0)|  00:00:01  |                |            | |      1  |    NESTED  LOOPS                                |                  |              |              |                        |                    |                |            | |      2  |      NESTED  LOOPS                              |                  |  20000  |        11M|      603      (0)|  00:00:01  |                |            | |      3  |        NESTED  LOOPS                            |                  |      200  |  15600  |          3      (0)|  00:00:01  |                |            | |      4  |          NESTED  LOOPS                          |                  |      200  |  13000  |          3      (0)|  00:00:01  |                |            | |      5  |            REMOTE                                    |  TAB3        |      200  |    7800  |          3      (0)|  00:00:01  |  PDBOR~  |  R-­‐>S  | |      6  |            REMOTE                                    |  TAB2        |          1  |        26  |          0      (0)|  00:00:01  |  PDBOR~  |  R-­‐>S  | |      7  |          REMOTE                                      |  TAB1        |          1  |        13  |          0      (0)|  00:00:01  |  PDBOR~  |  R-­‐>S  | |*    8  |        INDEX  RANGE  SCAN                    |  PK_TAB4  |          1  |              |          2      (0)|  00:00:01  |                |            | |      9  |      TABLE  ACCESS  BY  INDEX  ROWID|  TAB4        |      100  |  51400  |          3      (0)|  00:00:01  |                |            | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ Predicate  Information  (identified  by  operation  id): -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ 3つのリモートクエリーをDB Linkを介して ネットワーク越しにNested Loop結合を行っ      8  -­‐  access("TAB3"."UNIQUE#"="TAB4"."UNIQUE#"  AND  "TAB3"."BRANCH#"="TAB4"."BRANCH#"  AND ている。                            "TAB3"."LOC#"="TAB4"."LOC#")              filter("TAB4"."UNIQUE#"=1  OR  "TAB4"."UNIQUE#"=2) この部分をすべてリモートデータベース内で 完結させれば、多少の効率改善になるのでは ないか.... 13年11月16日土曜日
  • 35. 治療方針 3つのリモートクエリーを インラインビューにまとめ ることで、1つのリモート クエリーとして効率化を狙 う SELECT        /*+  USE_NL(t01  tab4)  */        tab4.* FROM        (                SELECT                        /*+  NO_MERGE  */                        tab3.unique#                        ,tab3.branch#                        ,tab3.loc#                FROM                        tab1                        INNER  JOIN  tab2                        ON                                tab1.unique#  =  tab2.unique#  AND  tab1.unique#  IN  (1,2)                        INNER  JOIN  tab3                        ON                                tab2.unique#  =  tab3.unique#  AND  tab2.branch#  =  tab3.branch#        )  t01        INNER  JOIN  tab4        ON                t01.unique#  =  tab4.unique#  AND  t01.branch#  =  tab4.branch#        AND  t01.loc#        =  tab4.loc# ; 13年11月16日土曜日
  • 37. 治療後の実行計画(ローカル) -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |  Id    |  Operation                                        |  Name        |  Rows    |  Bytes  |  Cost  (%CPU)|  Time          |  Inst      |IN-­‐OUT| -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |      0  |  SELECT  STATEMENT                          |                  |  20000  |        10M|    2004      (1)|  00:00:01  |                |            | |      1  |    NESTED  LOOPS                                |                  |              |              |                        |                    |                |            | |      2  |      NESTED  LOOPS                              |                  |  20000  |        10M|    2004      (1)|  00:00:01  |                |            | |      3  |        VIEW                                            |                  |      200  |    7800  |          3      (0)|  00:00:01  |                |            | |      4  |          REMOTE                                      |                  |              |              |                        |                    |  PDBOR~  |  R-­‐>S  | |*    5  |        INDEX  RANGE  SCAN                    |  PK_TAB4  |      100  |              |          2      (0)|  00:00:01  |                |            | |      6  |      TABLE  ACCESS  BY  INDEX  ROWID|  TAB4        |      100  |  51400  |        10      (0)|  00:00:01  |                |            | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ Predicate  Information  (identified  by  operation  id): -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐      5  -­‐  access("T01"."UNIQUE#"="TAB4"."UNIQUE#"  AND  "T01"."BRANCH#"="TAB4"."BRANCH#"  AND                            "T01"."LOC#"="TAB4"."LOC#") Remote  SQL  Information  (identified  by  operation  id): -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐      4  -­‐  EXPLAIN  PLAN  SET  STATEMENT_ID='PLUS8440309'  INTO  PLAN_TABLE@!  FOR  SELECT  /*+  NO_MERGE  */              "A1"."UNIQUE#","A1"."BRANCH#","A1"."LOC#"  FROM  "TAB1"  "A3","TAB2"  "A2","TAB3"  "A1"  WHERE              "A2"."UNIQUE#"="A1"."UNIQUE#"  AND  "A2"."BRANCH#"="A1"."BRANCH#"  AND              "A3"."UNIQUE#"="A2"."UNIQUE#"  AND  ("A3"."UNIQUE#"=1  OR  "A3"."UNIQUE#"=2)  AND  ("A2"."UNIQUE#"=1              OR  "A2"."UNIQUE#"=2)  AND  ("A1"."UNIQUE#"=1  OR  "A1"."UNIQUE#"=2)  (accessing  'PDBORCL_R'  ) 13年11月16日土曜日
  • 38. 治療後の実行計画(リモート) -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |  Id    |  Operation                      |  Name        |  Rows    |  Bytes  |  Cost  (%CPU)|  Time          | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ |      0  |  SELECT  STATEMENT        |                  |        20  |      420  |          3      (0)|  00:00:01  | |      1  |    NESTED  LOOPS              |                  |        20  |      420  |          3      (0)|  00:00:01  | |      2  |      NESTED  LOOPS            |                  |        20  |      340  |          3      (0)|  00:00:01  | |      3  |        INLIST  ITERATOR    |                  |              |              |                        |                    | |*    4  |          INDEX  RANGE  SCAN|  PK_TAB3  |      200  |    2000  |          3      (0)|  00:00:01  | |*    5  |        INDEX  UNIQUE  SCAN|  PK_TAB2  |          1  |          7  |          0      (0)|  00:00:01  | |*    6  |      INDEX  UNIQUE  SCAN  |  PK_TAB1  |          1  |          4  |          0      (0)|  00:00:01  | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ Predicate  Information  (identified  by  operation  id): -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐      4  -­‐  access("A1"."UNIQUE#"=1  OR  "A1"."UNIQUE#"=2)      5  -­‐  access("A2"."UNIQUE#"="A1"."UNIQUE#"  AND                            "A2"."BRANCH#"="A1"."BRANCH#")              filter("A2"."UNIQUE#"=1  OR  "A2"."UNIQUE#"=2)      6  -­‐  access("A3"."UNIQUE#"="A2"."UNIQUE#")              filter("A3"."UNIQUE#"=1  OR  "A3"."UNIQUE#"=2) 13年11月16日土曜日
  • 42. Oracle® Database管理者ガイド 12c リリース1 (12.1) 分散問合せのチューニング http://docs.oracle.com/cd/E49329_01/server. 121/b71301/ds_appdev.htm#i1007640 13年11月16日土曜日
  • 46. 精密検査(コード) DECLARE        CURSOR  cs_foobar  IS                SELECT                        rowid                FROM                        foobar                WHERE                        unique#  BETWEEN  1  AND  400000                ORDER  BY                        unique#                FOR  UPDATE; BEGIN        FOR  row  IN  cs_foobar  LOOP              UPDATE  foobar              SET                      foobar_str  =  LPAD('y',500,'y')              WHERE                      rowid  =  row.rowid;        END  LOOP;        COMMIT; END; / 13年11月16日土曜日
  • 47. 精密検査(コード) DECLARE        CURSOR  cs_foobar  IS                SELECT                        rowid                FROM                        foobar                WHERE                        unique#  BETWEEN  1  AND  400000                ORDER  BY                        unique#                FOR  UPDATE; BEGIN        FOR  row  IN  cs_foobar  LOOP              UPDATE  foobar              SET                      foobar_str  =  LPAD('y',500,'y')              WHERE                      rowid  =  row.rowid;        END  LOOP;        COMMIT; END; / 13年11月16日土曜日
  • 48. 精密検査(統計情報) USER_INDEXESより TABLE_NAME INDEX_NAME NUM_ROWS DISTINCT_KEYS CLUSTERING_FACTOR -------------- --------------- ---------- ------------- ----------------FOOBAR SYS_C0010235 2070913 2070913 2070899 USER_IND_COLUMNSより NDEX_NAME COLUMN_NAME ---------------- -------------SYS_C0010235 UNIQUE# USER_TABLESより TABLE_NAME NUM_ROWS AVG_ROW_LEN ------------ ---------- ----------FOOBAR 2000000 506 13年11月16日土曜日