2016-02-02 39 views
2

我正在做一些優化,我需要一些關於優化的技術幫助。過濾父數據庫或子數據庫實體 - 優化

考慮下面的查詢:

SELECT * 
    FROM Employees E 
    JOIN Data D ON E.idDataType = D.idDataType 
WHERE E.idDataType = 1 

會有問題(從視圖優化點),如果我篩選父表或子表?哪一個會更快?

E.idDataType = 1 VS D.idDataType = 1 

員工

|idEmployee|Name|Data1|idDataType|AttributeValue2 
    1   A X   3    xx 
    2   B T   2    xx 
PrimaryKey(idEmployee); 
ForeginKey(idDataType) References Data(idDataType); 

數據表:

idDataType|Description 
    1   etc 
    2   etc 
    3   etc 
    4   etc 
PrimaryKey(idDataType); 
+1

好問題。你可以自己測試一下。將兩個查詢輸入到一個SSMS窗口中。按Ctrl + L將顯示兩個執行計劃。在這個例子中,我懷疑兩者是相同的。 –

回答

1

沒有,也沒關係,結果將是相同的。 即使它們有不同的執行時間,DataBase也會照顧它,所以它總是以最快的方式執行。

*可能會有更大的影響。