タグ

まとめとクエリに関するwogawaraのブックマーク (2)

  • SQL Serverのインデックス設計基準

    RDBMSのボトルネックは99%ディスクI/Oにある。CPUや物理メモリに比べて、ハードディスクの速度はかなり遅い。気が遠くなるぐらい遅い。インデックスを効果的に設計すれば劇的にディスクI/Oコストを減らすことができる。 インデックスって何だ?まず簡単に基礎知識。インデックスには、クラスタ化インデックスと非クラスタ化インデックスがある。 大雑把に言えば、クラスタ化インデックスとはレコードデータ自体のディスク上での順序を表す。だから、テーブル毎に一つしか作れない。クラスタ化インデックスの順序が隣接しているという事は、データが物理的に隣接されてディスクに格納されているという事である。 SQL Serverは、データを「ページ」という概念で格納する。I/Oは全てこの8KBのページが最小単位である。レコードをたった一行取得する場合でもページ毎に読み出される。クラスタ化インデックスの順序が近いデータ

    SQL Serverのインデックス設計基準
  • エグゼキュータ。ビットマップヒープスキャン(Bitmap Heap Scan) - taediumの日記

    たまに実行計画で見かけるBitmap Heap Scan や Bitmap Index Scan が気になり調べてみた。ここの解説がわかりやすい。 【PostgreSQLウォッチ】第17回 新しい実行プラン・タイプによるPostgreSQL 8.1の性能向上 Indexの種類としてビットマップインデックスというものがB-Treeインデックスに並ぶものとしてあるというわけではなく、実行時にビットマップを使うよということ。ビットマップヒープスキャンが行われそうなクエリを投げて実行される処理を確認する。 ドキュメントで触れているのはここかな。 11.5. 複数のインデックスの組み合わせ 他のRDBMSでインデックスマージと呼んでいるものと同じなのかもしれない。 クエリ(explain analyze verboseつき) aidにはインデックスが張られている。aidに対してはorで検索。bidに

    エグゼキュータ。ビットマップヒープスキャン(Bitmap Heap Scan) - taediumの日記
  • 1