もわっとしたイメージ重視のテキトーメモ。正確性、網羅性は重視していない。
チューニングの三原則
- 仕事量(計算量)を減らす
- 仕事量は CPUコスト + I/Oコスト とも言える
- 行単位でデータが必要な場合は行指向、列方向でデータが必要な場合は列指向など
- 圧縮でI/Oコストを減らす
- 並列化する
- 仕事を速くする
仕事量(計算量)を減らすのが一番大切
- データ(オブジェクト)構造が最も大切
- 表、索引、パーティショニングなど
- -
SQL実践入門──高速でわかりやすいクエリの書き方 (WEB+DB PRESS plus) P.292 「賢いデータ構造と間抜けなコードのほうが、その逆よりずっとまし」
データ構造の種類
- 表
- パーティショニング
- List / Range / Hash / Composite
- 索引
- BTree Index
- Single column / multi column
- Unique / Non unique
- Bitmap Index
- IOT
- Reverse key Index
- LOB
- BTree Index
- 論理的な集合と物理的なデータ構造の絵を描きたい
アルゴリズム(実行計画)の種類
アクセスパス
- 表スキャン
- 索引スキャン
目次案
- なぜこの本を書いたか
- 自分が欲しかった本
- 自力歩行を目的にしているので、圧倒的に網羅性を意識していない
- 対象読者
- SQLチューニングに携わる初心者から上級者まで
- 全体サマリ
- 基本概念
- 計算量を最少化するための設計と実装
- オブジェクト設計
- 索引設計
- パーティショニング設計
- オブジェクト設計
- SQLコーディング
- 統計情報
- 統計の種類
- 表統計
- 列統計
- 索引統計
- パーテイション統計
- 運用方法
- 統計の種類
- ボトルネックの見つけ方
- 実行計画の取得方法
- 実行計画の読み方
- 実行計画のオペレーション
- アクセスパス
- 結合方法
- 結合順
- 人為的に実行計画を制御する
- ヒントの使い方
- 突然性能劣化時の分析方法
- SQLチューニング演習問題(10問)
- 同じ表への複数回アクセスを、なくす
- 付録
- 統計情報
- 実行計画のオペレーション
- 参考情報
- コラム
-
- アムダールの法則
- プロセスの状態遷移
- 意識されていないページキャッシュとストレージキャッシュ
-