SQL Server 2008 R2で次のクエリを実行した場合、count(*)
集計はOUTER SELECTクエリに対して1回だけ決定されますか、それともOUTER SELECTのすべてのレコードに対して繰り返されますか?
SQL Serverは、同じ計算が繰り返されていることを確認するのにインテリジェントであるため、最適化の目的でこの計算を1回だけ実行すると推測していました。以下のinqueryの値はTotalCount
、外部クエリのすべての行で同じになります。
SELECT
p.ProductId, p.ProductName,
(select count(*) from Products p1) as TotalCount
FROM Products p