いま、クエリのパフォチュをしている。 その中でちょっとした問題にぶつかった。 本番サーバー(高スペック)で実行すると劇的に遅く(5分)、 ハードウェアスペックのみが異なる開発環境では、予期している速度(5秒)という現象だ。 詳しく調べていると、本番サーバーでのクエリ実行プランが開発環境とは、まったく異なることに気づく。 実行プランは、SQLServerのオプティマイザ機能が、インデックスや統計情報、CPUやメモリ状態など あらゆる点を考慮して自動的に作成するが、今回はオプティマイザがちょっとおばかだったらしい。 この対応としては、「Option(HASH JOIN)」というクエリヒントをつけることで、 ある程度、こちらの想定する実行プランに強制することで対処した。 ただ、非常に危ない機能なので、利用を躊躇していたけど、 クエリの内容を検討して、確実にHash Joinであるほうが早いと踏ん