我想知道从大型数据库查询数据的最佳方法是哪一种。查询效率
假设我有一个要求,要求获得所有居住在美国的用户以及他们的订单和属于他们订单的产品的列表。为了简单起见,我们有一个user
表,其中CountryId
在该表中...然后Order
表,userId
..然后可能是一个OrderProduct
表,以列出许多产品到一个订单(许多订单可以包含相同产品)。
我的问题是,这将是更好地通过
SELECT userId FROM dbo.User WHERE countrId = @CountryId
我们现在在一个临时表中的相关用户可能创建一个临时表。
然后,做一个
Select p.ProductDescription ...
From @TempTable tmp
INNER JOIN Order o
ON o.UserId = tmp.UserId
INNER JOIN OrderProduct op
ON op.OrderID = o.OrderId
INNER JOIN Product p
ON p.ProductId = op.ProductId
那么,什么我做的是让我需要的用户....动人的是到一个临时表,然后使用该临时表来筛选的数据主要查询。
或者,是高效,如果不是更多,只是做这一切在一个...
Select ... from User u
INNER JOIN Order o
....
WHERE u.UserId = @UserId
?
一体化效率最高。 – Arvo 2011-04-25 07:12:21
如果您发布代码,XML或数据样本,**请**在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码示例”按钮(“{}”)以精确地格式化和语法突出显示它!如果您发布错误信息,请** **使用引用文字('“')格式正确的错误消息。 – 2011-04-25 07:36:48