2008-08-17から1日間の記事一覧

正しいwhere句の指定の仕方について

インデックスを使っているカラムについて、where句で!=を使った場合インデックスは無効になるらしい。

セレクティビティについて

カラムにおける、ある値の占める割合が大きいことをセレクティビティが高いといい、逆をセレクティビティが低いという。 セレクティビティが高い値を検索する場合、インデックスを使う意味はあまりないらしい。

RDBMSの実行計画の方式について

RDBMSの実行計画の方式は、大きく分けて以下の2つがある。 1)「ルールベース」方式 2)「コストベース」方式ルールベース方式が主流の頃は、SQLをいかに上手に書くかということが重要でしたが、コストベース方式が主流になるにつれて高速なSQLをひねりだ…

テーブルの結合方法3つ

テーブルの結合方法には以下の3つがある。 1)ネステッドループ結合 2)ノートマージ結合 3)ハッシュ結合 ネステッドループ結合 総当り方式の結合方式 プログラムにするとループの中にループを入れ込んだような仕組みだからネステッドループとよぶのかも。 ソ…

インデックスの欠点について

インデックスには以下の欠点がある。 インデックス自身のデータを格納するためのディスク容量が必要となる。 更新性能が落ちる。(本テーブルだけでなく、インデックスも更新する必要があるため。)

SQLの最適な実行計画

インデックスの有無やデータの偏りによって実行効率は大幅に変わってくる。つまりSQLの最適な実行計画はこれらを考慮して作成される。

RDBMSの仕組み

RDBMSの中身(ORACLEの場合。ただし他のRDBMSも似た仕組みを持つ。)は、以下のようになっている。 パーサー => クエリートランスフォーマー => エスティメーター => プランジェネレータ パーサー SQLの文法チェック、ユーザがテーブルに対してアクセス権限を…

トランザクションのACID特性について

トランザクションは、ACID特性を満たしていないといけない。