嘿,伙计们,我想使用ssis任务来生成每日sqlite dbs…ssis作业将大量数据导出到sqlite。
我面临的问题是,ssis为每个插入打开和关闭一个事务,这使得这个任务变得非常慢。
是否有一种方法可以指示ssis在任务开始时打开事务,执行数千次插入,最后关闭事务?
我知道使用ssis dll和c#代码可以很容易地做到这一点,但我想使用system.data.sqlite的唯一原因是希望有一个具有最少代码的解决方案。
有人能帮帮忙吗..。提前感谢
发布于 2010-10-13 04:40:52
尽管我不确定您在数据流任务中使用的是哪种转换/目标组件,但我认为您正在使用OLE-DB-Command将值插入到目标中。OLE-DB-Command为每一行运行语句。
因此,如果您知道每次运行要处理的行数不只是几百行,那么我强烈建议您使用OLE-DB-Destination,它具有快速加载等选项,可以控制在一次批处理中插入多少行。(查找Rows Per Batch和Maximum Insert Commit Size选项)
您可能需要使用临时表才能在您的情况下使用OLE-DB-Destination,但它的性能可能比您当前的实现(假设OLE-DB命令)要高得多。
https://stackoverflow.com/questions/3906609
复制相似问题