我的.Net應用程序是一個4.0 ASP.net應用程序,有很多數據庫更新,網格刷新後,網格刷新執行更新表的某些事件等)問題是...你會猜測什麼'在應用程序中吃了很多公羊'。 (在幾分鐘內它容易增長到1GB以上)....NET性能調優
我該如何解決這個問題?我會尋求什麼類型的優化?或者你認爲最適合我的方法是什麼?
這一直在困擾我一陣子,但我不能爲我的生活找出什麼導致瓶頸。我關閉了我的對象等,但不確定瓶頸是在SQL還是ASP.net後端。
我的.Net應用程序是一個4.0 ASP.net應用程序,有很多數據庫更新,網格刷新後,網格刷新執行更新表的某些事件等)問題是...你會猜測什麼'在應用程序中吃了很多公羊'。 (在幾分鐘內它容易增長到1GB以上)....NET性能調優
我該如何解決這個問題?我會尋求什麼類型的優化?或者你認爲最適合我的方法是什麼?
這一直在困擾我一陣子,但我不能爲我的生活找出什麼導致瓶頸。我關閉了我的對象等,但不確定瓶頸是在SQL還是ASP.net後端。
下面是我的意見
我的.NET應用程序是一個4.0 ASP.net應用程序有很多數據庫更新
使用報表ADO.Net
using (SqlConnection con = new SqlConnection("Your Connection String"))
{
using (SqlCommand cmd = new SqlCommand("Your Stored Procedure Name", con))
{
SqlParameter param = new SqlParameter();
param.ParameterName = "Parameter Name";
param.Value = "Value";
param.SqlDbType = SqlDbType.VarChar;
param.Direction = ParameterDirection.Input;
cmd.Parameters.Add(param);
cmd.ExecuteNonQuery();
}
}
和電網刷新在網格刷新執行到 更新表等
你會猜測是什麼在我的應用程序 '吃RAM的很多'。 (它 在幾分鐘內容易增長到1GB以上)...
您是否使用DataSet/DataTable?請使用後丟棄。否則,你將面臨崩潰Memory Out of Exception
...
您可以使用ANTS內存分析器的內存泄漏
參考
要回答幾個問題,SqlDataSource是我使用參數化查詢進行更新的「數據源」。對於使用參數化select查詢而言,爲查詢創建存儲過程會更快嗎?他們只是一個班輪(SET [field] = @newvalue)類型的查詢。但是越來越多的數據庫(目前只有300行,但期望值超過10000),如果我們現在有內存問題,我們肯定希望在我們前進之前解決。 – Jason 2012-02-15 03:47:29
我將檢查ANTS,我聽說過它,從未使用它;是否很容易實現以剖析一個asp.net應用程序? – Jason 2012-02-15 03:47:58
-1爲螞蟻;)在那裏,使用它 - Scitech是一個很好的;)對不起,我喜歡他們的產品一般...賽特內存分析器,視覺工作室性能分析器和你areyn appyn。 – TomTom 2012-02-15 04:52:50
可以是任何東西。
用於調試此類問題的工具稱爲內存分析器。有一個叫做「.NET Memory Profiler」的好軟件(見memprofiler.com)有免費試用版。某些版本的Visual Studio也包含一個內存分析器。
作爲一個猜測,我會說你將一些含有數據的對象保存在某個靜態變量中,而不是在你使用它時釋放它。
如何更新/插入到數據庫?我的意思是你正在更新一筆交易的記錄?請提供更多的細節..數據更新過程..或任何我們可以檢查的代碼.. – 2012-02-15 03:36:59
@jason你如何填充網格?你在使用數據集嗎?你是否在會話中存儲所述數據集?你如何編碼網格的數據檢索?您是僅返回當前頁面所需的數據,還是隻返回所有xxx行以顯示其中的100行?有很多地方可以查找問題 – clyc 2012-02-15 03:48:13