2016-02-02 41 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也会照顾它,所以它总是以最快的方式执行。

*可能会有更大的影响。