データベース管理システムが、受け取ったSQL文を実行するまでの処理の流れ
データベース管理システムが、受け取ったSQL文を実行するまでの処理の流れ
[画像のクリックで拡大表示]

 SQLのプログラミングは奥が深い。特にパフォーマンスの観点から、そう言えるだろう。

 みなさんご承知の通り、同じ結果を出すプログラムでも、SQLの書き方次第で処理時間に何倍もの差が生じ得る。効率の悪いSQLを書いてしまう原因は、多くの場合、リレーショナルデータベースの内部動作やアプリケーションに関する理解不足である。両者をよく知った上で最適なSQLを書けるようになることは、システムエンジニアとしての重要なスキルの一つである。

 特集『基礎から理解するデータベースのしくみ』では、リレーショナルデータベースの内部動作について、基本的な部分を分かりやすく解説している。SQLプログラミングに役立つことはもちろん、SQLチューニングやデータベース設計のための基礎知識としても不可欠だ。

イントロダクション

ブラックボックスのままでいいの?

Part 1:SQL文はどのように実行されるのか

SQL実行までの三つの過程

効率の良い実行計画の作成

ヒント句を指定して実行計画を立てさせる

インデックスの作り過ぎに注意

Part 2:データの格納方法を知ろう

データベースには3種類のファイルがある

テーブルとレコードの構造を詳しく見てみよう

インデックスで検索を高速にする

RDBMSが備えるさまざまな高速化手法

Part 3:トランザクションとは何だろう

複数の処理をひとまとめにして扱う

分離性と同時実行性はトレードオフ

デッドロックが起こらないようにする