Developers Summit 2009 発表資料ダウンロード開始

ちょっと時間がたってしまいましたが・・・

Developers Summit 2009でのセッションは無事終了することができました。 聴講していただいた方、ありがとうございます。何かしらお役に立つ情報をご提供 できたのなら光栄です。

さて、発表資料の方もSlideShareで公開されています。

* [Developers Summit 2009 セッション資料ダウンロードサイト](http://www.slideshare.net/event/developers-summit-2009/slideshows) * [【13-D-3】 プロとしてのOracleアーキテクチャ入門 ? 番外編 ?](http://www.slideshare.net/devsumi2009/13d3oracle)

おそらく期間限定と思いますので、ご入用のかたはダウンロードしてみてください。

CHAPTER 03 データファイルと関連する構成要素

今回のentryでは、「SECTION I Oracleアーキテクチャ概要」の 「CHAPTER 03 データファイルと関連する構成要素」について補足説明します。 この章では、データを格納するファイルである「データファイル」 と1つ以上のデータファイルをグループ化した記憶領域である「表領域」、データファイルへのI/Oのバッファ/キャッシュとして機能する「データベースバッファキャッシュ」について説明しています。

書籍では、いわゆる通常の表領域である「SMALLFILEタイプの表領域」についてのみ説明 しています。ターゲットの観点から書籍では説明していませんでしたが、 Oracle 10gからは新しい表領域のタイプである「BIGFILEタイプの表領域」が導入されています。

### BIGFILEタイプの表領域

SMALLFILEタイプの表領域、すなわち従来の表領域が存在した目的の1つに、 複数のデータファイルを束ねた仮想的な記憶域として表領域という概念を用意することで、 Oracleから意識する対象を表領域のみとすること、すなわち、 具体的なファイルの構造や、ファイルが配置されてている ドライブ/パーティション/ファイルシステムを隠蔽して、いわば物理的なストレージを 仮想化することがあったと考えられます。

[…]

Developers Summit 2009でお話させていただきます!

* [Development Style(DB)](http://www.seshop.com/event/dev/2009/timetable/Default.asp?mode=detail&eid=124&sid=761&tr=13%5FDevelopment+Style%81iDB%29#761)

なんとDevelopers Summit 2009(2/13(金) 13:10?14:00 at 目黒雅叙園)にてお話させていただくことになりました! 講演のタイトルは「プロとしてのOracleアーキテクチャ入門 ?番外編?」です。 来場される方の担当業務としては、DBA、インフラ設計よりはむしろ SQL/プログラム開発の方が多いのかなという判断で、 SQL実行/チューニングにまつわる Oracleアーキテクチャについてお話させていただきます。 書籍「プロとしてのOracleアーキテクチャ入門」でいうと、 「CHAPTER 13 問い合わせ処理の仕組み」+αの内容になると思います。

「テクノロジーの変化を体感するためのDevelopmentStyle 2.0」というテーマに 沿うよう、11g新機能や知られていないテクノロジを紹介できるように準備を進めてい ますが、SQL/プログラム開発の方にターゲットを絞っている関係上、 内容的には基本的/基礎的なものになるかと思いますので、この点、あらかじめご了承 ください。

さて、具体的には、以下の内容についてお話させていただく予定です。

* SQL実行のためのOracleアーキテクチャ * 実行計画とCBO * ヒストグラムと最適なアクセスパス * SQL開発におけるOracleアーキテクチャ特有の注意点 * オプティマイザ統計の重要性 * 共有プールのflush * バインドピーク

それでは、当日会場でお会いできることを楽しみにしています。

CHAPTER 02 クライアントアプリケーションとサーバープロセス – プロとしてのOracleアーキテクチャ入門

今回のentryでは、「SECTION I Oracleアーキテクチャ概要」の「CHAPTER 02 クライアントアプリケーションとサーバープロセス」について補足説明します。 この章では、SQL*PlusなどのOracleに接続するアプリケーションである「クライアントアプリケーション」 とクライアントから指示に従い実際に処理を実行する「サーバープロセス」について説明しています。

あるクライアントアプリケーションがOracleに接続すると、そのクライアントアプリケー ション専用のサーバープロセスが起動します。 ここで、クライアントアプリケーションとサーバープロセスの間に設定されるコネクションを、 Oracleではセッションと呼びます。 これらについては、書籍で説明したとおりですが、このentryでは、 Linux上でクライアントアプリケーションとしてSQL*PlusでOracleに接続した場合を例に、 クライアントアプリケーションとサーバープロセスの関係について、 プロセスの相互関係、セッションの観点から確認してみます。

まず、SQL*Plusを起動して、connectコマンドでOracleに接続すると、サーバープロセス が起動します。 これは、SQL*Plusにおいて、fork()、exec()システムコールを実行することで、 プロセスが複製され、複製されたプロセスの実体がoracleプログラムに変わるためです。 このような処理を行うことで、サーバープロセスに対応したプロセスが新規に作成されます。 そして、このサーバープロセスはSQL*Plusの子プロセスとなり、 サーバープロセスとSQL*Plusは子プロセス、親プロセスの関係をもちます。 そして、2つのプロセス間にパイプと呼ばれるプロセス間通信路を設定します。 すなわち、セッションはパイプにより実現されるわけです。

ここで説明した動作を実際に確認してみましょう。 まず、SQL*Plusを実行して、Oracleに接続してみます。

[o11106@hp1 ~]$ sqlplus /nolog

SQL*Plus: Release 11.1.0.6.0 – Production on 日 11月 9 15:36:10 2008

Copyright (c) 1982, 2007, Oracle. All rights reserved.

SQL> connect […]

CHAPTER 01 データベースとインスタンス – プロとしてのOracleアーキテクチャ入門

私が中心になって執筆した書籍 「プロとしてのOracleアーキテクチャ入門」について、 紙幅や構成上の制約で触れることができなかった点、誤記などについて、 各章ごとに補足説明をしたいと思っています。

今回のentryでは、「SECTION I Oracleアーキテクチャ概要」の「CHAPTER 01 データベースとインスタンス」 について説明します。 この章では、OS上のファイルの集合として構成される「データベース」と、 OS上のプロセスとメモリとして実現される「インスタンス」について取り上げています。

ファイルはlsコマンド(UNIX/Linux)や、エクスプローラ(Windows)にて実際に確認できます から、「データベース」についてはイメージしやすく実感がわきやすいものと思います。

しかし、プロセスとメモリとして実現される「インスタンス」については、 理解がしにくいかもしれません。このため、書籍のP17 では、UNIX/Linux版Oracleを例にとり、 psコマンドやshow sgaコマンド(SQL*Plus)の実行例を記載することで、 理解を助けるように工夫しています。読者がより親しんでいるであろうOSのWindows版 Oracleを例にとり説明できればよかったのですが、以下の理由でUNIX/Linuxプラットフォーム での説明とせざるをえませんでした。

[…]

書籍 「プロとしてのOracleアーキテクチャ入門」を執筆しました

(なんと前回のエントリから3年近く間が空いてしまいました・・・) Oracle Database のアーキテクチャについて説明した書籍「プロとしてのOracleアーキテクチャ入門」を 執筆するお話をソフトバンククリエイティブ社様よりいただき、 同じ職場のOracle暦10年のベテランエンジニアの方と共同で執筆作業をすすめ、 2008/8/22に(なんとか)無事出版できました。

* [ソフトバンククリエイティブの本:プロとしてのOracleアーキテクチャ入門](http://www.sbcr.jp/books/products/detail.asp?sku=4797349801)

Amazonのレビューでも好意的なコメントをいただけており、ほっと一安心といったところです。

[…]