http://www.atmarkit.co.jp/fdb/rensai/rdbmsarc02/rdbmsarc02_2.html
↑によれば、「DB2では、最初からコスト・ベースによる最適化処理のアプローチが取られてきたため、ヒントのサポートはありません」とあります。
実際その通りですが、このDB2の最適化処理がおバカすぎで、表のサイズが頻繁に増減するような場合は、どんなに主キーや索引をちゃんと張っていても全表検索を選択してしまいます。はっきりいって使い物になりませんし、ヒントのサポートがないので回避方法がありません。
表のサイズが増減しないデータを使うシステムなんてRDBMSが必要なシステムのどれくらいの割合なんでしょうか。
ALTER TABLE <テーブル名> VOLATILEを使うとか裏技的ですがSYSSTATスキーマ中の統計情報を書き換えるとかで索引検索に切り替えられるようですが、「コストベースの最適化です」とうたっているRDBMSとしては御寒い状況です。
皆さんもDB2を使ったシステムの案件がきたら、DB2独特の時代遅れの仕様を充分理解して使用するか、変更できるならばSQL ServerやOracleなどのまともな最適化処理を行えるRDBMSに切り替えましょう。
#本エントリは、DB2 V8.2の現状を元にしてかかれています。将来のバージョンでは状況が異なるかも知れませんのでご注意下さい。