none
不知道采用哪种技术方案更有效,请指教。 RRS feed

  • 问题

  • 需求是这样的:

    已经有一个人力资源的网站。里面含有企业资料,企业的招聘信息。而且现在已经不少数据。

    现要求从另一个网站采集数据(得到授权),将采集到的数据合并到这个网站来。

    现在的问题是,采集的一个企业信息可能已经存在了,则需要更新该企业资料。如果不存在,则要添加上。

    如果我将所有采集的数据都放到一个List中,再循环调用存储过程来判断是已经存在则修改如果不存在则添加的逻辑的话。系统性能肯定是比较差的。

    请问有没有其它更好的办法来解决。

    dataset.update方法 可以吗?sql server合并复制是用来解决此类问题的吗?谢谢。

    2010年10月23日 13:51

答案

  • 需求是这样的:

    已经有一个人力资源的网站。里面含有企业资料,企业的招聘信息。而且现在已经不少数据。

    现要求从另一个网站采集数据(得到授权),将采集到的数据合并到这个网站来。

    现在的问题是,采集的一个企业信息可能已经存在了,则需要更新该企业资料。如果不存在,则要添加上。

    如果我将所有采集的数据都放到一个List中,再循环调用存储过程来判断是已经存在则修改如果不存在则添加的逻辑的话。系统性能肯定是比较差的。

    请问有没有其它更好的办法来解决。

    dataset.update方法 可以吗?sql server合并复制是用来解决此类问题的吗?谢谢。


    dear

    dataset不會一直佔用著資料庫,全部處理完再update。

    另外datareader效能比dataset好,因為datareader功能比較少,看你自己需求決定,

    選用 DataSet 或 DataReader


    秘訣無它,唯勤而已
    2010年10月23日 14:20
  • 我现在有这个问题,假设已经有的网站数据库DBA,现在需要去采集的网站数据源DBB,是否DBA只是DBB的一个子集?因为DBA的数据都是从DBB中采集而来的?分两种情况:

    1)是。则可这样,先将DBA中的数据全部delete掉,然后再将DBB中的所有数据全部取来重新Insert,整个过程的性能优势在于你不用去判断是update还是insert,用批量来做绝对比filter要快得多;

    2)否。则可这样,先将DBA中的数据取出,然后再将DBB中的数据取出,用DBA的ID(或其他共有信息)作为filter来取得DBB中取药更新的data set DSA,将这部分数据在DBA中更新;然后再将DBB中的数据过滤掉DSA的得到DSB,这部分数据是原来DBA中没有的,直接insert就可以了。

    个人认为,这就是备份数据的问题,相当于DBA是DBB的一个数据备份。

    希望对你有帮助。

    2010年10月24日 4:09

全部回复

  • 需求是这样的:

    已经有一个人力资源的网站。里面含有企业资料,企业的招聘信息。而且现在已经不少数据。

    现要求从另一个网站采集数据(得到授权),将采集到的数据合并到这个网站来。

    现在的问题是,采集的一个企业信息可能已经存在了,则需要更新该企业资料。如果不存在,则要添加上。

    如果我将所有采集的数据都放到一个List中,再循环调用存储过程来判断是已经存在则修改如果不存在则添加的逻辑的话。系统性能肯定是比较差的。

    请问有没有其它更好的办法来解决。

    dataset.update方法 可以吗?sql server合并复制是用来解决此类问题的吗?谢谢。


    dear

    dataset不會一直佔用著資料庫,全部處理完再update。

    另外datareader效能比dataset好,因為datareader功能比較少,看你自己需求決定,

    選用 DataSet 或 DataReader


    秘訣無它,唯勤而已
    2010年10月23日 14:20
  • 初始时,将数据载入内存中,在内存中进行判断,建议用VC结合SQL Server存储过程来实现,以便提高执行效率。
    http://www.cnblogs.com/2gua
    2010年10月23日 23:26
  • 我现在有这个问题,假设已经有的网站数据库DBA,现在需要去采集的网站数据源DBB,是否DBA只是DBB的一个子集?因为DBA的数据都是从DBB中采集而来的?分两种情况:

    1)是。则可这样,先将DBA中的数据全部delete掉,然后再将DBB中的所有数据全部取来重新Insert,整个过程的性能优势在于你不用去判断是update还是insert,用批量来做绝对比filter要快得多;

    2)否。则可这样,先将DBA中的数据取出,然后再将DBB中的数据取出,用DBA的ID(或其他共有信息)作为filter来取得DBB中取药更新的data set DSA,将这部分数据在DBA中更新;然后再将DBB中的数据过滤掉DSA的得到DSB,这部分数据是原来DBA中没有的,直接insert就可以了。

    个人认为,这就是备份数据的问题,相当于DBA是DBB的一个数据备份。

    希望对你有帮助。

    2010年10月24日 4:09