![]() |
1
6
分析查询要解决的一个经典问题:
|
![]() |
2
5
您可以使用联接而不是子查询来获得答案
这是从组中的行中获取所有信息的一种相当常见的方法。 与您建议的答案和其他回答一样,使用groupid上的索引,这将运行得更快。让查询运行得更快的好处与维护另一个索引的成本之间的平衡取决于DBA。 如果DBA决定不使用索引,请确保适当的人员理解是索引策略,而不是您编写查询的方式减慢了速度。 |
![]() |
3
4
SQL实际需要多长时间?我想您只需要运行一次,首先修复了导致损坏的bug?我刚刚设置了一个如下的测试用例:
不到2秒。好的,我的桌子的行数是你的一半,但160K不是很大。我添加了filler列以使表占用一些磁盘空间。自动跟踪执行计划为:
|
![]() |
4
2
能够 添加索引。 |
![]() |
5
2
从SQL的角度来看,我认为您已经回答了自己的问题。您描述的方法(即使用子选择)很好,如果任何其他编写查询的方法在性能上有很大差异,我会感到惊讶。 160K唱片对我来说并不多。我可以理解,如果您对某个应用程序代码中的查询的性能不满意,但从它的声音来看,您只是将其用作某些数据清理练习的一部分。(因此,我们希望您在性能方面更加宽容一些)。 即使没有任何支持索引,它仍然只是对160K行的两次完整的表扫描,坦白地说,我希望在某种模糊合理的时间内执行。 与数据库管理员交谈。他们帮助制造了问题,所以让他们成为解决方案的一部分。 /编辑/同时,运行您的查询。找出需要多长时间,而不是猜测。更好的办法是在启用“自动跟踪”的情况下运行它,并将结果发布在此处,这样我们就可以帮助您对其进行一些改进。 |
![]() |
6
0
这项工作是否符合您的要求,是否提供了更好的性能?(我只是想把它当作一个建议)。
|
![]() |
7
0
那么一份分析报告如何:
|
![]() |
M S · 显示加入两个表的所有可用视频 2 年前 |
![]() |
neeh · 为每个父记录选择具有条件的子记录数[重复] 3 年前 |
![]() |
J. Krajewski · 如何计算具有给定成员的组的行数? 3 年前 |
![]() |
VickyBoy · 我试图用3个以上的表构建一个查询,其中数据分散在 3 年前 |
![]() |
newGuy101 · 如何将SQL子查询转换为Join子句? 3 年前 |
![]() |
user18797786 · Fuzzy Wuzzy和另一列的条件 3 年前 |
![]() |
Python learner Shaavin · 在解码过程中保留空间 3 年前 |
![]() |
Marvin · 在MySQL视图中左键连接 3 年前 |