結合ヒント(MERGE、HASH、LOOP、REMOTE)の違いを知りたい。では、どのような状況で、どの状況で、どのような理由で行うべきなのでしょうか? どのヒントを使用すればよいかを知る方法は?
ヒントを使用することの賛否両論はありますか?
正しいヒントを使用すると、クエリのパフォーマンスは向上しますか? 悪いところもありますか?
また、これらのヒントを使用する際に何か制限はありますか?
結合ヒント(MERGE、HASH、LOOP、REMOTE)の違いを知りたい。では、どのような状況で、どの状況で、どのような理由で行うべきなのでしょうか? どのヒントを使用すればよいかを知る方法は?
ヒントを使用することの賛否両論はありますか?
正しいヒントを使用すると、クエリのパフォーマンスは向上しますか? 悪いところもありますか?
また、これらのヒントを使用する際に何か制限はありますか?
最も広く使用されているヒントは、多くのパワー ユーザーが眉をひそめる nolock です。SQL Server では、ヒントの使用をお勧めしません。SQL Server エンジンは非常に強力で洗練されており、通常、それ自体で「最適な」クエリ プランを生成し、多くの場合、ほとんどのヒントを無視します。インデックスが使用されていない場合は、選択性が十分でないか (SQL Server の使用料がかからない)、またはその統計が古くなっています。ごくまれに、SQL Server 2008 以降でヒントが必要になります。より多くの/より良いインデックスまたはより良い SQL が必要になる場合があります。
ヒントが必要になるのは、インデックスを修正しようとしたときに SQL Server がインデックスを使用していないか、実際のクエリ プランで示されている正しいタイプの結合を使用して結合していない場合のみです。しかし、そのような状況は非常にまれです。