SlideShare ist ein Scribd-Unternehmen logo
1 von 44
Downloaden Sie, um offline zu lesen
Bind Peek をもっと使おうぜ! 
柴田 歩
2 
免責事項/注意事項 
 本資料において示されている見解は、私自身(柴田 歩)の 
見解であり、Oracle Corporation 及び 日本オラクル社 
の見解を必ずしも反映したものではありません。 
予めご了承ください。
3 
自己紹介 
 日本オラクル株式会社 
テクノロジーコンサルティング統括本部 
DBアーキテクト部 
プリンシパルコンサルタント 
柴田 歩(しばた あゆむ) 
 シバタツさん、しばちょうさん に 続く 3人目 の 柴田 ! 
 2007年4月に中途で入社 
DBの製品コンサルとして、DB関連のプロジェクトを歴任
4 
DDD 2013 で↓のセミナーもやりました 
コレ 
 http://www.oracle.com/technetwork/jp/ondemand/ddd-2013-2051348-ja.html
5 
こうならんように、頑張ります。 
:::::::: ┌─────────────── ┐ 
:::::::: | 歩 がやられたようだな | 
::::: ┌───└───────────v───┬┘ 
::::: | ククク…奴はOracle三柴田の中で最弱 | 
┌──└────────v──┬───────┘ 
| 我ら柴田の面汚しよ │ 
└────v─────────┘ 
|ミ, / `ヽ /! ,.──、 
|彡/二Oニニ|ノ /三三三!, |! 
`,' \、、_,|/-ャ ト `=j r=レ /ミ !彡 ● 
T 爪| / / ̄|/´__,ャ |`三三‐/ |`=、|,='| _(_ 
/人 ヽ ミ='/|`:::::::/イ__ ト`ー く__,-, 、 _!_ / ( ゚ω ゚ ) 
/ `ー─'" |_,.イ、 | |/、 Y /| | | j / ミ`┴'彡\ ' ` 
シバタツ しばちょう 恭平 勝家
6 
目次 
 1章. イントロダクション 
 2章. 前提知識 
 3章. 統計運用と「Bind Peek(他)」の組み合わせで考える。 
 4章. まとめ
7 
1章. イントロダクション
8 
こんなガイド、してませんか? 
「ミッションクリティカルなシステムでは 
Bind Peek は false にして、SQL性能を 
安定させることが推奨です。 」
9 
烈○王先生 から 一言
10 
Bind Peek無効化が安全神話と化してないか? 
Bind Peek無効化は昔から言われ続けた結果、 
「安全神話」と化しているのではないか? 
「安全神話」の意味 
– 絶対安全だという信頼感。言外に根拠のない 
思い込み、錯覚にすぎないという含みがある。 
安全性が保たれている時はこの言葉は使用されず、 
崩れた時に使用される。 
– hatena keywordより
11 
「2000年前~」は言い過ぎだけど、、、 
まあ「2000年前~」は言い過ぎなんですけど、 
Bind Peek無効化 を昔の知識だけで、呪文の 
ように唱え続るのは良くないすよ(゚ε゚ ) 
– そう云う人は割と多いんじゃないか??? 
Bind Peekの動作や、関連する機能も 
振りかえりつつ、もう一度考えてみる。
12 
2章. 前提知識
13 
Bind Peek の概要 
SQLが同じ場合でも、与えられたバインド変数値に 
よって実行計画を使い分ける(最適化する)機能 
SELECT * FROM TBL_A WHERE COL1 >= :B1 
------------------------------------ 
| Id | Operation | Name | 
------------------------------------ 
| 0 | SELECT STATEMENT | | 
| 1 | TABLE ACCESS FULL | TBL_A | 
------------------------------------ 
------------------------------------------------- 
| Id | Operation | Name | 
------------------------------------------------- 
| 0 | SELECT STATEMENT | | 
| 1 | TABLE ACCESS BY INDEX ROWID | TBL_A | 
| 2 | INDEX RANGE SCAN | TBL_A_I1 | 
------------------------------------------------- 
1の場合 10000の場合
14 
10gR2までの動作は... 
 10gR2までは、初回ハード・パース時のバインド変数値 
によって作成された実行計画で固定されてしまう。 
SELECT * FROM TBL_A WHERE COL1 >= :B1 
------------------------------------ 
| Id | Operation | Name | 
------------------------------------ 
| 0 | SELECT STATEMENT | | 
| 1 | TABLE ACCESS FULL | TBL_A | 
------------------------------------ 
------------------------------------------------- 
| Id | Operation | Name | 
------------------------------------------------- 
| 0 | SELECT STATEMENT | | 
| 1 | TABLE ACCESS BY INDEX ROWID | TBL_A | 
| 2 | INDEX RANGE SCAN | TBL_A_I1 | 
------------------------------------------------- 
1の場合 初回のPLAN 
で固定 
・10gR2 までは Bind Peek=false が推奨 
・この推奨が、今日まで続く「安全神話」の始まり 
10000の場合
15 
11gR1で「優れたカーソル共有」が導入 
 11gR1からは「優れたカーソル共有(Adaptive Cursor 
Sharing)」導入で、複数の実行計画を併用するようになった。 
– Bind Peek を無効化した場合は、当機能も無効化されます。 
SELECT * FROM TBL_A WHERE COL1 >= :B1 
------------------------------------ 
| Id | Operation | Name | 
------------------------------------ 
| 0 | SELECT STATEMENT | | 
| 1 | TABLE ACCESS FULL | TBL_A | 
------------------------------------ 
------------------------------------------------- 
| Id | Operation | Name | 
------------------------------------------------- 
| 0 | SELECT STATEMENT | | 
| 1 | TABLE ACCESS BY INDEX ROWID | TBL_A | 
| 2 | INDEX RANGE SCAN | TBL_A_I1 | 
------------------------------------------------- 
1の場合 10000の場合 
10gR2までの欠点は、11gR1以降は概ね解消されている。 
バインド変数に応じて 
PLANを使い分け
16 
関連機能: Cardinality Feedback の概要 
 11gR2からの新機能 
 初回SQL実行時の情報を Feedback して、 
2回目以降の実行計画を最適化する機能 
– 実行統計としてのカーディナリティを Feedback 
– オプティマイザ統計から算出したカーディナリティと、 
実行時のカーディナリティが乖離していた場合に、 
ハード・パースを再度実施して実行計画を再作成する。 
– KROWN# 147614
17 
関連機能:Dynamic Sampling の概要 
 9iR2からの機能 
 ハード・パース時にオプティマイザ統計が NULL の 
テーブル/索引が存在した場合、それらの統計を動的 
にサンプリングして、実行計画を最適化する機能 
– ヒント等で明示的に動作させることも可能 
– KROWN#55982 
 11.2.0.4以降は”動的統計”と云う名称に 
 12c からは永続情報として、他クエリからも参照可能
18 
関連機能:12c の実行計画関連・新機能 
 適応計画(Adaptive Plan) 
– SQLの実行時に予測(実行計画)と実行統計が乖離してい 
る場合に、実行計画を予め用意されていたサブプランへ 
"動的"に切り替えて最適化する機能 
SQL計画ディレクティブ 
– SQLの予測(実行計画)と実行時でカーディナリティが乖 
離している場合に、ヒストグラムや拡張統計を採取する 
ためのエントリを保持しておく機能
19 
SQLと云う言語の特徴 
 SQLと云う言語は、データ抽出時に「何を(What)抽出するか」 
の“条件”のみを記述し、「どうやって(How)抽出するか」を記述 
しない、他言語には無い特徴を有します。 
– 多くの言語では、繰り返し(for~, while~)や 
条件分岐(if~, case~)などのアルゴリズムを記述する必要があります。 
 どうやって(How)データを抽出するか、即ちアルゴリズムの 
決定・制御は、RDBMS の Optimizer で行われます。 
– Optimizer が決定したアルゴリズム = 実行計画です。 
プログラム 
“条件”のみを記述 
Optimizer 
SQL データ 
アルゴリズムを決定/制御 
※Oracle DBA & Developer Day 2013 資料より
20 
SQLのアルゴリズムは「予測」で組み立てられる。 
 SQL の アルゴリズム≒実行計画 は、オプティマイザが 
最適と考えられるものを「予測」して組み立てます。 
 そして「予測」である以上、必ずハズレのケースが出てきます。 
– ハズレの実行計画を引くと、性能問題として顕在化! 
– SQLの特徴に由来する、全てのRDBMSに共通した本質的な困難 
– 各ベンダやオープンソースのRDBMSは、このSQLの本質的な困難に 
立ち向かうべく、日々凌ぎを削っています。(もちろんOracleも!) 
 まずこのハズレの実行計画の存在を意識/認識しておくのが、 
本セミナーの出発点となります。 
※Oracle DBA & Developer Day 2013 資料より
21 
1枚前で書いた事、とても重要ですYO! 
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 
| ちょ、ちょーとまって!!!今>>1が何か言ったから静かにして!! 
, ,-;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:,.ヽ─y────────────── ,-v-、 
/;:;:;:;:;:;:ミミ;:;:;:;:;:;:;:;:;:;`、 / _ノ_ノ:^) 
/;:;:;:;:彡―ー-、_;:;:;:;:;:;:;:;| / _ノ_ノ_ノ /) 
|;:;:;:ノ、 `、;;:;:;:;:;:i / ノ ノノ// 
|;:/_ヽ ,,,,,,,,,, |;:;:;:;:;:;! ____/ ______ ノ 
| ' ゚ ''/ ┌。-、 |;:;:;:;:/ _.. r(" `ー" 、 ノ 
|` ノ( ヽ ソ |ノ|/ _. -‐ '"´ l l-、 ゙ ノ 
_,-ー| /_` ”' \ ノ __ . -‐ ' "´ l ヽ`ー''"ー'" 
| : | )ヾ三ニヽ /ヽ ' "´/`゙ ーァ' "´ ‐'"´ ヽ、`ー /ノ 
ヽ `、___,.-ー' | / / __.. -'-'" 
| | \ / | l / . -‐ '"´ 
\ |___>< / ヽ 
AAが古いのは、赦せ…
22 
「予測」と「Bind Peek(他)」の関係 
SQLの実行計画は「予測」で組み立てられ、 
「予測」である以上、ハズレから逃れられません。 
– OracleDB に限らない、全てのRDBMSに共通した困難 
 そして「Bind Peek」を初めとした実行計画最適化機能は、 
全て実行計画の予測精度を上げる、 
あるいは予測を補正するために存在します。 
– ハズレの実行計画を引く確率を下げる。 
– あるいはハズレた予測(実行計画)を補正する。 
 これらの前提を踏まえた上で、次逝ってみよう!(`・ω・)Ъ
23 
3章. 統計運用と「Bind Peek(他)」 
の組み合わせで考える。
24 
2つのオプティマイザ統計運用 
CBO のキモであるオプティマイザ統計は、 
実行計画と切っても切れない関係 
 そしてオプティマイザ統計運用は、(色々な思想は 
有るんでしょうが)以下の2つにおよそ大別されます。 
– 統計をある断面で固定する「固定化運用」 
– 統計を常に最新化する「最新化運用」
25 
固定化/最新化 と Bind Peek等 の 組み合わせ 
 オプティマイザ統計の運用形態によって、 
Bind Peek等の実行計画最適化機能を 
使うか、使わないかは、変わってくる、、、 
 「固定化」「最新化」の2つの統計運用と、Bind Peek等の 
最適化機能との組み合わせモデルで、考えてみます。 
– ①固定化運用+最適化無し のモデル 
– ②最新化運用+最適化有り のモデル 
– ③最新化運用+最適化無し のモデル
26 
①固定化運用+最適化無し の動作を考える。 
 ①の組み合わせでは、ある断面で固定された、 
あるいは 手作りのオプティマイザ統計を基にした、 
単一PLANを使い続ける。 
– 統計が変動しないので、実行計画は変動しにくい。 
– 統計が実態と乖離し易く、最適化機能も無いので 
全体的な SQL性能は悪い。
27 
①固定化+最適化無し モデルのSQL処理時間イメージ 
時間経過(データ件数) 
処理 
時間 短 
長 
PLAN2 
単一PLANを 
使い続ける 
動作するプ 
ラン
28 
①固定化+最適化無し モデルの評価 
 リスクヘッジと云う意味では良い。(そりゃそうだ。) 
 でも実態と乖離した統計と最適化無しで、SQL性能は悪い。 
 それと統計を手動でセットしながら固定するのは、 
滅茶苦茶大変じゃないですかねぇ、、、(白目 
– 行数(NUM_ROWS)/レコード長(AVG_ROW_LEN) ← わかる 
– 個別値数(DISTINCT_KEYS)/索引の深さ(BLEVEL) ← まあわかる 
– CLUSTERING_FACTOR/AVG_LEAF_BLOCKS_PER_KEY/ 
AVG_DATA_BLOCKS_PER_KEY 
↑ wwwwww????wwwwwwwwwwwww???ww 
 最後らへんのを出来る人は、良くも悪くも 神/仙人/職人
29 
つぎは ②最新化運用+最適化有り の動作 
 ②の組み合わせでは、常時最新化されたオプティマイザ統計 
を基にして、複数PLANを使いながら実行計画は変動し続ける。 
– フレッシュな統計 と 様々な最適化機能によって、 
実行計画の予測精度は高く、全体的な SQL性能 は良い。 
– 優れたカーソル共有機能により、複数PLANを併用可能 
– 異なる実行計画(予測)の分岐点では、 
それらのPLANを併用して少しずつ遷移するイメージ
30 
時間経過(データ件数) 
処理 
時間 短 
長 
PLAN1 PLAN2 PLAN3 
PLAN4 
複数PLANのコスト(予測) 
近接点で、各PLANを併用しなが 
ら少しづつ遷移していくイメージ 
動作するプ 
ラン 
②最新化+最適化有り モデルのSQL処理時間イメージ
31 
②最新化+最適化有り モデルの評価 
 フレッシュな統計と最適化機能のお陰で、SQL性能は良い。 
 リスクヘッジと云う意味でも、別に悪くないよ??? 
– ハズレの実行計画を引く確率が低い。(リスクが低い。) 
– 加えて各種補正機能で、ハズレを引いた時の 
性能劣化も少ない。 (リスクが低い。) 
– 更に複数PLAN併用の効果で、実行計画変化に伴う 
性能変動が穏やかに出る。(リスクが低い。) 
 但し性能劣化のリスクを 0(ゼロ) にはできない。何故なら 
SQL だから。SQL のアルゴリズムは予測だから。 
– Bind Peek のせいではない、、、と云うのがポイント
32 
最後に ③最新化運用+最適化無し の動作 
 ③の組み合わせでは、常時最新化されたオプティマイザ統計 
を基にして、実行計画が変動し続ける。 
– 実行計画の予測精度は ② よりも低く、SQL性能は悪い。 
– 優れたカーソル共有が無効化されるため、 
ある瞬間では単一PLANが使用される。
33 
時間経過(データ件数) 
処理 
時間 短 
長 
PLAN2 
PLAN4 
ハズレのPLANを引いた 
時の性能劣化が大きい 動作するプ 
ラン 
PLANのバリエーションも少ない。 
(列統計/ヒストグラム未使用) 
ある瞬間では単一PLANしか選択さ 
れない(※複数PLAN併用不可) 
③最新化+最適化無し モデルのSQL処理時間イメージ
34 
③最新化+最適化無し モデルの評価 
 ハズレの実行計画を引き易いと云う意味で、リスクは高い。 
– Bind Peekを無効化すると、列統計/ヒストグラム/拡張統計 を 
見なくなる。予測精度を高める上では、相当不利ですよ。 
– 複数PLAN併用不可 で 予測補正機能 も無く、 
ハズレの実行計画を引いた時のダメージがデカい。 
 そして 最適化機能無効化(bind peekを無効化、等)は、 
統計固定と組み合わせて、初めて意味が出てくる。 
– 統計が変動する時点で、実行計画も変動するよ??? 
– それなのに、Bind Peek「だけ」無効化しても意味無くない???
35 
② と ③ の性能変動モデルケース比較 
 「赤線」が直線に近いほど、リスクは低い。 
 どっちが直線に近いか???と云うこと 
②最新化+最適化有り ③最新化+最適化無し
36 
解る?前のスライ 
ドの意味解ります 
か?
37 
Bind Peek(等)を有効化した方がリスクは低い! 
 モデルケースの比較にも表れているように、 
最新化運用においては最適化機能を有効化した方が 
リスクは低い!(断言 
– 実行計画の種類が少ない = SQL性能が安定、、、ではない。 
– 最適化機能の無効化は固定化運用との組み合わせが前提 
 にも関わらず、どんなシステムでもお構いなく、 
「取り敢えず」「無邪気に」「今までやってきたし」 
「実績有るから、、、(震え声)」 てな感じに、 
Bind Peek を無効化している人達はとても多いのでは?
38 
もう一度、良く考え直してみよう。 
 システムの重要度や体制、アプリケーション特性や 
開発/インフラのスキル、最適化機能を on/off する 
事のメリデメ等によって、最適な構成や設定、 
運用は変わってくるはず。 
– 少なくとも、今は Bind Peek無効化一択 の時代じゃない。 
– デフォルト設定なので、ナチュラルに使いこなしている 
お客様/システムも大勢いらっしゃいます(`・ω・)ゞ 
 ではどのようなシステムや体制が、この資料で 
出してきたモデルにマッチするかと云うと、、、
39 
今回はここまで
40 
4章. まとめ
41 
まとめ 
SQLのアルゴリズム=実行計画は予測で 
組み立てられ、予測ゆえのハズレが不可避 
– 全ての RDBMS に共通した、SQLが抱える本質的な困難 
Bind Peek を初めとした実行計画の最適化機能 
は、予測精度を向上/補正するための機能 
– SQL の本質的な困難に、真正面から挑んでいる! 
これらを *安易に* 無効化するのは、非推奨 
– 思考停止してませんか?もう一度良く考え直してみましょう。
42 
最後にもっかい煽っとく。 
Bind Peek(等) を *安易に* 無効化する輩は… …
43 
お詫び 
 全体的に煽り気味なのは、その方が喰い付きが 
良いだろうと云う目論見で、他意はありません。 
 和むように、ようかんマン を置いてきますね。。。 
殺伐としたスレに救世主が! 
. __ 
ヽ|・∀・|ノ ようかんマン 
|__| 
| |
44 
おわり 
ご清聴、ありがとうございました!

Weitere ähnliche Inhalte

Was ist angesagt?

固定化か?最新化か?オプティマイザ統計の運用をもう一度考える。 -JPOUG Tech Talk Night #6-
固定化か?最新化か?オプティマイザ統計の運用をもう一度考える。 -JPOUG Tech Talk Night #6-固定化か?最新化か?オプティマイザ統計の運用をもう一度考える。 -JPOUG Tech Talk Night #6-
固定化か?最新化か?オプティマイザ統計の運用をもう一度考える。 -JPOUG Tech Talk Night #6-歩 柴田
 
Oracle Database In Lock
Oracle Database In LockOracle Database In Lock
Oracle Database In LockRyota Watabe
 
まだ統計固定で消耗してるの? - Bind Peek をもっと使おうぜ! 2015 Edition -
まだ統計固定で消耗してるの? - Bind Peek をもっと使おうぜ! 2015 Edition -まだ統計固定で消耗してるの? - Bind Peek をもっと使おうぜ! 2015 Edition -
まだ統計固定で消耗してるの? - Bind Peek をもっと使おうぜ! 2015 Edition -歩 柴田
 
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#2
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#2しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#2
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#2オラクルエンジニア通信
 
Oracle Gen 2 Exadata Cloud@Customer:サービス概要のご紹介 [2021年7月版]
Oracle Gen 2 Exadata Cloud@Customer:サービス概要のご紹介 [2021年7月版]Oracle Gen 2 Exadata Cloud@Customer:サービス概要のご紹介 [2021年7月版]
Oracle Gen 2 Exadata Cloud@Customer:サービス概要のご紹介 [2021年7月版]オラクルエンジニア通信
 
【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版]
【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版]【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版]
【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版]オラクルエンジニア通信
 
事例から見る規模別クラウド・データベースの選び方 (Oracle Database) (Oracle Cloudウェビナーシリーズ: 2021年6月30日)
事例から見る規模別クラウド・データベースの選び方 (Oracle Database) (Oracle Cloudウェビナーシリーズ: 2021年6月30日)事例から見る規模別クラウド・データベースの選び方 (Oracle Database) (Oracle Cloudウェビナーシリーズ: 2021年6月30日)
事例から見る規模別クラウド・データベースの選び方 (Oracle Database) (Oracle Cloudウェビナーシリーズ: 2021年6月30日)オラクルエンジニア通信
 
オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)
オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)
オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)オラクルエンジニア通信
 
Rac rac one_node説明資料
Rac rac one_node説明資料Rac rac one_node説明資料
Rac rac one_node説明資料Hiroki Morita
 
[Oracle DBA & Developer Day 2014] しばちょう先生による特別講義! RMANの運用と高速化チューニング
[Oracle DBA & Developer Day 2014] しばちょう先生による特別講義! RMANの運用と高速化チューニング[Oracle DBA & Developer Day 2014] しばちょう先生による特別講義! RMANの運用と高速化チューニング
[Oracle DBA & Developer Day 2014] しばちょう先生による特別講義! RMANの運用と高速化チューニングオラクルエンジニア通信
 
Oracle Cloud Infrastructure セキュリティの取り組み [2021年8月版]
Oracle Cloud Infrastructure セキュリティの取り組み [2021年8月版]Oracle Cloud Infrastructure セキュリティの取り組み [2021年8月版]
Oracle Cloud Infrastructure セキュリティの取り組み [2021年8月版]オラクルエンジニア通信
 
オラクルのDX事例から学ぶ「次世代クラウド・インフラストラクチャとは?」第16回しゃちほこオラクル俱楽部
オラクルのDX事例から学ぶ「次世代クラウド・インフラストラクチャとは?」第16回しゃちほこオラクル俱楽部オラクルのDX事例から学ぶ「次世代クラウド・インフラストラクチャとは?」第16回しゃちほこオラクル俱楽部
オラクルのDX事例から学ぶ「次世代クラウド・インフラストラクチャとは?」第16回しゃちほこオラクル俱楽部オラクルエンジニア通信
 
[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura
[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura
[B24] Oracle から SQL Server システム移行の勘所 by Norio NakamuraInsight Technology, Inc.
 
Oracle RAC features on Exadata
Oracle RAC features on ExadataOracle RAC features on Exadata
Oracle RAC features on ExadataAnil Nair
 

Was ist angesagt? (20)

固定化か?最新化か?オプティマイザ統計の運用をもう一度考える。 -JPOUG Tech Talk Night #6-
固定化か?最新化か?オプティマイザ統計の運用をもう一度考える。 -JPOUG Tech Talk Night #6-固定化か?最新化か?オプティマイザ統計の運用をもう一度考える。 -JPOUG Tech Talk Night #6-
固定化か?最新化か?オプティマイザ統計の運用をもう一度考える。 -JPOUG Tech Talk Night #6-
 
Oracle Integration Cloud 概要(20200507版)
Oracle Integration Cloud 概要(20200507版)Oracle Integration Cloud 概要(20200507版)
Oracle Integration Cloud 概要(20200507版)
 
Oracle Database In Lock
Oracle Database In LockOracle Database In Lock
Oracle Database In Lock
 
まだ統計固定で消耗してるの? - Bind Peek をもっと使おうぜ! 2015 Edition -
まだ統計固定で消耗してるの? - Bind Peek をもっと使おうぜ! 2015 Edition -まだ統計固定で消耗してるの? - Bind Peek をもっと使おうぜ! 2015 Edition -
まだ統計固定で消耗してるの? - Bind Peek をもっと使おうぜ! 2015 Edition -
 
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#2
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#2しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#2
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#2
 
Oracle Gen 2 Exadata Cloud@Customer:サービス概要のご紹介 [2021年7月版]
Oracle Gen 2 Exadata Cloud@Customer:サービス概要のご紹介 [2021年7月版]Oracle Gen 2 Exadata Cloud@Customer:サービス概要のご紹介 [2021年7月版]
Oracle Gen 2 Exadata Cloud@Customer:サービス概要のご紹介 [2021年7月版]
 
Zero Data Loss Recovery Applianceのご紹介
Zero Data Loss Recovery Applianceのご紹介Zero Data Loss Recovery Applianceのご紹介
Zero Data Loss Recovery Applianceのご紹介
 
【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版]
【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版]【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版]
【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版]
 
Oracle Data Guard による高可用性
Oracle Data Guard による高可用性Oracle Data Guard による高可用性
Oracle Data Guard による高可用性
 
Oracle Database Applianceのご紹介(詳細)
Oracle Database Applianceのご紹介(詳細)Oracle Database Applianceのご紹介(詳細)
Oracle Database Applianceのご紹介(詳細)
 
事例から見る規模別クラウド・データベースの選び方 (Oracle Database) (Oracle Cloudウェビナーシリーズ: 2021年6月30日)
事例から見る規模別クラウド・データベースの選び方 (Oracle Database) (Oracle Cloudウェビナーシリーズ: 2021年6月30日)事例から見る規模別クラウド・データベースの選び方 (Oracle Database) (Oracle Cloudウェビナーシリーズ: 2021年6月30日)
事例から見る規模別クラウド・データベースの選び方 (Oracle Database) (Oracle Cloudウェビナーシリーズ: 2021年6月30日)
 
オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)
オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)
オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)
 
Rac rac one_node説明資料
Rac rac one_node説明資料Rac rac one_node説明資料
Rac rac one_node説明資料
 
[Oracle DBA & Developer Day 2014] しばちょう先生による特別講義! RMANの運用と高速化チューニング
[Oracle DBA & Developer Day 2014] しばちょう先生による特別講義! RMANの運用と高速化チューニング[Oracle DBA & Developer Day 2014] しばちょう先生による特別講義! RMANの運用と高速化チューニング
[Oracle DBA & Developer Day 2014] しばちょう先生による特別講義! RMANの運用と高速化チューニング
 
Yahoo! JAPANのOracle構成-2017年版
Yahoo! JAPANのOracle構成-2017年版Yahoo! JAPANのOracle構成-2017年版
Yahoo! JAPANのOracle構成-2017年版
 
Oracle Database Vaultのご紹介
Oracle Database Vaultのご紹介Oracle Database Vaultのご紹介
Oracle Database Vaultのご紹介
 
Oracle Cloud Infrastructure セキュリティの取り組み [2021年8月版]
Oracle Cloud Infrastructure セキュリティの取り組み [2021年8月版]Oracle Cloud Infrastructure セキュリティの取り組み [2021年8月版]
Oracle Cloud Infrastructure セキュリティの取り組み [2021年8月版]
 
オラクルのDX事例から学ぶ「次世代クラウド・インフラストラクチャとは?」第16回しゃちほこオラクル俱楽部
オラクルのDX事例から学ぶ「次世代クラウド・インフラストラクチャとは?」第16回しゃちほこオラクル俱楽部オラクルのDX事例から学ぶ「次世代クラウド・インフラストラクチャとは?」第16回しゃちほこオラクル俱楽部
オラクルのDX事例から学ぶ「次世代クラウド・インフラストラクチャとは?」第16回しゃちほこオラクル俱楽部
 
[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura
[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura
[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura
 
Oracle RAC features on Exadata
Oracle RAC features on ExadataOracle RAC features on Exadata
Oracle RAC features on Exadata
 

Andere mochten auch

2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 15
2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 152016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 15
2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 15歩 柴田
 
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方歩 柴田
 
Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG
Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG
Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG Yuya Ohta
 
パフォーマンスタブ見れないんですけど!! 株式会社コーソル 河野 敏彦
パフォーマンスタブ見れないんですけど!! 株式会社コーソル 河野 敏彦パフォーマンスタブ見れないんですけど!! 株式会社コーソル 河野 敏彦
パフォーマンスタブ見れないんですけど!! 株式会社コーソル 河野 敏彦CO-Sol for Community
 
ザビ家の野望 〜 全自動ZABBIX AWS編 〜
ザビ家の野望 〜 全自動ZABBIX AWS編 〜ザビ家の野望 〜 全自動ZABBIX AWS編 〜
ザビ家の野望 〜 全自動ZABBIX AWS編 〜Katsuhiro Miura
 
Corruption And Revive - db tech showcase 2013 特濃JPOUG
Corruption And Revive - db tech showcase 2013 特濃JPOUGCorruption And Revive - db tech showcase 2013 特濃JPOUG
Corruption And Revive - db tech showcase 2013 特濃JPOUGRyota Watabe
 
Oracle Database Cloud Service を使ってみよう! 株式会社コーソル 守田 典男
Oracle Database Cloud Service を使ってみよう! 株式会社コーソル 守田 典男Oracle Database Cloud Service を使ってみよう! 株式会社コーソル 守田 典男
Oracle Database Cloud Service を使ってみよう! 株式会社コーソル 守田 典男CO-Sol for Community
 
機械学習を学ぶための準備 その4 (行列の掛け算について) 試験問題 解答
機械学習を学ぶための準備 その4  (行列の掛け算について) 試験問題 解答機械学習を学ぶための準備 その4  (行列の掛け算について) 試験問題 解答
機械学習を学ぶための準備 その4 (行列の掛け算について) 試験問題 解答NHN テコラス株式会社
 
おじさん二人が語る OOW デビューのススメ! Oracle OpenWorld 2016参加報告 [検閲版] 株式会社コーソル 杉本 篤信, 河野 敏彦
おじさん二人が語る OOW デビューのススメ! Oracle OpenWorld 2016参加報告 [検閲版] 株式会社コーソル 杉本 篤信, 河野 敏彦 おじさん二人が語る OOW デビューのススメ! Oracle OpenWorld 2016参加報告 [検閲版] 株式会社コーソル 杉本 篤信, 河野 敏彦
おじさん二人が語る OOW デビューのススメ! Oracle OpenWorld 2016参加報告 [検閲版] 株式会社コーソル 杉本 篤信, 河野 敏彦 CO-Sol for Community
 
ZabbixのAPIを使って運用を楽しくする話
ZabbixのAPIを使って運用を楽しくする話ZabbixのAPIを使って運用を楽しくする話
ZabbixのAPIを使って運用を楽しくする話Masahito Zembutsu
 
私はこうやってSlackを社内で流行らせました
私はこうやってSlackを社内で流行らせました私はこうやってSlackを社内で流行らせました
私はこうやってSlackを社内で流行らせましたNHN テコラス株式会社
 
Oracle Database Connect 2017 / JPOUG#1
Oracle Database Connect 2017 / JPOUG#1Oracle Database Connect 2017 / JPOUG#1
Oracle Database Connect 2017 / JPOUG#1Noriyoshi Shinoda
 
Oracle SQL Developerを使い倒そう! 株式会社コーソル 守田 典男
Oracle SQL Developerを使い倒そう! 株式会社コーソル 守田 典男Oracle SQL Developerを使い倒そう! 株式会社コーソル 守田 典男
Oracle SQL Developerを使い倒そう! 株式会社コーソル 守田 典男CO-Sol for Community
 

Andere mochten auch (18)

2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 15
2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 152016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 15
2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 15
 
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
 
Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG
Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG
Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG
 
Asaoka0721
Asaoka0721Asaoka0721
Asaoka0721
 
パフォーマンスタブ見れないんですけど!! 株式会社コーソル 河野 敏彦
パフォーマンスタブ見れないんですけど!! 株式会社コーソル 河野 敏彦パフォーマンスタブ見れないんですけど!! 株式会社コーソル 河野 敏彦
パフォーマンスタブ見れないんですけど!! 株式会社コーソル 河野 敏彦
 
ザビ家の野望 〜 全自動ZABBIX AWS編 〜
ザビ家の野望 〜 全自動ZABBIX AWS編 〜ザビ家の野望 〜 全自動ZABBIX AWS編 〜
ザビ家の野望 〜 全自動ZABBIX AWS編 〜
 
Corruption And Revive - db tech showcase 2013 特濃JPOUG
Corruption And Revive - db tech showcase 2013 特濃JPOUGCorruption And Revive - db tech showcase 2013 特濃JPOUG
Corruption And Revive - db tech showcase 2013 特濃JPOUG
 
Oracle Database Cloud Service を使ってみよう! 株式会社コーソル 守田 典男
Oracle Database Cloud Service を使ってみよう! 株式会社コーソル 守田 典男Oracle Database Cloud Service を使ってみよう! 株式会社コーソル 守田 典男
Oracle Database Cloud Service を使ってみよう! 株式会社コーソル 守田 典男
 
機械学習を学ぶための準備 その4 (行列の掛け算について) 試験問題 解答
機械学習を学ぶための準備 その4  (行列の掛け算について) 試験問題 解答機械学習を学ぶための準備 その4  (行列の掛け算について) 試験問題 解答
機械学習を学ぶための準備 その4 (行列の掛け算について) 試験問題 解答
 
家庭で使うSlack
家庭で使うSlack家庭で使うSlack
家庭で使うSlack
 
おじさん二人が語る OOW デビューのススメ! Oracle OpenWorld 2016参加報告 [検閲版] 株式会社コーソル 杉本 篤信, 河野 敏彦
おじさん二人が語る OOW デビューのススメ! Oracle OpenWorld 2016参加報告 [検閲版] 株式会社コーソル 杉本 篤信, 河野 敏彦 おじさん二人が語る OOW デビューのススメ! Oracle OpenWorld 2016参加報告 [検閲版] 株式会社コーソル 杉本 篤信, 河野 敏彦
おじさん二人が語る OOW デビューのススメ! Oracle OpenWorld 2016参加報告 [検閲版] 株式会社コーソル 杉本 篤信, 河野 敏彦
 
Zabbix超入門
Zabbix超入門Zabbix超入門
Zabbix超入門
 
ZabbixのAPIを使って運用を楽しくする話
ZabbixのAPIを使って運用を楽しくする話ZabbixのAPIを使って運用を楽しくする話
ZabbixのAPIを使って運用を楽しくする話
 
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
 
私はこうやってSlackを社内で流行らせました
私はこうやってSlackを社内で流行らせました私はこうやってSlackを社内で流行らせました
私はこうやってSlackを社内で流行らせました
 
Oracle Database Connect 2017 / JPOUG#1
Oracle Database Connect 2017 / JPOUG#1Oracle Database Connect 2017 / JPOUG#1
Oracle Database Connect 2017 / JPOUG#1
 
Oracle SQL Developerを使い倒そう! 株式会社コーソル 守田 典男
Oracle SQL Developerを使い倒そう! 株式会社コーソル 守田 典男Oracle SQL Developerを使い倒そう! 株式会社コーソル 守田 典男
Oracle SQL Developerを使い倒そう! 株式会社コーソル 守田 典男
 
Decision making
Decision makingDecision making
Decision making
 

Ähnlich wie Bind Peek をもっと使おうぜ!(柴田 歩) - JPOUG Advent Calendar 2014(Day 5) -

[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き
[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き
[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付きInsight Technology, Inc.
 
PostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU CollationPostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU CollationNoriyoshi Shinoda
 
db tech showcase 2019 D10 Oracle Database New Features
db tech showcase 2019 D10 Oracle Database New Featuresdb tech showcase 2019 D10 Oracle Database New Features
db tech showcase 2019 D10 Oracle Database New FeaturesNoriyoshi Shinoda
 
企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624Yusuke Suzuki
 
C11,12 SQL Server 2012 Performance Tuning by Yukio Kumazawa
C11,12 SQL Server 2012 Performance Tuning by Yukio KumazawaC11,12 SQL Server 2012 Performance Tuning by Yukio Kumazawa
C11,12 SQL Server 2012 Performance Tuning by Yukio KumazawaInsight Technology, Inc.
 
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...Insight Technology, Inc.
 
第64回情報科学談話会(滝沢 寛之 准教授)
第64回情報科学談話会(滝沢 寛之 准教授) 第64回情報科学談話会(滝沢 寛之 准教授)
第64回情報科学談話会(滝沢 寛之 准教授) gsis gsis
 
Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京tuchimur
 
Seas で語られたこととは?
Seas で語られたこととは?Seas で語られたこととは?
Seas で語られたこととは?Masayuki Ozawa
 
プロとしてのOracleアーキテクチャ入門 ~番外編~
プロとしてのOracleアーキテクチャ入門 ~番外編~プロとしてのOracleアーキテクチャ入門 ~番外編~
プロとしてのOracleアーキテクチャ入門 ~番外編~ryouta watabe
 
MySQL 5.7 InnoDB 日本語全文検索
MySQL 5.7 InnoDB 日本語全文検索MySQL 5.7 InnoDB 日本語全文検索
MySQL 5.7 InnoDB 日本語全文検索yoyamasaki
 
[db tech showcase Tokyo 2016] A32: Oracle脳で考えるSQL Server運用 by 株式会社インサイトテクノロジー...
[db tech showcase Tokyo 2016] A32: Oracle脳で考えるSQL Server運用 by 株式会社インサイトテクノロジー...[db tech showcase Tokyo 2016] A32: Oracle脳で考えるSQL Server運用 by 株式会社インサイトテクノロジー...
[db tech showcase Tokyo 2016] A32: Oracle脳で考えるSQL Server運用 by 株式会社インサイトテクノロジー...Insight Technology, Inc.
 
とあるDBAの黒い画面(ターミナル)
とあるDBAの黒い画面(ターミナル)とあるDBAの黒い画面(ターミナル)
とあるDBAの黒い画面(ターミナル)Kazuhiro Yoshikawa
 
[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...
[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...
[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...Insight Technology, Inc.
 
Maatkit で MySQL チューニング
Maatkit で MySQL チューニングMaatkit で MySQL チューニング
Maatkit で MySQL チューニングKensuke Nagae
 
簡単!AWRをEXCELピボットグラフで分析しよう♪
簡単!AWRをEXCELピボットグラフで分析しよう♪簡単!AWRをEXCELピボットグラフで分析しよう♪
簡単!AWRをEXCELピボットグラフで分析しよう♪Yohei Azekatsu
 
SQLチューニング入門 入門編
SQLチューニング入門 入門編SQLチューニング入門 入門編
SQLチューニング入門 入門編Miki Shimogai
 

Ähnlich wie Bind Peek をもっと使おうぜ!(柴田 歩) - JPOUG Advent Calendar 2014(Day 5) - (20)

[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き
[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き
[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き
 
PostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU CollationPostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU Collation
 
db tech showcase 2019 D10 Oracle Database New Features
db tech showcase 2019 D10 Oracle Database New Featuresdb tech showcase 2019 D10 Oracle Database New Features
db tech showcase 2019 D10 Oracle Database New Features
 
企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624
 
C11,12 SQL Server 2012 Performance Tuning by Yukio Kumazawa
C11,12 SQL Server 2012 Performance Tuning by Yukio KumazawaC11,12 SQL Server 2012 Performance Tuning by Yukio Kumazawa
C11,12 SQL Server 2012 Performance Tuning by Yukio Kumazawa
 
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...
 
第64回情報科学談話会(滝沢 寛之 准教授)
第64回情報科学談話会(滝沢 寛之 准教授) 第64回情報科学談話会(滝沢 寛之 准教授)
第64回情報科学談話会(滝沢 寛之 准教授)
 
Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京
 
Seas で語られたこととは?
Seas で語られたこととは?Seas で語られたこととは?
Seas で語られたこととは?
 
プロとしてのOracleアーキテクチャ入門 ~番外編~
プロとしてのOracleアーキテクチャ入門 ~番外編~プロとしてのOracleアーキテクチャ入門 ~番外編~
プロとしてのOracleアーキテクチャ入門 ~番外編~
 
MySQL 5.7 InnoDB 日本語全文検索
MySQL 5.7 InnoDB 日本語全文検索MySQL 5.7 InnoDB 日本語全文検索
MySQL 5.7 InnoDB 日本語全文検索
 
[db tech showcase Tokyo 2016] A32: Oracle脳で考えるSQL Server運用 by 株式会社インサイトテクノロジー...
[db tech showcase Tokyo 2016] A32: Oracle脳で考えるSQL Server運用 by 株式会社インサイトテクノロジー...[db tech showcase Tokyo 2016] A32: Oracle脳で考えるSQL Server運用 by 株式会社インサイトテクノロジー...
[db tech showcase Tokyo 2016] A32: Oracle脳で考えるSQL Server運用 by 株式会社インサイトテクノロジー...
 
PostgreSQL 12の話
PostgreSQL 12の話PostgreSQL 12の話
PostgreSQL 12の話
 
とあるDBAの黒い画面(ターミナル)
とあるDBAの黒い画面(ターミナル)とあるDBAの黒い画面(ターミナル)
とあるDBAの黒い画面(ターミナル)
 
[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...
[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...
[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...
 
Maatkit で MySQL チューニング
Maatkit で MySQL チューニングMaatkit で MySQL チューニング
Maatkit で MySQL チューニング
 
簡単!AWRをEXCELピボットグラフで分析しよう♪
簡単!AWRをEXCELピボットグラフで分析しよう♪簡単!AWRをEXCELピボットグラフで分析しよう♪
簡単!AWRをEXCELピボットグラフで分析しよう♪
 
SQLチューニング入門 入門編
SQLチューニング入門 入門編SQLチューニング入門 入門編
SQLチューニング入門 入門編
 
PostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラPostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラ
 
Chugokudb18_2
Chugokudb18_2Chugokudb18_2
Chugokudb18_2
 

Kürzlich hochgeladen

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 

Kürzlich hochgeladen (9)

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 

Bind Peek をもっと使おうぜ!(柴田 歩) - JPOUG Advent Calendar 2014(Day 5) -

  • 2. 2 免責事項/注意事項  本資料において示されている見解は、私自身(柴田 歩)の 見解であり、Oracle Corporation 及び 日本オラクル社 の見解を必ずしも反映したものではありません。 予めご了承ください。
  • 3. 3 自己紹介  日本オラクル株式会社 テクノロジーコンサルティング統括本部 DBアーキテクト部 プリンシパルコンサルタント 柴田 歩(しばた あゆむ)  シバタツさん、しばちょうさん に 続く 3人目 の 柴田 !  2007年4月に中途で入社 DBの製品コンサルとして、DB関連のプロジェクトを歴任
  • 4. 4 DDD 2013 で↓のセミナーもやりました コレ  http://www.oracle.com/technetwork/jp/ondemand/ddd-2013-2051348-ja.html
  • 5. 5 こうならんように、頑張ります。 :::::::: ┌─────────────── ┐ :::::::: | 歩 がやられたようだな | ::::: ┌───└───────────v───┬┘ ::::: | ククク…奴はOracle三柴田の中で最弱 | ┌──└────────v──┬───────┘ | 我ら柴田の面汚しよ │ └────v─────────┘ |ミ, / `ヽ /! ,.──、 |彡/二Oニニ|ノ /三三三!, |! `,' \、、_,|/-ャ ト `=j r=レ /ミ !彡 ● T 爪| / / ̄|/´__,ャ |`三三‐/ |`=、|,='| _(_ /人 ヽ ミ='/|`:::::::/イ__ ト`ー く__,-, 、 _!_ / ( ゚ω ゚ ) / `ー─'" |_,.イ、 | |/、 Y /| | | j / ミ`┴'彡\ ' ` シバタツ しばちょう 恭平 勝家
  • 6. 6 目次  1章. イントロダクション  2章. 前提知識  3章. 統計運用と「Bind Peek(他)」の組み合わせで考える。  4章. まとめ
  • 8. 8 こんなガイド、してませんか? 「ミッションクリティカルなシステムでは Bind Peek は false にして、SQL性能を 安定させることが推奨です。 」
  • 10. 10 Bind Peek無効化が安全神話と化してないか? Bind Peek無効化は昔から言われ続けた結果、 「安全神話」と化しているのではないか? 「安全神話」の意味 – 絶対安全だという信頼感。言外に根拠のない 思い込み、錯覚にすぎないという含みがある。 安全性が保たれている時はこの言葉は使用されず、 崩れた時に使用される。 – hatena keywordより
  • 11. 11 「2000年前~」は言い過ぎだけど、、、 まあ「2000年前~」は言い過ぎなんですけど、 Bind Peek無効化 を昔の知識だけで、呪文の ように唱え続るのは良くないすよ(゚ε゚ ) – そう云う人は割と多いんじゃないか??? Bind Peekの動作や、関連する機能も 振りかえりつつ、もう一度考えてみる。
  • 13. 13 Bind Peek の概要 SQLが同じ場合でも、与えられたバインド変数値に よって実行計画を使い分ける(最適化する)機能 SELECT * FROM TBL_A WHERE COL1 >= :B1 ------------------------------------ | Id | Operation | Name | ------------------------------------ | 0 | SELECT STATEMENT | | | 1 | TABLE ACCESS FULL | TBL_A | ------------------------------------ ------------------------------------------------- | Id | Operation | Name | ------------------------------------------------- | 0 | SELECT STATEMENT | | | 1 | TABLE ACCESS BY INDEX ROWID | TBL_A | | 2 | INDEX RANGE SCAN | TBL_A_I1 | ------------------------------------------------- 1の場合 10000の場合
  • 14. 14 10gR2までの動作は...  10gR2までは、初回ハード・パース時のバインド変数値 によって作成された実行計画で固定されてしまう。 SELECT * FROM TBL_A WHERE COL1 >= :B1 ------------------------------------ | Id | Operation | Name | ------------------------------------ | 0 | SELECT STATEMENT | | | 1 | TABLE ACCESS FULL | TBL_A | ------------------------------------ ------------------------------------------------- | Id | Operation | Name | ------------------------------------------------- | 0 | SELECT STATEMENT | | | 1 | TABLE ACCESS BY INDEX ROWID | TBL_A | | 2 | INDEX RANGE SCAN | TBL_A_I1 | ------------------------------------------------- 1の場合 初回のPLAN で固定 ・10gR2 までは Bind Peek=false が推奨 ・この推奨が、今日まで続く「安全神話」の始まり 10000の場合
  • 15. 15 11gR1で「優れたカーソル共有」が導入  11gR1からは「優れたカーソル共有(Adaptive Cursor Sharing)」導入で、複数の実行計画を併用するようになった。 – Bind Peek を無効化した場合は、当機能も無効化されます。 SELECT * FROM TBL_A WHERE COL1 >= :B1 ------------------------------------ | Id | Operation | Name | ------------------------------------ | 0 | SELECT STATEMENT | | | 1 | TABLE ACCESS FULL | TBL_A | ------------------------------------ ------------------------------------------------- | Id | Operation | Name | ------------------------------------------------- | 0 | SELECT STATEMENT | | | 1 | TABLE ACCESS BY INDEX ROWID | TBL_A | | 2 | INDEX RANGE SCAN | TBL_A_I1 | ------------------------------------------------- 1の場合 10000の場合 10gR2までの欠点は、11gR1以降は概ね解消されている。 バインド変数に応じて PLANを使い分け
  • 16. 16 関連機能: Cardinality Feedback の概要  11gR2からの新機能  初回SQL実行時の情報を Feedback して、 2回目以降の実行計画を最適化する機能 – 実行統計としてのカーディナリティを Feedback – オプティマイザ統計から算出したカーディナリティと、 実行時のカーディナリティが乖離していた場合に、 ハード・パースを再度実施して実行計画を再作成する。 – KROWN# 147614
  • 17. 17 関連機能:Dynamic Sampling の概要  9iR2からの機能  ハード・パース時にオプティマイザ統計が NULL の テーブル/索引が存在した場合、それらの統計を動的 にサンプリングして、実行計画を最適化する機能 – ヒント等で明示的に動作させることも可能 – KROWN#55982  11.2.0.4以降は”動的統計”と云う名称に  12c からは永続情報として、他クエリからも参照可能
  • 18. 18 関連機能:12c の実行計画関連・新機能  適応計画(Adaptive Plan) – SQLの実行時に予測(実行計画)と実行統計が乖離してい る場合に、実行計画を予め用意されていたサブプランへ "動的"に切り替えて最適化する機能 SQL計画ディレクティブ – SQLの予測(実行計画)と実行時でカーディナリティが乖 離している場合に、ヒストグラムや拡張統計を採取する ためのエントリを保持しておく機能
  • 19. 19 SQLと云う言語の特徴  SQLと云う言語は、データ抽出時に「何を(What)抽出するか」 の“条件”のみを記述し、「どうやって(How)抽出するか」を記述 しない、他言語には無い特徴を有します。 – 多くの言語では、繰り返し(for~, while~)や 条件分岐(if~, case~)などのアルゴリズムを記述する必要があります。  どうやって(How)データを抽出するか、即ちアルゴリズムの 決定・制御は、RDBMS の Optimizer で行われます。 – Optimizer が決定したアルゴリズム = 実行計画です。 プログラム “条件”のみを記述 Optimizer SQL データ アルゴリズムを決定/制御 ※Oracle DBA & Developer Day 2013 資料より
  • 20. 20 SQLのアルゴリズムは「予測」で組み立てられる。  SQL の アルゴリズム≒実行計画 は、オプティマイザが 最適と考えられるものを「予測」して組み立てます。  そして「予測」である以上、必ずハズレのケースが出てきます。 – ハズレの実行計画を引くと、性能問題として顕在化! – SQLの特徴に由来する、全てのRDBMSに共通した本質的な困難 – 各ベンダやオープンソースのRDBMSは、このSQLの本質的な困難に 立ち向かうべく、日々凌ぎを削っています。(もちろんOracleも!)  まずこのハズレの実行計画の存在を意識/認識しておくのが、 本セミナーの出発点となります。 ※Oracle DBA & Developer Day 2013 資料より
  • 21. 21 1枚前で書いた事、とても重要ですYO! / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | ちょ、ちょーとまって!!!今>>1が何か言ったから静かにして!! , ,-;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:,.ヽ─y────────────── ,-v-、 /;:;:;:;:;:;:ミミ;:;:;:;:;:;:;:;:;:;`、 / _ノ_ノ:^) /;:;:;:;:彡―ー-、_;:;:;:;:;:;:;:;| / _ノ_ノ_ノ /) |;:;:;:ノ、 `、;;:;:;:;:;:i / ノ ノノ// |;:/_ヽ ,,,,,,,,,, |;:;:;:;:;:;! ____/ ______ ノ | ' ゚ ''/ ┌。-、 |;:;:;:;:/ _.. r(" `ー" 、 ノ |` ノ( ヽ ソ |ノ|/ _. -‐ '"´ l l-、 ゙ ノ _,-ー| /_` ”' \ ノ __ . -‐ ' "´ l ヽ`ー''"ー'" | : | )ヾ三ニヽ /ヽ ' "´/`゙ ーァ' "´ ‐'"´ ヽ、`ー /ノ ヽ `、___,.-ー' | / / __.. -'-'" | | \ / | l / . -‐ '"´ \ |___>< / ヽ AAが古いのは、赦せ…
  • 22. 22 「予測」と「Bind Peek(他)」の関係 SQLの実行計画は「予測」で組み立てられ、 「予測」である以上、ハズレから逃れられません。 – OracleDB に限らない、全てのRDBMSに共通した困難  そして「Bind Peek」を初めとした実行計画最適化機能は、 全て実行計画の予測精度を上げる、 あるいは予測を補正するために存在します。 – ハズレの実行計画を引く確率を下げる。 – あるいはハズレた予測(実行計画)を補正する。  これらの前提を踏まえた上で、次逝ってみよう!(`・ω・)Ъ
  • 23. 23 3章. 統計運用と「Bind Peek(他)」 の組み合わせで考える。
  • 24. 24 2つのオプティマイザ統計運用 CBO のキモであるオプティマイザ統計は、 実行計画と切っても切れない関係  そしてオプティマイザ統計運用は、(色々な思想は 有るんでしょうが)以下の2つにおよそ大別されます。 – 統計をある断面で固定する「固定化運用」 – 統計を常に最新化する「最新化運用」
  • 25. 25 固定化/最新化 と Bind Peek等 の 組み合わせ  オプティマイザ統計の運用形態によって、 Bind Peek等の実行計画最適化機能を 使うか、使わないかは、変わってくる、、、  「固定化」「最新化」の2つの統計運用と、Bind Peek等の 最適化機能との組み合わせモデルで、考えてみます。 – ①固定化運用+最適化無し のモデル – ②最新化運用+最適化有り のモデル – ③最新化運用+最適化無し のモデル
  • 26. 26 ①固定化運用+最適化無し の動作を考える。  ①の組み合わせでは、ある断面で固定された、 あるいは 手作りのオプティマイザ統計を基にした、 単一PLANを使い続ける。 – 統計が変動しないので、実行計画は変動しにくい。 – 統計が実態と乖離し易く、最適化機能も無いので 全体的な SQL性能は悪い。
  • 27. 27 ①固定化+最適化無し モデルのSQL処理時間イメージ 時間経過(データ件数) 処理 時間 短 長 PLAN2 単一PLANを 使い続ける 動作するプ ラン
  • 28. 28 ①固定化+最適化無し モデルの評価  リスクヘッジと云う意味では良い。(そりゃそうだ。)  でも実態と乖離した統計と最適化無しで、SQL性能は悪い。  それと統計を手動でセットしながら固定するのは、 滅茶苦茶大変じゃないですかねぇ、、、(白目 – 行数(NUM_ROWS)/レコード長(AVG_ROW_LEN) ← わかる – 個別値数(DISTINCT_KEYS)/索引の深さ(BLEVEL) ← まあわかる – CLUSTERING_FACTOR/AVG_LEAF_BLOCKS_PER_KEY/ AVG_DATA_BLOCKS_PER_KEY ↑ wwwwww????wwwwwwwwwwwww???ww  最後らへんのを出来る人は、良くも悪くも 神/仙人/職人
  • 29. 29 つぎは ②最新化運用+最適化有り の動作  ②の組み合わせでは、常時最新化されたオプティマイザ統計 を基にして、複数PLANを使いながら実行計画は変動し続ける。 – フレッシュな統計 と 様々な最適化機能によって、 実行計画の予測精度は高く、全体的な SQL性能 は良い。 – 優れたカーソル共有機能により、複数PLANを併用可能 – 異なる実行計画(予測)の分岐点では、 それらのPLANを併用して少しずつ遷移するイメージ
  • 30. 30 時間経過(データ件数) 処理 時間 短 長 PLAN1 PLAN2 PLAN3 PLAN4 複数PLANのコスト(予測) 近接点で、各PLANを併用しなが ら少しづつ遷移していくイメージ 動作するプ ラン ②最新化+最適化有り モデルのSQL処理時間イメージ
  • 31. 31 ②最新化+最適化有り モデルの評価  フレッシュな統計と最適化機能のお陰で、SQL性能は良い。  リスクヘッジと云う意味でも、別に悪くないよ??? – ハズレの実行計画を引く確率が低い。(リスクが低い。) – 加えて各種補正機能で、ハズレを引いた時の 性能劣化も少ない。 (リスクが低い。) – 更に複数PLAN併用の効果で、実行計画変化に伴う 性能変動が穏やかに出る。(リスクが低い。)  但し性能劣化のリスクを 0(ゼロ) にはできない。何故なら SQL だから。SQL のアルゴリズムは予測だから。 – Bind Peek のせいではない、、、と云うのがポイント
  • 32. 32 最後に ③最新化運用+最適化無し の動作  ③の組み合わせでは、常時最新化されたオプティマイザ統計 を基にして、実行計画が変動し続ける。 – 実行計画の予測精度は ② よりも低く、SQL性能は悪い。 – 優れたカーソル共有が無効化されるため、 ある瞬間では単一PLANが使用される。
  • 33. 33 時間経過(データ件数) 処理 時間 短 長 PLAN2 PLAN4 ハズレのPLANを引いた 時の性能劣化が大きい 動作するプ ラン PLANのバリエーションも少ない。 (列統計/ヒストグラム未使用) ある瞬間では単一PLANしか選択さ れない(※複数PLAN併用不可) ③最新化+最適化無し モデルのSQL処理時間イメージ
  • 34. 34 ③最新化+最適化無し モデルの評価  ハズレの実行計画を引き易いと云う意味で、リスクは高い。 – Bind Peekを無効化すると、列統計/ヒストグラム/拡張統計 を 見なくなる。予測精度を高める上では、相当不利ですよ。 – 複数PLAN併用不可 で 予測補正機能 も無く、 ハズレの実行計画を引いた時のダメージがデカい。  そして 最適化機能無効化(bind peekを無効化、等)は、 統計固定と組み合わせて、初めて意味が出てくる。 – 統計が変動する時点で、実行計画も変動するよ??? – それなのに、Bind Peek「だけ」無効化しても意味無くない???
  • 35. 35 ② と ③ の性能変動モデルケース比較  「赤線」が直線に近いほど、リスクは低い。  どっちが直線に近いか???と云うこと ②最新化+最適化有り ③最新化+最適化無し
  • 37. 37 Bind Peek(等)を有効化した方がリスクは低い!  モデルケースの比較にも表れているように、 最新化運用においては最適化機能を有効化した方が リスクは低い!(断言 – 実行計画の種類が少ない = SQL性能が安定、、、ではない。 – 最適化機能の無効化は固定化運用との組み合わせが前提  にも関わらず、どんなシステムでもお構いなく、 「取り敢えず」「無邪気に」「今までやってきたし」 「実績有るから、、、(震え声)」 てな感じに、 Bind Peek を無効化している人達はとても多いのでは?
  • 38. 38 もう一度、良く考え直してみよう。  システムの重要度や体制、アプリケーション特性や 開発/インフラのスキル、最適化機能を on/off する 事のメリデメ等によって、最適な構成や設定、 運用は変わってくるはず。 – 少なくとも、今は Bind Peek無効化一択 の時代じゃない。 – デフォルト設定なので、ナチュラルに使いこなしている お客様/システムも大勢いらっしゃいます(`・ω・)ゞ  ではどのようなシステムや体制が、この資料で 出してきたモデルにマッチするかと云うと、、、
  • 41. 41 まとめ SQLのアルゴリズム=実行計画は予測で 組み立てられ、予測ゆえのハズレが不可避 – 全ての RDBMS に共通した、SQLが抱える本質的な困難 Bind Peek を初めとした実行計画の最適化機能 は、予測精度を向上/補正するための機能 – SQL の本質的な困難に、真正面から挑んでいる! これらを *安易に* 無効化するのは、非推奨 – 思考停止してませんか?もう一度良く考え直してみましょう。
  • 42. 42 最後にもっかい煽っとく。 Bind Peek(等) を *安易に* 無効化する輩は… …
  • 43. 43 お詫び  全体的に煽り気味なのは、その方が喰い付きが 良いだろうと云う目論見で、他意はありません。  和むように、ようかんマン を置いてきますね。。。 殺伐としたスレに救世主が! . __ ヽ|・∀・|ノ ようかんマン |__| | |