假设我有三个查询在MSSQL中返回相同的结果,而我的数据库太小而无法准确测量执行时间,或者我不相信我的服务器资源足以获得有希望的结果。不过,如果我使用包含数百万行的表运行它,我想知道哪个查询最快。例如,在SSMS Express 2014中,下面批次的确切查询执行计划将说明它们相对于批次的成本相同,等于33%。您可以在TSQL2012示例数据库上运行以下命令。
select e.empid from
hr.Employees e left join
sales.orders o on e.empid = o.empid and orderdate = '20080212'
where o.empid is null
select e.empid from
hr.Employees e
where not exists (SELECT * from sales.orders o where o.empid = e.empid and orderdate = '20080212')
select empid from hr.Employees
except
select empid from sales.orders where orderdate = '20080212'
现在,我不相信所有这些查询都有相同的成本。有没有什么方法可以更精确地评估这些,而无需在更大的数据库上运行此批处理?使用SSMS是首选,尽管我也对外部工具感到好奇。