我刚刚在ORDER语句中遇到了大约5个不同列的SQL查询,这是一种很好的做法,它如何发挥性能?按批次排列的排序是否严重影响了性能?
1
A
回答
4
列数不是很重要。最重要的部分是,订单是否匹配和索引,以及数据库引擎是否能够识别这些数据并正确使用索引。但是,当然有一些区别。主键通常比其他索引快得多,因为其他索引之后需要进行主键查找,并且索引单个整数字段的效果要比索引字符串字段好得多。
关于如何构建数据库,有几种宗教信仰。通常,您可以通过使用整数作为主键来尽量减少数据量,但企业中的许多大型数据库在主键中使用多个字符串字段。这可能有几个原因,但表现通常不是其中之一。
0
如果业务需求规定结果按五列进行排序,那么假设至少有一个客户端和一个服务器涉及到的唯一问题是在哪里执行排序?
所以我猜想对良好实践问题的任何答案都会有一个“取决于”的巨大剂量。
至于性能方面,如果要求进行排序,并且性能是个问题,那么再次查看是否有可能从服务器上执行排序。
1
订购5列或更多列不是良好实践的问题,而是关于业务规则:您是否需要它。如果你必须排序,然后尝试优化它。
一些常规步骤:
首先,检查执行计划目标数据库。
如果性能至少“可以忍受”,那么你就完成了。
否则:
- 变化领域的数量在ORDER BY子句,看看它使执行计划有什么性能上的差异。它应该给你一些关于瓶颈的提示。
- 尝试通过“适当”索引来提高性能。
- 检查提示你的数据库有 - 也许你可以让查询分析器做更好的方法。
相关问题
- 1. 数据库中的列排序是否影响性能?
- 2. 聚集索引排序顺序是否影响性能
- 3. 按文件列按批次排序
- 4. *选择器是否严重影响性能?
- 5. 按计算列排序时的性能
- 6. 重新排序子层没有影响
- 7. 按次序排列结果
- 8. 确定值是否严格按升序排列的链接列表函数
- 9. JavaScript排序按唯一性排列
- 10. mysql按性能排序
- 11. 按性能问题排序
- 12. Magento列表按属性排序按属性排序不值
- 13. SQL Server中是否有“按列排序”?
- 14. Linux上的ACL是否影响性能
- 15. 是否缩小了Node.js的影响性能?
- 16. 阅读外部过程错误流严重影响性能
- 17. 向HDFS写入数据帧是否会影响其排序
- 18. 变量是否会影响性能?
- 19. 此javascript语句是否影响性能?
- 20. Hows是否会影响性能?
- 21. 表大小是否影响INSERT性能?
- 22. $(this)是否会影响性能,如$([selector])?
- 23. 按列排序
- 24. TListView列排序(按前两列排序)
- 25. 排序按倒序除了
- 26. 重排列表不排序
- 27. WCF中的JSON序列化 - 对象属性是否按字母顺序排列?
- 28. “列IN(X)”与“列= X” - 是否影响查询性能?
- 29. 排序后排列两次阵列
- 30. 排序按属性
+1顺便说一下,您可能应该说在* clustered *索引上的排序是快速的。它并不总是聚集的主键索引。 – Andomar 2009-11-07 11:19:08