我的.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