2010-09-03 132 views
0

我正在从Web服务定期获取数据的应用程序。问题是,Web服务不公开一种方法来获取数据的时间范围。所以我必须获取所有数据并删除过时的条目。我认为这将是一个问题时,返回数据的规模变大。无论如何提高性能?提前致谢!关于Web服务的性能问题

回答

1

如果可能的话,你应该有一个重载的方法,其中你可以传递startDate和endDate。

如果这是不可能的,那么你最好的办法是找到获取数据和过滤数据的最快方法。 如果我假设你从WS方法得到一个数据表,你可以编写一个LINQ查询来根据日期范围列进行过滤,然后批量加载到你的destination.if例如它是MS Sql Server,你可以在其中加载数据,您可以在第一步中执行SQLBulkCopy。必须有类似的方法来完成这种散装货物。

完成初始加载后,您可以通过对源表进行适当的索引来将数据加载到表中。

这个问题是围绕着你可能从WS获得的数据量,以什么为目的地加载数据,什么是可用于dataread/write的最优化驱动程序,以及如果你可以修改WS与否(我不假设你的问题)。 如果你让我更多关于这些东西,我可能会给出一个具体的答案来改善你的负载性能。

1

增强应该发生在Web服务的一侧。 您只能调用该服务公开的方法,并且如果服务始终返回所有数据,那么如果您使用SOAP,则所有数据都将被封装到SOAP信封中,并通过电汇进行传输,您无法在您的以我的知识结束提升表现。

另外请注意,因为这个原因你需要2个性能点击,首先是因为需要传输的数据会随着时间的推移而增长,导致下载时间更长,其次你需要解析更多的数据。