データベースコンサルタントのノウハウちょい見せ

Oracle RDBMSなどのオラクル製品や各種インフラ技術(OS、ストレージ、ネットワーク)といった話題を取り上げます。著者は小田圭二、「門外不出のOracle現場ワザ」、「絵で見てわかるOracleの仕組み」、「絵で見てわかるOS/ストレージ/ネットワーク」などの著作もあります

ホーム > アーカイブ - 2009年04月

SQL計画管理について2

SQL計画管理について質問などをいただいたので、今回はその続編ということでちょっと書いてみたいと思います。前回の記事はこちら「SQL計画管理

1つもらった質問は「統計情報を自動収集しないことと、何が違うのでしょうか?」です。

私の意見で答えると、「統計情報の固定だと、統計情報とSQLの実行計画が強く結びつく。そのためSQL単位で柔軟にチューニングしづらい。オブジェクトの変更がなかったり、性能問題なく運用しているのであれば、
SQL計画管理(ベースライン)は、統計情報の固定とほぼ同じ動きになる。とはいえ、運用途中で一部のSQLのみチューニングしたり、インデックスの追加などが起きるようなシステムでは、ベースラインは便利なはず」です。

●ちょっとためしてみました。

ベースラインのパラメータをfalseにした場合

-> フルスキャンの実行計画で固定された後、より良いインデックスの追加をすると、新しいインデックスを選んだ。

ベースラインのパラメータをtrueにした場合

-> フルスキャンの実行計画で固定された後、より良いインデックスの追加をしても、新しいインデックスを選ばなかった(今までの実行計画をそのまま使用)。

また、マニュアルに載っている次のスクリプトを使うと、チューニングしたいSQLのみ、evolve(改善)してくれます。

SET SERVEROUTPUT ON
SET LONG 10000
DECLARE
report clob;
BEGIN
report := DBMS_SPM.EVOLVE_SQL_PLAN_BASELINE(
sql_handle => '&sql_handle');
DBMS_OUTPUT.PUT_LINE(report);
END;
/

これは過去取得してある、ベースラインの中から、パフォーマンスを比較し最善と思えるものを選んでくれるパッケージです(詳細はマニュアルを参照のこと)。

統計情報のみで、これらの制御をするのは困難です(特に1つのSQLのみに限って改善する話)。このことから、統計情報と実行計画の固定が分かれている、ベースライン機能は柔軟だと思います。

マニュアルをよく読み、自己責任でご使用ください。
#CMみたいだ^^;

スポンサーサイト
[ 2009/04/29 23:21 ] DBA | TB(0) | CM(3)

SQL計画管理について

[ 2009/04/26 23:01 ] DBA | TB(0) | CM(4)

オープンワールドに参加/運営の皆様、お疲れ様でした!


本日、オラクルオープンワールドの最終日でした。
やっぱり、オープンワールドはお祭りですね♪

参加いただいた皆様、運営側だった皆様、お疲れ様でした!
また、OTNラウンジに来ていただいた皆様、交流させていただきありがとうございました!

普段、ブログにコメントいただくような方々(msさん、矢木さん、discussさん、yoheiさん、他いっぱい)
とお会いできてうれしかったです。今後とも、お付き合いさせていただければ幸いです。

お疲れの皆様に、清涼剤となるであろう、ウェンディの写真です。
癒されてください。クリックすると大きくなります。

ウェンディ1
[ 2009/04/24 22:56 ] 雑談 | TB(1) | CM(4)

明日はOOW 3日目。Oracle+SSDの話など

■なんとOracle +SSDが!

本ブログの1つのテーマであるSSDですが、
明日、DELLさんのセッション(下記)で、Oracle + SSDの性能情報、判明した特性などが説明されるそうです。
※SSDだから取り上げています。特定ベンダーへのこだわりはありません。

SS03-122 4月24日(金) 12:50~13:40
こんな時代だからこそ見直そう!Oracleを支えるインフラのコスト削減策

なお、展示場のDELL+EMCさんのブースでもOracle+SSDの話を聞けます。
CIMG1626.jpg

このように、SSDの現物触れます。グラフも良い感じですね。セッションに出れない方はブースでも良いかと思います。

■明日も、ゲリラ(飛び入り)セミナーやります。

私は明日は15:00-17:00くらいにOTNラウンジにいます。
ただ居るだけもつまらないので、そのうち、15:30-16:00くらい(時間は多少後ろにずれるかも)でゲリラ(飛び入り)セミナーやります。
最後のじゃんけん大会で、本を差し上げたいと思います。

[ 2009/04/23 18:29 ] 未分類 | TB(0) | CM(0)

OOW二日目

オープンワールド本日二日目です。

展示場がオープンしました。

CIMG1622.jpg

CIMG1623.jpg

CIMG1624.jpg


OTNアンカンファレンスでは、佐藤さんがしゃべりました。

CIMG1625.jpg

私、木曜と金曜の15:30-16:00にOTNラウンジでゲリラ的にセミナーやります。
アドリブですが、楽しいですよ。プレゼントもやろうと思っています。ご参加ください。
[ 2009/04/23 12:33 ] 雑談 | TB(0) | CM(0)

無理にとは言いませんが、OOWのOTNラウンジで会えます

本日、OOWに出没してみました。

全体的には、活気があって良かったのですが、OTNラウンジで待っていても、正直声をかけにくいのかなと思いました。数人でしたね。

実は過去記事や書籍を持ってきています。無理にとは言いませんが、話しかけてもらえれば、本を差し上げたり、記事を差し上げたり、空いている限り、解説したりできます!現役時代には、とっても高額だったコンサルタントから、雑談とはいえいろいろと解説・相談するチャンスです。ぜひ、声をかけてみてください。

木曜日11:30からゲリラ的にセミナーを開くことにしました。OTNラウンジです。
来てみてください。

#私がOTNラウンジに居る時間帯は2日くらい前の記事を見てみてください。

P.S. 目安に僕の本を積んでおくのを忘れていました。明日は積んでおこうと思います。

[ 2009/04/23 02:38 ] 雑談 | TB(0) | CM(6)

OOW、アンカンファレンスも始まりました

オープンワールドは本日、セッションが主体ですが(本日は展示は無いです)、少し離れた場所でアンカンファレンスという交流の場がありますので、ぜひ来てみてください。

OTNで有名な山口さんがアンカンファレンスの口火を切って話を始めました。
CIMG1621.jpg


アンカンファレンスについて
http://wiki.oracle.com/page/Unconference+in+OTN+Lounge(Oracle+OpenWorld+Tokyo+2009)

皆さんも、どうぞ!
[ 2009/04/22 11:12 ] 雑談 | TB(0) | CM(0)

OOW(オラクルオープンワールド)始まりました

とうとう始まりました。
OOW(オラクルオープンワールド)です。

本当はキーノートの写真を載せたいところですが、大盛況のため、
入場を遠慮しました。本当にすごい数の人です。オラクルファンの皆さんの熱気を感じます。

今、私はOTNラウンジに移動しました。こんな感じです。
CIMG1620.jpg


今のところペンギンのぬいぐるみの前にいます。
CIMG1619.jpg

どうぞー!
[ 2009/04/22 10:04 ] 雑談 | TB(0) | CM(0)

OOWについて直前情報

●実はこんなところでコンサルタントがセッションします。

Oracle Develop という有償のセッションがあり、ここで著名なコンサルタントがとても良い話をするので、ご紹介します。

セッションID:OD03-56  4月24日(木)14:30-15:30
直伝!本番・開発環境 総数900台の運監・キャパ監設計ベストプラクティス

講師は「五十嵐 建平」・・・門外不出のOracle現場ワザにも書いてますよね。とってもスペシャルなコンサルタントです。彼が以下のような内容を説明するそうです。

開発環境・本番環境サーバ総数900台。乱立するデータベース、アプリケーションサーバー、パッケージ・アプリケーションの運転監視、キャパシティ監視の設計ベストプラクティスを、オラクルのスーパーコンサルタントが直伝します。運用コストの削減だけではなく、運用コストの構造改革も始めませんか?

EMを使って楽する話だそうです。上記のような話で苦労している方、ぜひ聞いてみてください。


●Oracle Databaseの神様がコスト削減について語る?

古くからのOracleの有名人(神様)が話をします。
2009/4/22 17:45~18:30
KS01-04 ITコスト削減の最大のポイント - 最新データベース技術の適用と活用
11gの新機能を用いて、コスト削減をする方法を語ってくれるそうです。

なお、過去、本ブログでも、いくつかセッションの紹介をしました。まだ見てない方はこちらもどうぞ。
http://odakeiji.blog33.fc2.com/blog-entry-76.html


●実は私も・・・

社員の私もOOWは参加するわけで、セミナーは持っていませんが、今回、「OTNラウンジ」で皆様と交流できればうれしいなと思っています。
注:コンサルセンターの方には、あまり居ないと思います。
OTNラウンジにいる予定の時間帯は、22日11:00-12:30、13:30-14:30、23日10:30-12:30、15:00-17:00、24日15:30-17:00です。急遽商談などが入り、不在になるかもしれないので、そのときはご容赦ください。
直前にブログを見てもらえると、情報をアップデートしているかもしれません。また、キーノートセッションなども記事をアップしたいと思っています。

若く見えるので、この人か?と思うかもしれませんが、「門外不出のOracle現場ワザ」シリーズや「絵で見てわかる」シリーズを持ってOTNラウンジに座っている人がいたら、私だと思いますので、遠慮なく声をかけてみてください。よろず、楽しくお話したいと思っています。
[ 2009/04/20 22:59 ] 雑談 | TB(0) | CM(0)

障害に備えたDBバックアップと業務のためのDBバックアップは異なる

※本記事はOracle前提で書きますが、他のDBMSでもほぼ同じはずです。

皆さん、DBのバックアップは何種類とっていますか? DBのバックアップなんて1種類に決まっていると思うかもしれません。しかし、実は分けて考えるべきなのです(私の持論ですが)。

通常、DBのバックアップというと、ストレージの破壊などの物理的な障害に備えたものを指すでしょう。ストレージの障害が起きたと仮定すると、大抵そのタイミングでDBが機能しなくなり、急いでテープからバックアップを戻して、リカバリして、「はい。データ復旧終了。さあ、どうぞ♪」ですね。

ところが、アプリケーションのバグなどによって、データの一部が壊れた(業務的に正しくないデータですね)とします。その場合、どのように復旧させますか?

データが壊れたとしても、他のアプリは粛々と動いているでしょう。そのため、対象のテーブル以外では、そのままデータの更新は続くでしょう。また、データが壊れたテーブルにおいても、正しいデータの更新が行われることもあります。そのような状況で全体バックアップを戻したら、壊れたデータは良いでしょうが、他のデータ更新が失われてしまいます。では、テーブル単位で戻そうとしても、他のテーブルとデータの整合性が取れるかどうかは未知数です。正直言って途方に暮れてしまいます。

このような障害(一部の人は、この障害を「論理障害」と呼びます)では、論理的にデータのバックアップをとっておく(例:exportなど)のが一番です。論理バックアップはバッチの開始前や終了後にとることが多いでしょうか。
#バッチの開始前にとっておけば、バッチのアプリバグがあってもやり直せたりします。

このように物理的な障害に備えたバックアップと、論理的な障害に備えたバックアップを分けて、どのような手段で、どのようなタイミングで取るべきか考えてみてください。きっと、皆さんのシステムも各種障害に対して強くなるでしょう♪
[ 2009/04/19 23:08 ] DBA | TB(0) | CM(5)

記録の重要性とエンジニアの成長の関係

今日は、これを実践するだけでエンジニアの成長が大きく変わるようなノウハウの紹介です(ちょっとおおげさかな・・・でも本当に「効果があるけれど、実践している人は少数」なノウハウです)。

エンジニア(特にITエンジニア)の一部に熱狂的なファンを持つ、ワインバーグという人が居ます。私もワインバーグのファンでいろいろと著作を読ませてもらっています。

中でも「スーパーエンジニアへの道―技術リーダーシップの人間学」と「コンサルタントの秘密―技術アドバイスの人間学」はお勧めです。以前、コンサル先に「この本を読むように」と伝えて、ワインバーグ本を貸すという超手抜きのコンサルティングをしたことすらあるほどです(本件のお金はもらっていませんので、ぼったくったわけではありません)。

「スーパーエンジニアへの道」に、「個人的な日誌を書く」という方法の紹介があります(P74-81)。実はこれが、私が記録するきっかけとなり、今の私の一部を形作っています。

私も昔は「夏休みの日記を、夏休みの最後にまとめて書く。そしてつじつまが合わない日記ができあがる」小学生だったのですが、「スーパーエンジニアへの道」を読んでとりあえず書いてみることにしました(実際に当時の日記に「とりあえず」という旨の記述があります^^;)。そして、しばらくしてから、振り返ってみたところ、普通に日々過ごしているだけでは絶対に気がつけない自分の特徴や特性が浮かび上がってきたのです

「スーパーエンジニアへの道」には、「日誌記者たちはみな、各人が自分自身について、もっとも必要だったことを学んだのである」と書かれています。

たとえば、ある日、何かの本を読んで「なるほどこれがコツか!」と気がついたとします。その時は実践したり、心がけたりするはずです。数日すると忘れ始めます。そして数か月するころには、元の自分のやり方に戻っているはずです。私も含めて大抵の人はこのような行動を繰り返しています。ところが、日記への記録と振り返りをしていると、それを防げるのです。1つ1つの違いは小さくても積み重なれば大きいです。

この方法は、自分に関する学習(メタ学習:学習に関する学習)なので、これを繰り返していると、指数演算的に成長スピードがあがっていきます
#元、人事で先生をしていた僕が言うんですから、嘘じゃないですって!
#やっていれば効果が理解できます。だまされたと思ってやってみては?

ということで、エンジニアの皆さん、「記録して、振り返る」という習慣を身につけてみてはいかがでしょうか? ワインバーグによると1日5分だそうです。私は未来の自分への投資だと思います。きっとこれでAmazonのマーケティング(注)にひっかかって、同じ分野の初心者本を2回買ったりしなくて済むようになりますよ!!

注:参照「書籍は読み手の実力によって、読み取れることが異なる
[ 2009/04/15 23:56 ] スキル強化・教育 | TB(0) | CM(2)

「徹底理解/Amazonクラウドサービス」に行ってきました。

講演者西脇さんのお付きとして「クラウドサービス」セミナー(写真は満員の会場の様子)に行ってきました。

セミナー会場は満員でした。

メインの講演者は Jeff Barr (写真参照) というAmazonの方で、どのようにビジネスに
活かせるかを力説していました。Jeffさんとはつたない英語で会話もさせて
もらいました。気さくな良い人でした。
AmazonのJeffさん


私は技術面はともかく、クラウドのビジネス面からは縁遠いのですが、
「気軽に始める」ことのメリットと、その料金体系はかなりびっくりでした。
「pay-as-you-go」と表現していたのですが、
スモールに立ちあげて、そのあと発展を期待しているようなビジネスに
お勧めだそうです。ストレージ: $0.15$ /GB /month といった程度だそうで
クラウドビジネスに詳しい方からすると当たり前なのでしょうが、
安いと感じました。「スタートアップしたばかりの会社に良いよ!」
とのことです。

クラウドの技術的な優劣というよりは、Amazonのビジネスモデルの強さを感じますね。
技術的に真似されても、「この規模・この効率のデータセンターは作れまい」
ということなんでしょう。自信を感じました。

Jeffさんのプレゼンの影響かもしれませんが(ビデオ撮影した動画とか
写真とか満載でした^^)、画像やマルチメディア系の活用で便利そうですね。
そういった実ビジネスの例もいくつかあり、The New York Timesでは過去記事の公開に
使っていて、1100万個ものPDFを置いているそうです。

P.S. 「Jeff Barrさん」と司会者が呼ぶのですが、
   佐藤なおきさんと、「Jeff婆さん」と聞こえるよねと
   ちょい受けしてました。

●西脇さんの講演の中身

さて、肝心の西脇さんのパートです。
「OracleのAMI(amazonにある、OSやアプリがセットアップされたディスク
イメージ)を使うと楽ですよ。Oracleもセットアップ済みなので、
今までのインストールと比べて、なんて簡単でしょう?
さっき、すぐそこの席でやってみたら20分できました」
というような話から
始まりました。確かに楽そうです。

ただ、いくつか推奨などがあるそうで、
EC2サービスはインスタンスが止まると全てを忘れてしまうので、
そのため、S3ストレージと併用することがお勧めであったり、
いくつかのOracle製品はIPアドレスが変わると困るので、
AmazonのElastic IPアドレス(固定できる)がお勧めだそうです。
耐障害性などからEBSという外部ストレージにDBを置くことも
お勧めだそうです。

バックアップですが、オラクルのrmanを使って、S3へのバックアップできる
そうです。バックアップモジュール(下記クラウドコンピューティング
センターからダウンロード可能)があるそうです。

ところで、ライセンスですが、既存のライセンスも流用可能だそうです。
ただ、本件に関わらず一般的にそうなのですが、詳しいことは営業に相談する
のが定石のはずです。
なお、Oracle DBMSだけでなく、Fusion MiddlewareなどもEC2で利用できるそうです。

●参考情報など

最後に、Oracleのクラウド関連の情報が集まっているサイトを紹介します。
クラウドコンピューティングセンター(英語)です。
詳しくはこちらをみてください。Oracle on EC2のデモも見れますし、
事例もありますし、ポッドキャストまで載ってます。

[ 2009/04/11 03:46 ] アーキテクチャ | TB(0) | CM(2)

RDBMSの推移律

今回は、RDBMSの推移律についての説明です。これは集合演算を背景として持つため、リレーショナルDBMS特有と言ってよいと思います。もちろん、難しい話は抜きですので、ご安心ください。

表testAと表testBがあるとします。表testAにも表testBにも「no」という番号の列があるとして、
where句にtestA.no = testB.noという結合条件もあるとします。その場合、testB.empno=10という条件は、testA.empno=10とも解釈できますよね? これが推移律の例です。本当は集合論的に「この集合とこの集合がこういう関係の時には・・・ここの条件をこっちにも適用できる」みたいな話なんですが、割愛します。

これが性能を大きく改善することがあります。たとえばこんな感じです。
表testAはサイズが大きい。インデックスもある。絞り込みの条件が無い。
表testBはサイズが小さい。絞り込みの条件(no=10)がある。

表testAにアクセスする際に、表testBの条件(no=10)を活用すれば、処理しやすそう(速そう)ですよね?
次の図は、SQL Developerで実行計画を見た様子です。表testAの「access predicates(条件句)」に、表testBの条件が援用(活用)されているのが分かるかと思います。DBMSって賢いですね!! これを知らないと「実行計画だと、何でこんな条件が使われているんだろう?」と思ってしまうかもしれません。覚えておきましょう。

推移律の様子


ちょっと脱線しますが、SQL Developerだと、「SQL文を書く、実行する、修正する、実行計画を確認する」といったことが簡単にできるので、お勧めです。ご存じない方はぜひ使ってみてください。楽チンですよ。
[ 2009/04/08 23:47 ] DBA | TB(0) | CM(0)

「あれもこれも」と要望したり、「全員一致による責任回避」の文化

今回はちょっと変わったユーザー側プロマネ話です。これをしょうがないと思うか、他山の石にするか、なっとらん!と怒るか、へぇーと思うかは人によるかと思います。

「責任をとるのを極端に避ける」という文化により、帳票や画面が膨れ上がるお客様が居ます。責任を避ける=「要るかもしれないものは全部作る」になってしまうケースです。これが、担当者がどんどん異動するような組織だと最悪です。システムは引き継がれても、経緯までは引き継がれないため、良く分からないけど、既存の画面や帳票は残しておいて、さらにこんなのも・・・となりがちです。その結果、誰も使わない帳票が何百も・・・そしてSIerの追加開発(有償)は毎年続く・・・のだとか。
以上、守りに入りがちな一部公共系で聞いた話でした。

ある組合系組織において、「全員一致」が原則のシステム開発という話も聞いたことがあります。
「仕様を決めてください」と言って、SIerが迫っても「まだ全員が一致しない。だから待って」と言って決めない。そして数か月が過ぎる。SIerはお金をもらえるけど、システムはできない。じゃあ、ユーザー側が責任を問われるかというと、そこが「全員一致」の良いところ(!?)、誰も責任をとらされないのだそうです
#こういう文化の組織もあるんですね。

皆さんの周りにも変わった文化の組織があったりしませんか? 意外と、皆さんの会社の文化は世の中ではマイナーだったりするかもしれません!?

Oracleにおける外字や文字化けについて

昔、大学卒業時にバックパッカーみたいなことをして、アメリカに行った際、現地のITエンジニアとバスで一緒になりました。ローカリゼーションみたいなことをやっていると言うので、つたない英語で「日本はダブルバイトで、あーだ、こーだ」と教えてあげたら、全然、信じてくれなかった憶えがあります

偏見かもしれませんが、あまりグローバリゼーションが進んでいないソフトウェア(※)のエンジニアは、英語(せいぜいヨーロッパ系の言語)以外の意識が薄いと感じた瞬間でした。
※:最近は最初からグローバル展開を想定しているソフトウェアが増えてきました。うれしい限りです。

さて、今回はOracleのキャラクタセットについてです。Oracleだと、有名どころのキャラクタセットとして、JA16SJIS、JA16EUC、UTF8あたりがメジャーかと思います。

●ベンダー定義外字

まず、意外とベンダー定義外字あたりにいろいろと違いがあります。そもそもEUCだと少しのベンダー定義外字(NECやIBM定義など)にしか、対応していません。

あと問題となりやすいのはMSの「~」のマップです。ここでは深くは説明しません(※)が、
マイクロソフトのマッピングとOracleのマッピングが異なるため、キャラクタセットがSJISやEUCだと文字化けします。SJISTILDEやEUCTILDEといったキャラクタセットであれば、文字化けしないため、便利です。
※:Googleで「~ SJIS TILDE」と入力して検索すれば、いくつもひっかかるはずです。

ということで、ベンダー定義外字や文字化けを考えると、SJISTILDEというキャラクタセットは便利です。

●文字化けの確認方法

さて、キャラクタセット選定において、文字化けしないかどうか確認するお勧めの方法です。実際に文字化けするかどうかの確認には、SQLの関数を使いましょう。
例:
c_in には整数が入るとします。これで文字コード変換後の文字や文字コードが得られるはずです(PL/SQL風)。
select convert( chr(c_in),'JA16EUC','JA16SJIS') into c_out from dual;
select rawtohex(c_out) from dual;

設計の際の確認においては、文字データが通る経路を調べましょう。理由:文字変換は1対多で定義されているものがあります。その場合、あるキャラクタセットの似た文字(複数)が、別のキャラクタセットでは同じ文字(1つ)にマッピングされます。すると、キャラクタセットの変換を2回する(出し入れする)だけで、違う文字になることがあります(※)! それ以外にも、たとえば、Webの入出力は大丈夫でも、SQL*LoaderでDBにロードされた後、Webで出力されるとNGかもしれませんよ!
※たとえば、APサーバーの文字コードとDBサーバーの文字コードが異なる環境で、APサーバーからDBに格納して、その後、DBサーバーからAPサーバーへ送るケースです。昔、この事実を知ったとき、驚愕しました。出し入れするだけで違う文字になってしまうなんて・・・


●ユーザー定義外字って使いますかねえ

コンサルタントをしていて何度か質問いただいたのが、外字を使いたいんですが・・・という相談です。そういうときに私が答えるのが「APサーバーが扱えますか? 端末で表示できますか? 他システムとデータのやりとりしなくて良いですか?」です。DBに格納するのは構いませんが、そもそも端末やAPで扱えないケースが多いです。それらをクリアした場合には「PUAを使うべし」とガイドします。詳細は割愛しますが、Googleで「PUA 外字」と入力すればいろいろ出てきます。Oracle(JA16SJIS/JA16SJISTILDEなど)でもPUAは使えます。

●今後は・・・

なお、単なるUTF8ではなく、AL32UTF8というキャラクタセットがOracleにあり、これがかなり網羅的なUnicode(最近のUnicode)となっています。ただし、1文字が4バイトの文字もあるため、サイジングでは注意が必要です(単なる UTF8は最大3バイト)。

●参考となる文献

私が書いた章ではありませんが、続・門外不出のOracle現場ワザの第4章「Oracleの文字化け徹底対策」がお勧めです
[ 2009/04/01 23:54 ] DBA | TB(0) | CM(0)
プロフィール

odakeiji

Author:odakeiji
小田圭二 日本オラクルのテクノロジーソリューションコンサルティング統括本部においてデータベースのコンサルタントをしている。今までのキャリアでは、社内教育部隊で、データベースやOS、ネットワークを教える経験を5年ほど積んだり、コンサル部門で主にDB(インフラ含む)のコンサルを10年程度経験した。また、コンサルタントとして、主に大規模ミッションクリティカルシステムを担当。社内では”火消し”とも呼ばれ、システムトラブルの火消しをいくつも担当していたこともある。
ポリシーは、「OracleもOS上で動くアプリケーションにすぎない。だから、OS、ストレージ、ネットワークを学ぶべき。アーキテクチャから考えろ」。
スキル面の興味は、アーキテクチャ、DBA、インフラ技術、教育、コンサル手法など。
本ブログのポリシーは「週に1回、DBAやインフラ担当者の役に立つ記事を書きたい」です(守れるだけ、守りたい・・・・)
なお、本ブログにおいて示されている見解は、私自身の見解であって、オラクルの見解を必ずしも反映したものではありません。ご了承ください。

私の主な著書の紹介です。もしよかったら、お役立てください。他にもオライリーなどがあります

●「絵で見てわかるOS/ストレージ/ネットワーク データベースはこう使っている」小田圭二 著
私のポリシーである”DBMSもOSの動くアプリケーションに過ぎない”に基づいて、OSとDBMSの関係、ストレージとDBMSの関係、ネットワークとDBMSの関係、を解説した珍しい書籍です。DBを学んでひと段落したら、DB使いもインフラ全体を意識しなければなりませんが、そのような人にお勧めです。企業ユーザー向けのIT本としては、2008年度翔泳社No1だとか(最後は出版社談)。

●「絵で見てわかるOracleの仕組み」 小田圭二 著
教育に携わる者としての私の思い「丸暗記するな。アーキテクチャを知るべき。絵で説明すべき」を具体化した、Oracleの入門書です。Oracle初心者向きですが、Oracleの基礎となる部分の動きを解説しているため、バージョンに依存せずに何年先でも使えます。逆に、本書の内容を理解せずに、ひたすら丸暗記すると応用力が身につきません。この本を読むだけで何かできるようになるわけではありませんが、アーキテクチャを身につけて、本当の技術力を身につける第一歩として欲しいと思っています。

●「44のアンチパターンに学ぶDBシステム」 小田圭二 著
本書は、企業のDBシステムの設計/構築から運用管理、プロジェクト管理までの各フェーズにおけるトラブル(失敗)事例について、アンチパターン(べからず集)とその回避策/防止策として解説するものです。チェックリストとして使っていただいても構いません。分かっていてもアンチパターンは避けられないことも多いものです(政治とか)。そういう方には、同じ仲間は多いのだなと再認識していただくための一服の清涼剤としていただければと思います。

●「門外不出のOracle現場ワザ」 小田圭二 他 著
一番最初に出た本です。結構とがった内容を扱っています。
・パフォーマンス分析の考え方(私の担当)
・性能テストや障害テストの仕方、設計の注意点(主に私が執筆)
・コストベースオプティマイザ(10gベース)のアーキテクチャ
・コネクションプーリング
最新のOracleの内容は含んでいませんが、今でも性能の考え方やオプティマイザの考え方は使えるはずです。オプティマイザをここまで解説している本を私は知りません。

●「続・門外不出のOracle現場ワザ」 小田圭二 他 著
「続」の名前の通り、次に出た本です。ちょっと尖り過ぎたかもしれません^^; でも本当に使う内容を選んだつもりです。一流になりたい・他の人と差をつけたい人にお勧めでしょうか。
・性能の良いSQLの書き方
・文字化けの仕組み
・障害(特に性能やハング)の分析・対応方法(私が執筆)
・障害をリアルタイムに分析・対処する方法(私が執筆)
・オプティマイザの使い方ノウハウ
・アップグレードのノウハウ

●「データベース」小田圭二 他 著
私にしては堅い本です。なんせ、共同執筆者が大御所の國友義久先生です。階層型DBMS、ネットワーク型DBMS、リレーショナル型DBMS、XMLDBMS、OO(オブジェクト指向)DBMS、DBMSの持つ機能、DBMSのセキュリティ、データベースの著作権、監査、モデリング、正規化といった内容を網羅しており、深い記述は無いものの、DB技術全体を抑えるのに向いている一冊です。ある程度技術力がついたエンジニアの方が、DB全体を振り返りたい(勉強したい)というときの最初の1冊としてお勧めです。