今天被分配了一个任务,需求是这样的:
     两个相对独立的系统A、B需要同步数据,通过文本文件来交互数据
   我的解决思路如下:
   首先自然而然想到的方法是:每次读取一行数据,然后将这行数据更新到相关的几个表中,然后事务提交;但随后马上被我否决了,原因是如果数据很大,比如10w条数据或者更多,那么效率是非常低的,若数据量大,同步时间长将造成长时间锁表导致其他功能不能正常使用;
   于是想到第二种方案也是我实现的方案:
   第一步,创建一张临时表,
   第二步,利用脚本将文本文件处理成sql的insert语句,并保存在另一个文件中
   第三步,利用脚本通过sqlplus命令自动执行数据导入到创建的临时表中
   第四步,通过相关表与临时表关联做相关数据的更新
   第五步,利用脚本将处理过程中生成的临时表和临时文件删除
   这样,在处理过程中,其他功能仍然可以正常使用,不会出现因为数据同步时间长,造成长时间锁表,导致其他功能不用使用的情况;
    问题本身很简单,记下来的目的是要告诉我自己,简单的问题更要做好,虽然我的方法不是最好的,但能解决我目前的问题;在处理的过程中,对一些细节的问题的解决使我更加深刻的认识到“细节决定成败”