嘿伙计们,我想使用 ssis 任务来生成每日 SQLite 数据库...Ssis 作业将大量数据导出到 sqlite。
我面临的问题是 ssis 为每个插入打开和关闭一个事务,使得这项任务非常缓慢
有没有一种方法可以指示 ssis 在任务开始时打开事务,执行数千次插入,最后关闭事务
我知道我可以使用 system.data.sqlite dll 和 c# 代码轻松地做到这一点,但我想使用 ssis 的唯一原因是用最少的代码找到一个解决方案
有人可以帮忙吗...提前致谢
最佳答案
虽然我不确定您在数据流任务中使用哪种转换/目标组件,但我认为您正在使用 OLE-DB-Command
将值插入到目标。 OLE-DB-Command
为每一行运行语句。
因此,如果您知道每次运行要处理的不仅仅是几百行,那么我强烈建议使用OLE-DB-Destination
,它具有诸如快速加载之类的选项来控制多少行行将被批量插入。 (查找每批行数
和最大插入提交大小
选项)
您可能需要使用临时表才能在您的情况下使用 OLE-DB-Destination,但它可能比您当前的实现(假设 OLE-DB 命令)性能更高。
关于SSIS 和 SQLite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3906609/