我的服务器(Windows Server 2012 r2)遇到一些问题。内存总是占使用率的80%左右,有时还会占用CPU,并且托管的应用程序随机崩溃(OutOfMemoryException)。
IIS上约有110个应用程序,SQL Server上有95个数据库。
SqlServer计算机具有〜6500MB的RAM,而IIS计算机具有〜1400MB的RAM。
没有理由因为不经常请求应用而导致内存如此之高。我想知道我在sql server上请求的方式是否正确。
这是我的功能:
public static DataSet SQLServerRequest(string SQL, clsDatabase database)
{
SqlConnection myConnection = null;
DataSet toReturn = new DataSet();
try
{
using (myConnection = new SqlConnection(database.DBConnectionString))
{
myConnection.Open();
using (SqlDataAdapter da = new SqlDataAdapter(SQL, myConnection))
{
da.Fill(toReturn);
}
}
return toReturn;
}
catch (Exception ex)
{
log.Error(SQL + " / Exception : " + ex.Message);
return null;
}
}
因为我可以在SQL Server上看到:
这是一个大问题吗?转移到Adhoc或LinqSql查询会帮助内存减少吗?我在朝正确的方向看吗?