我将数据插入到ssis的Table1中。数据加载非常缓慢每分钟(5-10K记录)插入我已经选择目标任务中的快速加载选项,该选项也没有帮助我。SQL数据通过ssis缓慢插入
在另一个表(Table2)的同一个服务器中,数据加载正在非常快速地发生,这与数据表1相比具有更多的数据和更多的索引。
为什么Table1数据插入缓慢?
请帮帮我。
我将数据插入到ssis的Table1中。数据加载非常缓慢每分钟(5-10K记录)插入我已经选择目标任务中的快速加载选项,该选项也没有帮助我。SQL数据通过ssis缓慢插入
在另一个表(Table2)的同一个服务器中,数据加载正在非常快速地发生,这与数据表1相比具有更多的数据和更多的索引。
为什么Table1数据插入缓慢?
请帮帮我。
减缓加载包的原因可能是多种多样的。通常,它们与内存,目标,索引,日志记录等有关。您是否尝试过等效查询的性能?如果这样更好,您可以使用Execute SQL Task
而不是data flow task
。
在您的软件包中,您是否有OLE DB Command
转换或其他完全阻止转换,如fuzzy lookup
或fuzzy grouping
?由于OLE DB Command转换是逐行进行的,所有完全阻塞的转换都会产生大量开销。
看来您正在使用OLE DB目的地,因此您可以相应地更改MICS(最大插入落实大小)和RPB(每批的行)。如果在目标表上有聚簇索引,则由于该事件是大批量会对内存产生负面影响。
感谢您的回复。 我使用oledb源和oledb目标我保留了选项话筒(1000000)和RPB(100000)。在源和目标之间我使用查找来避免重复。 总共5个索引(非集群)应用在表上我禁用索引并加载,插入发生得非常快。如果启用了一个索引,那么数据插入的速度也很慢。有什么我需要检查索引 –
表定义,索引,触发器等? – jarlh