查询A
SELECT Distinct ord_no FROM Orders
ORDER BY ord_no
查询B
SELECT ord_no FROM Orders
GROUP BY ord_no
ORDER BY ord_no
在Orders tabel中,ord_no是varchar类型并且有重复。这是一个带有标识列的复合键。
答案 0 :(得分:2)
您可以在SQL事件探查器上查看每个查询以毫秒为单位的时间。从管理工作室,转到工具 - > Profiler并在您的数据库上启动跟踪。运行您的查询。你可以看到他们的持续时间。请注意,您需要拥有大量数据才能看到差异。 如果您没有使用SQL的完整版本,则可以使用SQL Express Profiler。
答案 1 :(得分:0)
检查两个查询的执行计划。它们很可能是相同的,特别是在这样一个简单的查询中(你可能会看到一个stream aggregate
运算符,在这两种情况下进行分组)。
如果执行计划相同,那么两者之间的绩效差异(统计上显着)。
话虽如此,只要有疑问,请使用group by
代替distinct
。