Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 15

4,647 views

Published on

SQLチューニングと対戦格闘ゲームの類似性について語ってます。JPOUG Advent Calendar 2016 の Day 15 の記事となります。

Published in: Technology
  • If you want to download or read this book, Copy link or url below in the New tab ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • -- DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT -- ......................................................................................................................... ......................................................................................................................... Download FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... (Unlimited)
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ...................................ALL FOR EBOOKS................................................. Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes.........ACCESS WEBSITE Over for All Ebooks ..... (Unlimited) ......................................................................................................................... Download FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • ACCESS that WEBSITE Over for All Ebooks (Unlimited) ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... DOWNLOAD FULL EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M }
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 15

  1. 1. JPOUG Advent Calendar 2016 – Day15 - SQLチューニングと 対戦格闘ゲームの 類似性について語る。 柴田 歩
  2. 2. 2 自己紹介代わりの コンテンツ類  DDD 2013 SQLチューニングに 必要な考え方と最新テクニック  http://www.oracle.com/technet work/jp/ondemand/ddd-2013- 2051348-ja.html  ブログ「ねら~ITエンジニア雑記」  http://d.hatena.ne.jp/gonsuke777/  Bind Peek をもっと使おうぜ! -JPOUG Advent Calendar 2014-  http://d.hatena.ne.jp/gonsuke777/ 20141205/1417710300  まだ統計固定で消耗してるの? -JPOUG Advent Calendar 2015-  http://d.hatena.ne.jp/gonsuke777/ 20151208/1449587953  JPOUG Tech Talk Night #6 「固定化か?最新化か?オプティ マイザ統計の運用をもう一度考え る。」  http://d.hatena.ne.jp/gonsuke777 /20160226/1456488499  Oracle DDD 2016 - オラクル・コンサルが語る!- SQL 性能を最大限に引き出す DB 12c クエリー・オプティマイザ 新 機能活用 と 統計情報運用の戦略 http://www.oracle.com/technetwork/j p/ondemand/ddd-2016-3373953- ja.html Here comes new challenger !!!
  3. 3. 3 Warning!この書き物はポエムです! この書き物はワイ(柴田 歩)が、 SQLチューニングと対戦格闘ゲームの 類似性について綴ったポエムです。 ポエムであるが故に、技術的に役に立つこ とは一切書かれてないので、それは予め ご承知置きして下さいやで彡(゚)(゚)
  4. 4. 4 はじめに
  5. 5. 5 対戦格闘ゲームとは そもそも何なのか? (知らない人向け) はじめに
  6. 6. 6 こういうの (c)CAPCOM ストリートファイター2より
  7. 7. 7 通常 は 2本 or 3本先取で勝ち (c)CAPCOM ストリートファイター2より
  8. 8. 8 過去ワイがやりこんだ格ゲー (c)CAPCOM ストリートファイター2より スト2(ダルシム) バーチャ2(ラウ) (c)SEGA バーチャファイター2より
  9. 9. 9 過去ワイがやりこんだ格ゲー(キリが無いので次へ (c)CAPCOM ストリートファイターZERO3より ストZERO3(Vダルシム) バーチャ4(ブラッド) (c)SEGA バーチャファイター4 エボリューション より
  10. 10. 10 類似点その1 まずは基礎知識が重要 類似点その1
  11. 11. 11 類似点1・まずは基礎知識が重要(格ゲーの例) 立ちPの発生フレーム (軽量級11F, 中量級12F, 重量級13F) (c)SEGA バーチャファイター5 より 有利/不利(硬化差) (ガード時-4F, Hit時+5F, Chit時+7F) (c)SEGA バーチャファイター5 より
  12. 12. 12 類似点1・まずは基礎知識が重要(SQLチューニングの例) SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('g9gnrhjwajfnn', NULL, ‘ALL ALLSTATS LAST')); ------------------------------------------- | Id | Operation | Name | ------------------------------------------- | 0 | SELECT STATEMENT | | |* 1 | HASH JOIN | | | 2 | TABLE ACCESS FULL| TEST_TABLE_A | |* 3 | TABLE ACCESS FULL| TBL_B | ------------------------------------------- 実行計画の確認(実行計画の 取り方、読み方の知識が必要) 10:48:08 SQL> SELECT /*+ MONITOR */ 10:48:08 2 A.* 10:48:08 3 FROM TEST_TABLE_A A 10:48:08 4 , TBL_B B 10:48:08 5 WHERE A.P_NO2 = B.P_NO 10:48:08 6 AND A.P_CHAR = B.P_CHAR 10:48:08 7 AND TO_CHAR(B.P_DATE, 'YYYYMMDD') = '20120801'; 1102 rows selected. Elapsed: 00:00:04.71 : Statistics ---------------------------------------------------------- 8994 consistent gets 59 physical reads SQLの性能計測、ボトルネック特定 (正しいSQL性能計測の知識が必要) 結合順序 結合操作 アクセスパス 実行時間 仕事量 (論理読込、 物理読込)
  13. 13. 13 類似点その2 セオリーの重要性 類似点その2
  14. 14. 14 類似点2. セオリーの重要性(格ゲーの例) 大きな有利フレームを取ったら… 大技狙いだ! (c)SEGA バーチャファイター5 より (c)SEGA バーチャファイター5 より 小さな有利フレームを取ったら… 投げと中段の二択だ! 投げ 中段 (c)SEGA バーチャファイター5 より
  15. 15. 15 類似点2. セオリーの重要性(SQLチューニングの例) FULL SCANには… INDEXだ! ------------------------------------------- | Id | Operation | Name | ------------------------------------------- | 0 | SELECT STATEMENT | | |* 1 | HASH JOIN | | | 2 | TABLE ACCESS FULL| TEST_TABLE_A | |* 3 | TABLE ACCESS FULL| TBL_B | ------------------------------------------- ---------------------------------------------- | Id | Operation | Name | ---------------------------------------------- | 0 | SELECT STATEMENT | | | 1 | NESTED LOOPS | | |* 2 | TABLE ACCESS FULL| TBL_B | |* 3 | INDEX RANGE SCAN | TEST_TABLE_A_I2 | ---------------------------------------------- ------------------------------------------------------------- | Id | Operation | Name | E-Rows | A-Rows | ------------------------------------------------------------- | 0 | SELECT STATEMENT | | | 1102 | |* 1 | HASH JOIN | | 81 | 1102 | | 2 | TABLE ACCESS FULL| TEST_TABLE_A | 0 | 2600K| |* 3 | TABLE ACCESS FULL| TBL_B | 300 | 11 | ------------------------------------------------------------- 0件統計には… ------------------------------------------------------------- | Id | Operation | Name | E-Rows | A-Rows | ------------------------------------------------------------- | 0 | SELECT STATEMENT | | | 1102 | |* 1 | HASH JOIN | | 30012 | 1102 | |* 2 | TABLE ACCESS FULL| TBL_B | 300 | 11 | | 3 | TABLE ACCESS FULL| TEST_TABLE_A | 2600K| 2600K| ------------------------------------------------------------- オプティマイザ統計採取だ!
  16. 16. 16 類似点その3 練習と実践(実戦) 類似点その3
  17. 17. 17 類似点3. 練習と実践(実戦)(格ゲーの例) コンボ(連続技)の練習 避け+投げ抜けの練習 (c)SEGA バーチャファイター5 より (c)SEGA バーチャファイター5 より
  18. 18. 18 類似点3. 練習と実践(実戦)(SQLチューニングの例) ボトルネック特定の練習(リアルタイムSQL監視) =================================================================================== | Id | Operation | Name | Activity | Activity Detail | | | | | (%) | (# samples) | =================================================================================== | 0 | SELECT STATEMENT | | | | | 1 | SORT UNIQUE | | | | | 2 | UNION-ALL | | | | | : | : | : | : | : | | 7 | VIEW | VM_NWVW_1 | | | | -> 8 | HASH GROUP BY | | 92.11 | Cpu (1168) | | -> 9 | HASH JOIN | | 7.57 | Cpu (96) | | 10 | INDEX RANGE SCAN | xxxx11101 | | | | : | : | : | : | : | | 20 | TABLE ACCESS FULL | xxxx111 | | | =================================================================================== ここが遅そう。 Rows (1st) Rows (avg) Rows (max) Row Source Operation ---------- ---------- ---------- ---------------------------------- 1102 1102 1102 HASH JOIN (cr… time=13798759 ... 2600026 2600026 2600026 TABLE ACCESS FULL TEST_TABLE_A (cr=8831 ... time=276773 ... 11 11 11 TABLE ACCESS FULL TBL_B (cr... time=16130 ... Enterprise Edition の Option が無くたって特定だ!(SQLトレース) ここが遅そう。
  19. 19. 19 類似点その4 超高速PDCA 類似点その4
  20. 20. 20 類似点4. 超高速PDCA(格ゲーの例) こういう攻防(PDCA)を”フレーム単位”で繰り広げるのが格ゲー 防御行動(ガード、 ぼっしゃが、避け抜け等) 投げ 中段技 成功 (二択へ) 失敗 暴れ(出の速い上下段、 デカい中段、等) 成功 (コンボへ) 成功 (起き攻めへ) (c)SEGA バーチャファイター5 より (c)SEGA バーチャファイター5 より (c)SEGA バーチャファイター5 より
  21. 21. 21 類似点4. 超高速PDCA(SQLチューニングの例) こういう攻防(PDCA)を”分~秒単位”で 繰り広げるのが、SQLチューニング EXPLAIN PLAN ------------------------------------------- | Id | Operation | Name | ------------------------------------------- | 0 | SELECT STATEMENT | | |* 1 | HASH JOIN | | | 2 | TABLE ACCESS FULL| TEST_TABLE_A | |* 3 | TABLE ACCESS FULL| TBL_B | ------------------------------------------- 実行計画の確認(EXPLAIN) 10:48:08 SQL> SELECT /*+ MONITOR */ : Elapsed: 00:00:04.71 : Statistics ------------------------------------------------------ 8994 consistent gets 59 physical reads SQL性能計測 ========================================================================= | Id | Operation | Name | Activity Detail | ========================================================================= | 0 | SELECT STATEMENT | | | | 1 | HASH JOIN | | Cpu (9) | | | | | direct path write temp (1) | | 2 | TABLE ACCESS FULL | TEST_TABLE_A | Cpu (1) | | 3 | TABLE ACCESS FULL | TBL_B | | ========================================================================= ボトルネック特定 -- 索引作成 CREATE INDEX~ -- 統計採取 EXEC DBMS_STATS.GATHER_TABLE_STATS~ -- チューニング・アドバイザ EXEC DBMS_SQLTUNE.EXECUTE_TUNING_TASK~ -- ヒント文 SELECT /*+ LEADING(B A) USE_HASH(A) */ ~ etc… チューニングの試行
  22. 22. 22 類似点その5 判り易い結果 類似点その5
  23. 23. 23 類似点5. 判り易い結果(格ゲーの例) 勝つか 負けるか (c)CAPCOM ストリートファイター2より (c)CAPCOM ストリートファイター2より
  24. 24. 24 類似点5. 判り易い結果(SQLチューニングの例) 速くなるか 遅くなる(変わらない)か 21:25:11 SQL> SELECT /*+ MONITOR … : Elapsed: 00:00:04.09 : Statistics ---------------------------------------------- 121997 consistent gets 11129 physical reads : 21:05:34 SQL> SELECT /*+ MONITOR … : Elapsed: 00:00:00.99 : Statistics ----------------------------------------------- 8986 consistent gets 8901 physical reads : 21:05:34 SQL> SELECT /*+ MONITOR … : Elapsed: 00:00:00.99 : Statistics ----------------------------------------------- 8986 consistent gets 8901 physical reads : 21:22:49 SQL> SELECT /*+ MONITOR : Elapsed: 00:00:00.14 : Statistics ---------------------------------------------------------- 254 consistent gets 140 physical reads :
  25. 25. 25 類似点その6 個性的な プレイヤー(SQL) 類似点その6
  26. 26. 26 類似点6. 個性的なプレイヤー(格ゲーの例) 梅原大吾氏 ウメハラ こと 梅原大吾氏 バーチャ神 こと ちび太氏 格闘新世紀VI優勝時のちび太氏 梅原氏伝説の試合(スト3日米大会準決勝) (c) CAPCOM ストリートファイター3より
  27. 27. 27 類似点6. 個性的なSQL(SQLチューニングの例) SQLテキスト6700行超・実行計画 500ステップ超の化け物SELECT文 彡(゚)(゚) 「……これの性能要件って何分位ですやろうか?」 お客様「オンライン画面のなんで、3秒ですやで。」 彡(゚)(゚) 「ファッ!?このSQLで3秒は無理なんやないでしょうか…」 お客様「でも偶に10秒位で返ってくるんですよ。」 彡(゚)(゚) 「マ?100%でないとはいえOracleすごいんやな。。。」 ※最終的には何とかなりました。。。 210億件から7億件を抽出して グルーピング/サマリする鬼SQL お客様 「SQLはアプリでアドホックに動的生成されるので、ヒント やSPMは使えません。明細データから動的に集計するのがエン ドユーザ要件なので、事前集計のマートやMviewは使えません。 RFPの記載要件で3秒以内に返ってくる必要があります。。。」 彡(-)(-) 「両手両足縛られた状態で、4km泳げないのは無能で す。許しません。。。みたいな要件は止めてクレメンス……」 ※最終的には何とかなりました。。。
  28. 28. 28 まとめ?
  29. 29. 29 格ゲーの対戦を楽しむように (c)SEGA バーチャファイター4 より (c)SEGA バーチャファイター2 より (c)CAPCOM ストリートファイター2 より
  30. 30. 30 SQLチューニングを楽しめ! ------------------------------------------- | Id | Operation | Name | ------------------------------------------- | 0 | SELECT STATEMENT | | |* 1 | HASH JOIN | | | 2 | TABLE ACCESS FULL| TEST_TABLE_A | |* 3 | TABLE ACCESS FULL| TBL_B | -------------------------------------------
  31. 31. 31 果てしない戦いの末に (c)SEGA バーチャファイター5 より (c)CAPCOM ストリートファイターZERO3 より (c)CAPCOM ストリートファイター5 より
  32. 32. 32 SQLチューニングと対戦格闘ゲームの真髄を
  33. 33. 33 確かみてみろ!
  34. 34. 34 画像引用元(引用順)  (c)CAPCOM ストリートファイター2  (c)SEGA バーチャファイター2  (c)CAPCOM ストリートファイターZERO3  (c)SEGA バーチャファイター4 エボリューション  (c)SEGA バーチャファイター5  (c)CAPCOM ストリートファイター5  STREET FIGHTER III RYU FINAL -闘いの先に- 中平 正彦(著)・新声社(出版)
  35. 35. 35 おわり ご清聴、サンガツだったやで!

×