一次又一次地查询数据库或一次性将所有数据存储在文件中并查询文件?

时间:2017-11-14 06:18:19

标签: database oracle etl talend

我正在制作一组Talend作业,我将根据作业的需要以不同方式查询同一组表。这些表很大。如果在运行作业之前我查询所有表并从数据库中获取所有数据并将它们存储在一个文件中,然后将这些文件用于Talend作业中的各种查询,那会不会很好这些文件将存储在将运行作业的同一位置,而DB服务器将位于其他位置。如果我没有错,那么DBs本身就会实现某种缓存和索引,以便更快地进行查询和优化。那么,是否值得将它们存储在一个文件中,然后在Talend Jobs中查询它们?我正在使用Oracle DataBase。

1 个答案:

答案 0 :(得分:0)

我不会这样做。

根据您的许可证,您可以使用内存中的表。尽管如此,正如您所说,根据查询的大小,可能会有一些缓存。

我会避免它,因为它可能会导致各种各样的问题:

  • 文件系统可能无法使用
  • 在本地文件系统中没有缓存,调用它可能要慢很多 - 甚至比处理
  • 所有数据库性能助手 - 如索引,缓存,查询分析器 - 将无法使用
  • 需要实现某种数据库系统 - 这是愚蠢的b / c已经有一个数据库

但是,这个或其他数据库中的临时表可能是一个想法。

所以重负荷只会发生一次,我觉得这是一个好主意。然后进一步处理将在临时表上进行。之后,在所有进程完成后,此临时表将被删除。