2011-04-12 75 views
3

在SQL中使用不同的命令是不是很好的做法?独特的命令有什么缺点吗?使用不同的命令

+6

使用_select_命令是否有任何缺点?如果你需要它,使用它。 – 2011-04-12 19:43:41

+0

那么如果你相信CJ Date有什么要说的话,你应该总是为了正确而应用它,但是他似乎并不喜欢SQL ...... – 2011-04-12 22:07:17

回答

10

它完全取决于您的使用案例DISTINCT在某些情况下很有用,但可能会被过度使用。

缺点主要是增加查询引擎执行排序的负载(因为它需要将结果集与自身进行比较以删除重复项),并且它可以用来掩盖数据中的问题 - 如果您正在重复您的源数据可能存在问题。

该命令本身并非天生好或坏。你可以使用螺丝刀敲击指甲,但这并不意味着这是个好主意,或者螺丝刀在任何情况下都不好。

1

它是语言的一部分,所以应该使用。

有些情况下使用DISTINCT可能会导致表扫描,否则不会发生。

您将需要测试每个自己的用例,以查看是否会产生影响并在影响不可接受时找到解决方法。

0

如果您希望确保结果不同于SQL计算机上SQL服务器内部的结果,请使用它。如果您不介意将额外结果发送给客户端并在那里执行工作(以减少服务器负载),那么请执行此操作。这取决于您的性能要求和数据库的特性。

例如,如果明显会减少结果集的可能性非常小,并且您没有将索引列设置为正确的列以使其更快,并且您需要减少SQL Server负载,并且您有备用周期客户端,并且很容易确保客户端的独特性 - 那么您可能需要这样做。

这是很多ifs,ands和mights。如果你不知道 - 就使用它。

5

如果你需要经常使用它来获得正确的输出,那么你有一个设计或JOIN问题

这是完全合法的使用说明。

虽然这是一种聚合:相当于所有输出列上的GROUP BY。所以这是一个额外的步骤是查询处理