2013-02-07 88 views
0

我們幾天前交付了一個成功的項目,現在我們需要在WCF Restful API中進行一些性能改進。WCF Restful API的總體性能改進

這些項目是使用以下工具/技術

1- LINQ
2-實體框架
3-企業庫記錄/異常處理
4- MS SQL 2008
5-部署在IIS上7

需要注意的幾件事

1- 10-20查詢具有超過7的表聯接在LINQ

2-當前IIS有超過10個應用程序部署

3-實體框架具有圍繞60個表

4- WCF API使用HTTPS

5所有的API調用返回JSON響應

的一般流程是

1- WCF呼叫接收

2-會話檢查

3-從BL層功能被稱爲

4-功能從DA層是稱爲

5-在JSON中返回的響應

目前,按照我的小知識和研究,我認爲,繼 可以提高性能

1-實現緩存引用數據超過3

2 - 移動LINQ查詢聯接到存儲程序(和使用提示,也許?)

3-數據庫中的表重新索引

4-使用性能計數器知道的問題區域的

5-超過3更新/刪除/插入移動功能,存儲過程

你能指出上述改進的一些問題?還有什麼 我可以做的其他改進?

+1

你5個改進點中的4個只是猜測。從編號4開始,創建一個新列表。 – adrianm

+0

我不確定linq的東西,但有一點我會建議你做,如果你還沒有使用global.asax方法檢查會話。 – sanpaco

+0

@adrianm是的,他們是猜測,因爲我寫道「可能會改善」。所以,如果這些不正確,請提出建議。 –

回答

1

你的帖子缺少你的改進建議的一些背景。他們只是猜測或者你真的測量並確定他們爲問題領域?

確實無法用正確的性能監視和分析來確定哪個區域應該專注於優化。其他一切都只是猜測,儘管有些事情可能是顯而易見的,但實際上往往是提高性能的非常明顯的事情。

  1. 通過性能分析工具運行您的代碼以快速識別實際應用程序中的問題區域。如果您無法訪問Visual Studio Performance Analyzer(Visual Studio Premium或Ultimate),請查看PerfView,這是一款相當不錯的內存/ CPU分析器,不需要任何費用。

  2. 使用諸如MiniProfiler之類的工具可以輕鬆設置測量點以及在運行時監視實體框架的執行情況。 MiniProfiler也可以配置爲將結果保存到一個數據庫,這在您沒有用戶界面時非常方便。

  3. 通過查看SQL執行計劃以及獲取SQL IO statistics,可以分析從實體框架中生成的可在MiniProfiler中看到的T-SQL語句,從而輕鬆測量查詢性能。這應該給你一個很好的概述,可以/應該把什麼放入存儲過程,如果你需要任何其他索引。