我正在使用Derby In-Memory数据库。我需要在开始时从csv文件执行一些数据加载。目前,将所有csv文件加载到其表中大约需要25秒。我希望时间可以减少。由于数据文件实际上不是很大。
我所做的是使用德比的内置程序。
{CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE (?,?,?,',','"','UTF-8',1 )} or
{CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE (?,?,?,',','"','UTF-8',0 )}
唯一特别的事情是有时一个表中的数据被分成许多小的csv文件。所以我必须逐个加载它们。我已经测试过如果我可以将它们组合在一起,它只需要16秒。但是我无法删除此功能,因为用户需要它。
我有什么办法可以减少加载数据的时间吗?我应该禁用日志还是写一些用户定义的函数/过程或者可以做任何其他调整?任何建议都没问题。
谢谢!
答案 0 :(得分:1)
使用H2代替Derby,并使用CSVREAD功能。如果仍然太慢,请参阅fast import优化,或直接使用CSV tool(不使用数据库)。免责声明:我为H2编写了CSV支持。