2015-04-22 38 views
0
SELECT * 
FROM (SELECT [coit_id] AS commodity 
      ,[sist_id] 
      ,[cost_modified_date] 
      ,[cost_timestamp] 
    FROM [Cargo_Ver_3_0_33].[dbo].[Commodity_State]) 
WHERE 
    commodity > 15 

SQL检查条件时是否首先读取所有记录?SQL Server将读取子查询的所有记录?

+0

对不起,查询粘贴minstakely请看下面的行也 –

+0

为什么你使用子查询?没有必要 – FuzzyTree

+0

这是不确定的,因为sql引擎基于统计信息工作,它开发了一个查询计划并根据该查询计划执行查询。 – CrApHeR

回答

0

不需要在这里做子查询,这将是更昂贵的。以下查询将提供相同的结果。在你上面的例子中,SQL引擎将首先构建子选择列表,然后执行外部查询,但是你没有完成任何需要子查询的独特任务。

SELECT 
    [coit_id] AS commodity, 
    [sist_id], 
    [cost_modified_date], 
    [cost_timestamp], 
    FROM [Cargo_Ver_3_0_33].[dbo].[Commodity_State] WHERE commodity > 15; 
+0

您忘记了'[coit_id] AS商品'字段。 – danielhc

+0

好,我已经更新了答案 – BrianAtkins

0

有一篇关于“How SQL Server executes a query”的很好的文章。

你可以先阅读并看到,Data caches然后Query Execution呼叫做一些寻求和其他操作。

相关问题