Roh*_*ats 4 firebird isql firebird2.5
我有要求inserting enormous data in table of firebird database around 40K entries.我准备好了我的脚本,但是在使用flameRobin执行它时,UI一下子插入如此庞大的数据就永远挂起了.
我知道如果我在255个查询块中执行插入查询会很好,但我想知道bulk insert tool available for Firebird在从scripts.sql文件读取时是否有任何这样的条目.
经过一些谷歌搜索后,我遇到了isql工具,但无法对其执行脚本.有人可以指导我使用任何其他工具或正确的文档一次性输入如此庞大的数据吗?
我已经firebird version 2.5在我的系统上安装了.
您可以使用EXECUTE BLOCK将更多插入内容填充到单个语句中.像这样的东西:
set term !! ;
EXECUTE BLOCK AS BEGIN
insert into ... values ...;
insert into ... values ...;
insert into ... values ...;
insert into ... values ...;
....etc.
insert into ... values ...;
END!!
Run Code Online (Sandbox Code Playgroud)
您可以一次100个或类似地将它们分组.这应该会使事情变得更快,并且还可以改进FlameRobin的解析.
isql仍然更快,但这可以让你更好地控制错误.如果中间的某些插入失败了isql,那么调试的东西真的很难.
40K对我来说似乎并不重要。在我们的案例中,我们处理了数百万条记录,而没有重大问题。我认为饥饿的原因是Flamerobin试图解析整个脚本或类似的东西。请改用isql实用程序。首先,使用命令准备文本文件:
CONNECT "your_server:your_database_name" USER "sysdba" PASSWORD "masterkey";
INSERT ... ;
INSERT ... ;
....
INSERT ... ;
EXIT;
Run Code Online (Sandbox Code Playgroud)
然后从dos提示符下运行实用程序:
isql < your_script.sql
Run Code Online (Sandbox Code Playgroud)
此外,请考虑停用索引并为批量插入操作删除表的外键,然后再还原它们。
| 归档时间: |
|
| 查看次数: |
10096 次 |
| 最近记录: |