【发布时间】:2013-10-02 09:23:46
【问题描述】:
我正在尝试加快查询速度。其中很多都相当复杂,目前我主要通过创建多个查询并通过连接链接它们来实现这一点。
这是最佳做法,还是我应该在SELECTs 中使用SELECTs 并尝试在一个查询中实现相同的目标?
任何一个选项都会影响速度,还是复杂只是复杂?
编辑:下面的示例查询
SELECT HoldingCoNos.ID
FROM (
SELECT [SearchByName - No Filter].ID
FROM [SearchByName - No Filter]
INNER JOIN [SearchByName - Level 1 Subsidiaries]
ON [SearchByName - No Filter].ID = [SearchByName - Level 1 Subsidiaries].[Holding Company]
) AS HoldingCoNos
GROUP BY HoldingCoNos.ID;
这一切都在一个查询中 - 另一种选择是将查询的 FROM 部分的内容创建为两个单独的查询,保存它们并使用内部连接。
【问题讨论】:
-
你能举个例子吗?
-
“最佳实践”是一个见仁见智的问题。虽然它们通常代表明智的建议,但我发现有时,“最坏的做法”更适合手头的情况。关于您关于哪种方法性能更好的问题,当您测试每种方法时发生了什么?
-
请注意,您问这个问题是针对一个不提供分析或分析机制的数据库,这意味着任何答案都有点像在黑暗中拍摄。我经常使用 MS Access(尽管我确实使用 SQL Server),而且我基本上从不使用链接查询对象或子查询。我怀疑我的应用程序与您的应用程序有不同的,也许更简单的要求。
-
“多个查询并通过连接链接它们”与“选择中的选择”,有什么区别?通常,一个查询中只有一个
SELECT语句。 -
@DanBracuk 变化很大,很难说,但这是一个非常明智的建议。
标签: sql ms-access join ms-access-2010