21

簡単なクエリで、DistinctとGroupByのパフォーマンスと実行計画はほぼ同じであることがわかります。

例えば

SELECT Name FROM NamesTable GROUP BY Name
SELECT DISTINCT Name FROM NamesTable

しかし、いくつかのシナリオでは、サブクエリなどでパフォーマンスが異なることを読みましたか?

では、いくつかの例を作成したり、パフォーマンスが異なるいくつかのシナリオを説明したりできますか?

どうもありがとう

4

2 に答える 2

16

フィールド リストに計算値を含めると、実行計画に違いが見られます。

select Value,
       getdate()
from YourTable
group by UnitID

select distinct
       Value,
       getdate()
from YourTable

クエリはgroup by、スカラー値を計算する前に集計します。クエリはdistinct、集計の前にスカラー値を計算します。

于 2012-05-18T11:04:32.637 に答える
7

これは2つの例です。1つは異なる結果を生成するためのもので、もう1つは異なるパフォーマンスのためのものです。

異なるパフォーマンスを生み出すための例

そして2番目の例:

異なる結果を生成するための例

于 2012-05-18T12:11:29.677 に答える