Ameba Ownd

アプリで簡単、無料ホームページ作成

SoulImpact株式会社公式ブログ

DBの実行計画をだます手段

2025.02.09 09:01

DBの実行計画を騙す手段

Indexを貼っているのにindex scanにならない場合

今回はPostgresqlを例に取ります。

クエリ実行時に適切な実行計画を考えクエリを発行するプランナ(オプティマイザ)という存在がありますが、そのせいでindex scanになってほしいところをseq scanになってしまう場合があります。

※対象テーブルのデータ総量等の条件によりseq scanのほうが適切と判断された場合、index scanは走りません。

そういった場合に、一時的にseq scanを停止しindex scanのみ実施するように誘導することによりインデックスのはられ方が適切かどうか判定する方法をご紹介します。


seq scanの一時停止方法

以下のコマンドをDBクライアントから実施することによりseq scanを停止することが可能です。