2009-11-02 21 views
0

目前我們已經啓動並運行了一個Web服務,它可以處理我們對數據庫的所有C.R.U.D調用,以及用戶和數據庫之間幾乎所有的交互。調用web服務很慢,我應該使用別的東西嗎?

(開始檢查數據庫,看看是否有一個爲最終用戶應用程序的特定版本,檢查證件,檢查/讀取各種其他應用程序設置,等,等更新)

幾乎一切我們的桌面應用程序(使用WPF .net framework 3.5編寫的C#),它會調用Web服務。問題在於,在較慢的機器上這會花費太長時間。有些用戶不得不等待3分鐘才能讓應用程序冷啓動(這可能部分是因爲.net框架緩慢加載時間......但Web服務調用對任何事情都沒有幫助)。

我猜想,因爲我們的應用程序或多或少都是數據庫的奇特前端(SQL SERVER 2005),除了Web服務之外,我們是否應該使用別的東西來與它進行通信?那裏還有什麼?我選擇Web服務是因爲這是我知道如何去做的唯一事情。 (除了直接連接到數據庫)其他類似的應用程序使用什麼?

謝謝

回答

1

正如@Chris Marisic所提到的,第一個配置文件確保問題出現在網絡中。假設它是,你可以嘗試幾件事(我不知道WPF,所以你將不得不看看它們如何與框架一起工作)。

  1. 該批次相似商品。 例如,不是每次從表(或等價物)加載1行,而是加載幾行。
  2. 可能網絡調用異步。 如果您必須向Web服務發送一堆獨立調用,請將它們異步發送,以便一次發送多個請求。
  3. 緩存值。如果您不小心(這取決於您關心的緩存是否最新),這可能會增加很多複雜性。監聽服務器更改(或者讓服務器進行更改的能力)的能力使其更易於處理。

我在一個不同的框架上有類似的問題,我只是用#1得到了一些加速。

+0

我可以添加到列表中的另一件事是,因爲它是一個非常好的列表,因此可能會將二級memcaching添加到服務器,以便該服務永遠不會等待數據庫交互。如果你使用像NHibernate這樣的ORM,許多人很容易支持添加二級緩存。 – 2009-11-03 13:14:28

0

配置文件配置文件。不要做出假設。

0

「web服務」的意思是「SOAP服務」嗎?分析將會告訴你SOAP是否向你購買了某些東西。

延遲和(n + 1)查詢很可能正在查殺您。應該很容易測量。

相關問題