什么时候sql明显快于java编程'distinct'

Fra*_*See 8 java sql database oracle performance

如果我有一个使用'distinct'(在oracle中)的sql查询,它会比检索非distinct更快,然后通过java编程获得唯一的结果吗?

我听说oracle sql的重要区别很重,但它是否比通过java编程手动'区分'更重?

谢谢,弗兰兹

Rob*_*anu 25

拇指的规则是数据库中的数据处理速度比编程语言快.

原因是数据已经在数据库中可用,它节省了转到您的应用程序的工作量:

  • 从数据库编组驱动程序的数据;
  • 网络传输;
  • 从驱动程序到应用程序的解组数据;

至于Oracle DISTINCT很重要,它的意思就是永远不要仅仅DISTINCT因为它似乎是一个好主意而抛出一个查询 - 用一个真实的数据集来描述它,因为它可能会产生严重的性能影响.


Jon*_*eet 11

两个主要方面:

  • 如果必须将数据传输到Java,那么执行该传输的所有开销都是如此.在数据库中完成工作意味着您无需传输不需要的数据.
  • 数据库将能够使用其索引,缓存等来加快速度.

我很惊讶地发现获取所有数据然后在Java中执行不同的操作比在数据库中执行它更快.


Eri*_*ler 6

如果您的应用程序可以比数据库更快地执行此操作,则数据库会严重损坏(除非应用程序在速度相当快的计算机上运行).当然数据库必须做一些工作(排序或使用哈希表来消除重复),但你的应用程序也是如此!

在应用程序中执行数据库可以很好地完成任务几乎总是错误的.