1
select * from AdventureWorks.Sales.Customer c
inner loop join AdventureWorks.Sales.SalesOrderHeader o on o.CustomerID = c.CustomerID

select * from AdventureWorks.Sales.SalesOrderHeader o
inner loop join AdventureWorks.Sales.Customer c on c.CustomerID = o.CustomerID

MS Sql Server の場合: 上記の 2 つのステートメントは、異なる実行計画を作成できます。テーブル Customer とテーブル SalesOrderHeader のレコードの大きさの順序が大きく異なると仮定します。性能が良いのはどっち?なぜ?

4

1 に答える 1

1

結合ヒントを使用すると、結合順序が強制されます。[メッセージ] タブを調べてください: というメッセージがあります。

これは、結合ヒントを使用することの非常に残念な副作用です。それはそれらを使用するのを非常に厄介にします。

性能が良いのはどっち?

クエリの実行時間を見て、それに答えるためにコストの見積もりを計画してください。

于 2013-02-14T16:03:21.863 に答える