2015-04-22 41 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呼叫做一些尋求和其他操作。

相關問題