需求大致是这样的:
现在有一台 A服务器 和 ERP服务器,系统中存在一套算法,在某个模块被运行的时候(ASP.NET)会根据A服务器和ERP服务器的数据跑一遍这个算法,得到我们想要的数据。(MSSQL 2008)
但是这样有个问题,因为数据的不断积累,运算会变得越来越慢,而且每次运行相关模块都会需要跑一整套算法,效率很低。
现在想要对这个模块进行整改。
要求是
尽量小的修改现有业务逻辑的代码,因为代码量很大,数据也很多。曾经做过期初,但效果不明显;
数据必须是实时的,前后差不能超过10秒;
尽量高的性能和可靠性;
数据系核心业务数据,可靠性高于性能。
环境:
方案(ASP.NET)环境是.NET FRAMEWORK 2.0
数据库是MSSQL 2008
我初步的想法是在A服务器的库和ERP服务器的库,那些与业务相关的表有增删改查操作时,用C#写监控配合MSSQL触发器,将增删改查的详细操作和运行算法的最后结果写到另外两个表中,用户看到的最终数据以这两个表为准。
这样问题就变成:A ERP B三个服务器 Aa ERPa Ba三个数据库的跨服务器跨库的数据同步(其实不能算同步,算是数据运算的后的结果和详细记录。)
我现在没有什么思路,其实就是想的用winform或者wpf写一个多线程监控,timer,在mssql中写触发器,方案中写service,配合实现。但是这样很麻烦,工作量很大,而且用timer的性能损耗也不会低。
A服务器a表 同步到B服务器a表,运算到B服务器b表。
这样唯一的好处就是数据实时性凑合,不需要对现有代码做大的改动。
不知道大家有什么好的实现方法?给个思路也行!!!