2010-09-03 135 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個性能點擊,首先是因爲需要傳輸的數據會隨着時間的推移而增長,導致下載時間更長,其次你需要解析更多的數據。