在做一个电力mis的前期数据升级工作,就是把原数据库中表的数据导入到相应的新表中去。由于数据结构不同,所以采用的是用一个datawindow先取出源表中的所有数据,用getitemstring等datawindow函数取出某些字段的值,再一条一条insert到新表中。问题是数据量太大了,怎样才能实现分批写入,同时给出一些诸如当前写到第几行的提示?最好有实际的代码,谢谢了!
这么大的数据量最好不用数据窗口来实现。大数据量的网络传输会对性能有很大的影响。建议使用存储过程实现。
使用pipeline啊,这个东西很好,你只要建立一个pipeline时将两边表的字段对应就可以了。很方便的
后台直接写存储过程
使用UPDATE语句速度比较快
前一段时间我也有相同的问题,我采用的是存储过程 + PB三层应用
没遇过这么多数据,我认为直接在数据库端处理更快。
如果用datawindow,retrieve恐怕都要几分钟.
你用两个数据窗口,查一个,一条条地写另一个,最后把另一个update到库中,应该也行吧
很直观、明了的。
如果怕死机,可以设定另一个窗口中写入10000条后update一次
这种办法可以在程序中灵活控制,速度虽然慢些,但很直观和简单,如果我用一定用这个办法。