sql >> データベース >  >> RDS >> Sqlserver

SQL JOINの順序はパフォーマンスに影響しますか?

    SQL2008R2サーバーでの結合順序は、クエリのパフォーマンスに間違いなく影響します。特に、複数のテーブルに対してwhere句が適用されたテーブル結合が多数あるクエリではそうです。

    最適化では結合順序が変更されますが、オプティマイザーはすべての可能な結合順序を試行するわけではありません。最適化の行為自体が貴重なリソースを使用するため、実行可能なソリューションと見なされるものが見つかると停止します。

    犬のように実行されていたクエリ(1分+実行時間)は、結合式の順序を変更するだけで1秒未満のパフォーマンスに低下するのを見てきました。ただし、これらは12〜20の結合と、いくつかのテーブルのwhere句を含むクエリであることに注意してください。

    秘訣は、クエリオプティマイザーが意味を理解できるように順序を設定することです。 Force Orderを使用できますが、それは厳しすぎる可能性があります。結合順序が、where句を介してデータを最も削減するテーブルから始まることを確認してください。



    1. ドロップダウンボックスで選択したアイテムを設定するにはどうすればよいですか

    2. 整数列のデフォルト値を設定するSQLite

    3. Codeigniterトランザクション

    4. OSXでのMySQLrootユーザーパスワードの設定