Hola a todos,
Al mirar el SQL generado por el ORM de Microsoft, veo que utiliza mucho las
subconsultas, ¿Es esto óptimo? o es mejor utilizar los inner join.
Por ejemplo, código generado por linq to sql al consultar los productos de la
base NorthWind
SELECT [t0].[ProductID],[t0].[ProductName],(
SELECT COUNT(*)
FROM [dbo].[Order Details] AS [t2]
WHERE [t2].[ProductID] = [t0].[ProductID]
) AS [value],(
SELECT SUM([t3].[UnitPrice] * (CONVERT(dECIMAL(38,9),[T3].[Quantity])))
FROM [dbo].[Order Details] AS [t3]
WHERE [t3].[ProductID] = [t0].[ProductID]
) AS [value2]
FROM [dbo].[Products] AS [t0]
LEFT OUTER JOIN [dbo].[Categories] AS [t1] ON [t1].[CategoryID] =
[t0].[CategoryID]
WHERE [t1].[CategoryName] = 'Beverages'
y código hecho a mano:
SELECT Products.ProductID, Products.ProductName,
COUNT([Order Details].Quantity) AS Value,
SUM([Order Details].UnitPrice * [Order Details].Quantity)
AS Value2
FROM Products INNER JOIN
Categories ON Products.CategoryID = Categories.CategoryID
INNER JOIN
[Order Details] ON Products.ProductID = [Order
Details].ProductID
WHERE (Categories.CategoryName = N'Beverages')
GROUP BY Products.ProductID, Products.ProductName
Estoy siguiendo el tutorial en
http://es.wordpress.com/tag/linq-to-sql/
Gracias por sus respuestas,
Luis Eduardo Duarte
---------------------------------
Fussy? Opinionated? Impossible to please? Perfect. Join Yahoo!'s user panel
and lay it on us.