我该如何提高使用 Derby 批量数据加载的性能?
我正在使用 Derby In-Memory DB。我需要一开始就从 csv 文件加载一些数据。目前,将所有 csv 文件加载到表中大约需要 25 秒。我希望时间可以减少。由于数据文件实际上并不是很大。
我所做的是使用 derby 的内置程序。
{CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE (?,?,?,',','"','UTF-8',1 )} or
{CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE (?,?,?,',','"','UTF-8',0 )}
唯一特别的事情是有时一个表中的数据被分割成许多小的 csv 文件。所以我必须一一加载它们。而且我测试过是否可以将它们组合在一起,只需要16秒。但是我无法删除此功能,因为用户需要它。
我可以做些什么来减少加载数据的时间吗?我应该禁用日志或编写一些用户定义的函数/过程或可以进行任何其他调整吗?任何建议都会很好。
谢谢!
I am using Derby In-Memory DB. I need to perform some data loading from csv files in the beginning. For now, it takes about 25 seconds to load all the csv files into their tables. I hope the time can be reduced. Due to the data files are not very large actually.
What I have done is using the built-in procedure from derby.
{CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE (?,?,?,',','"','UTF-8',1 )} or
{CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE (?,?,?,',','"','UTF-8',0 )}
The only special thing is sometimes the data in one tables is splitted into many small csv files. So I have to load them one by one.And I have tested if I can combine them together, it will only take 16 seconds. However I cannot remove this feature because it is needed by the user.
Is there anything I can do to reduce the time of loading data? Should I disable log or write some user-defined function/procedure or any other tune can be done? Any advice will be fine.
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用 H2 而不是 Derby,并使用 CSVREAD 功能。如果仍然太慢,请参阅快速导入优化,或使用CSV 工具(不使用数据库)。免责声明:我编写了 H2 的 CSV 支持。
Use H2 instead of Derby, and use the CSVREAD feature. If that's still too slow, see the fast import optimization, or use the CSV tool directly (without using a database). Disclaimer: I wrote the CSV support for H2.