哪种方式更好的处理数据Groupby / Distinct

时间:2016-04-06 07:50:08

标签: oracle oracle11g

我有一个大的sql,它扫描多个包含百万条记录的表。查询完成后,我得到250K记录。在写入文件之前,结果集将保存在临时表中。结果集有可能重复。

问题是,以下哪个选项更好,并提供更好的结果

  1. 在将结果集插入临时表之前执行group bydistinct

  2. 将重复记录插入临时表,并在从登台表中选择记录时使用distinct / group by

  3. 1和2之间差别不大

1 个答案:

答案 0 :(得分:4)

如果在插入之前过滤重复项,那么您将减少需要在登台表中进行的写入次数,并且由于这些重复的行不在登台表中,因此您还将减少该次数当您将其写入文件时,从临时表中读取的内容。因此,从逻辑上讲,选项1应该会提供更好的性能。

但是,如果您担心两者之间的区别,那么答案必须是"在系统上配置两种方法,并查看哪种方法最适合您的硬件/表/索引/等&# 34。