DataBase

トランザクション

トランザクション用語 すんげー大事 ダーティーリード トランザクションが開始して、コミットまだしてなくても とにかく読んじゃうって話。つまりはロールバックされたらそのデータはないものに。。 SQLServerでいうNOLOCKの状態。こえー。 SQLServerでは読…

インデックス

インデックスってなね。 ルートノード ↓ ブランチノード ↓ リーフノード ってなぐあいにB木になってるよ。 各ノードで一定の個数のキーとポインタのペアを格納。 2分木でなくB木ね。一般的にはせいぜい3,4階層だよ。 とくちょー リーフ同士で双方向ポインタ…

追加、更新、削除

追加 空いてるとこ探して、ページになかったら、新エクステント追加。 その際にROWIDにも書き込み。 削除 レコードディレクトリから検索 レコードディレクトリから削除、レコードデータ自体も削除。 断片化を防ぐための、データの整理は削除のときでなく次に…

フィールドサイズ

なんともOracleはINTEGER,FLOAT,DECIMALどれもNUMBERで内部では持つよ

DBのファイルってな

データファイル ログファイル コントロールファイル データファイル システム用 ログインユーザ情報、テーブル、ビュー、インデックス管理情報、統計情報 それ以外 テーブル、インデックス処理中にソートを行うための一時データ SQLServerだとtempdbだね。 …

インデックス張るとき注意!

更新、挿入が多いテーブルではかえって遅くなることもあるよ。 せいぜい張っても6.7個までにしておくですよ。 カーディナリティの高さは確実に考慮しないとね。

結合

ネスト・ループ レコード数×レコード数 マージ結合 レコード数×レコード数のキーをソートしておく ハッシュ結合 レコード数×レコード数のキーをソートしておく、 ハッシュマップを作っておくSQLServerだとLOOP,MERGE,HASHで指定できるよ。

実行計画の選択基準

ルールベース アクセスパス(あの表のことだ)のランクに基づいて 実行計画を選択する コストベース 統計情報に基づいてコストを計算する。 時計情報(STATISTICS) そのコストに基づいた実行計画を選択する。 コスト=ディスクアクセス、 CPU負荷、メモリ使用量…

SQL実行

解析 書き換え NOT INとかひっくり返したり 実行計画の作成 実行計画自体すごいパターンできるわけですよ。 だからそれをキャッシュするわけですよ。

2種類のエンジン

リレーショナルエンジン SQL解析、最適化 ストレージエンジン ページ管理 バッファ管理 レコード/インデックス トランザクション ロック

DB

リレーショナルデータベースの世界 基礎からわかるDB このふたつはおもしろいなー。 SQLの使い方をお勉強。

データベースソフトウェア

なんとも。ODBCやらPDOやら、ADOやらアタマ弱いぼくには 整理しきれてなかったんですが、わかりやすーい図を発見! なるほどー。ありがたありがた。 http://blogs.grf-design.com/archives/2007/04/howto_linux_tal.html あとカーディナリティの意味がよーや…

今日勉強したこと

IT proの記事でDBの基礎を勉強。 オプティマイザはルールベースとコストベースで動く。 ルールベースは1-15のルールの中で優先が高いルールで実行しようとする。 最強はインデックスサーチ。最悪は全文検索。 コストベースは統計情報に基づいてサーチ。クエ…