如何解决使用区别命令
| 在SQL中使用不同的命令是一种好习惯吗?独特命令有什么缺点吗?解决方法
这完全取决于您的用例。
DISTINCT
在某些情况下很有用,但可能会被过度使用。
缺点主要是增加了查询引擎执行排序的负担(因为它需要将结果集与其自身进行比较以删除重复项),并且可以用来掩盖数据中的问题-如果您获取重复项,则可能您的源数据有问题。
该命令本身并不是天生的好坏。您可以使用螺丝刀锤打钉子,但这并不意味着它是个好主意,或者在所有情况下螺丝刀都是不好的。
,如果需要定期使用它以获取正确的输出,则说明设计或JOIN问题
否则,它是完全有效的。
但是,这是一种聚合:相当于所有输出列上的GROUP BY。因此,查询处理是一个额外的步骤
,它是语言的一部分,因此应使用。
在某些情况下使用ѭ0可能会导致进行表扫描,否则将不会进行表扫描。
您将需要针对自己的每个用例进行测试,以查看是否存在影响,如果影响不可接受,则找到解决方法。
,从此http://www.mindfiresolutions.com/Think-Before-Using-Distinct-Command-Arbitarily-1050.php
有时可以看到,如果初学者在结果集中得到了一些重复项,那么他们正在使用DISTINCT。但这有其自身的缺点。
不同会降低查询的性能。因为正常过程是对结果进行排序,然后删除那些
等于前一行。
DISTINCT在记录的所有字段之间进行比较。因此DISTINCT增加了计算量。
,如果您希望这项工作确保结果在SQL机器上的SQL Server内部是不同的,请使用它。如果您不介意向客户端发送额外的结果并在客户端进行工作(以减少服务器负载),则可以这样做。这取决于您的性能要求和数据库的特征。
例如,如果distinct不太可能会大大减少结果集,并且您没有索引正确的列以使其快速运行,并且您需要减少SQL Server的负载,并且有闲置的时间客户,并且很容易确保客户的与众不同-那么您可能想要这样做。
那是很多if,ands和mays。如果您不知道,请使用它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。