这是一个延续
this question
:
问题很简单。我需要从控制多个表的RESTWeb服务调用方法。一个表是一个快照表,其中包含带有大量XML文件的记录。每个XML文件基本上是另一个数据库的备份。然后,将此备份XML发送给在另一个产品中将数据用作只读信息的客户。基本上,XML中的数据是公司、产品、业务规则等的列表。不,这些客户大部分时间都在离线工作,因此他们无法实时获取数据。
浏览快照列表很困难:
XMLData.Snapshots.Skip(N).Take(1).First();
但效果很好。这是前一个问题的答案。
但是还有另外三个数据列表需要我浏览。这些称为更改、错误和消息。它们包含(1)对数据的更改,(2)修改数据时发生的错误和(3)一般消息。所有这些记录都链接到快照记录。因此,单个快照可以包含多个更改、错误和消息。
我仍然无法访问服务器代码,但是由于有一个围绕实体框架的REST服务公开了大部分功能,所以我仍然可以使用该服务。(而且该服务只能通过内部网访问。这基本上就是我要做的。虽然更改、错误和消息的列表相对较小,但快照仍然很大。
问题是,我现在想生成一个客户端的更改、错误和消息报告,但不需要按快照对它们进行分组!它们需要按日期分组。但是每一张记录也需要显示快照的标题,这会让我感到不可思议的头疼…
在浏览(例如使用常规foreach指令进行更改)时,我可以使用
XMLData.LoadProperty(Change, "Snapshots");
但由于快照记录本身通常约为300MB,所以这只会使整个过程变慢。(这些记录总共有数万条!)所以我需要一个更快的解决方案,而不需要修改服务器代码。
有什么建议吗?
是的,好的。修改服务器是正确的方法,但这是不可能的。它正在生产中,这个列表不太重要,不需要升级服务器。基本上,目前我不允许修改任何服务器代码。(但他们仍然想要这个列表。)
一些额外的复杂性…我正在开发的应用程序只是需要每周或每月运行一次。但根据目前的记录数量,我估计要花两天多的时间才能完成。数据本身将在每个办公日更新几次,服务器上每周都会创建快照。当用户开始浏览维护数据的站点时,总是会产生错误,但一般情况下,每周会有大约50次更改和4次错误,当服务器再次停机或生成快照时,还会出现一些消息。