У меня есть сервер, на котором размещены 3 веб-приложения:
веб-приложение A используется нечасто.
веб-приложение B используется ежедневно, всего 13-14 пользователей. Это веб-приложение будет получать доступ к SQL Server для создания, чтения, обновления и удаления запросов.
Веб-приложение C — это браузер папок. Веб-приложение B добавит файлы в веб-приложение C.
Что касается спецификации сервера:
Спецификация сервера
Похоже, что SQL-сервер накапливая память. Через 1 неделю объем памяти может превысить 10 ГБ и начать тормозить из-за ошибки тайм-аута SQLException.
Использование памяти SQL Server
Я думал 80 ГБ ОЗУ будет достаточно, и SQL-сервер будет просто использовать ресурсы, учитывая, что я не менял значение максимального объема памяти.
Настройка памяти SQL Server по умолчанию
Веб-приложение B — это заказной, к которому прилагается запрос к SQL Server:
Код: Выделить всё
internal List GetDbDataSqlConnection(string commandText, Dictionary kvp, string columns, string company = null)
{
List dataList = new List();
try
{
using (SqlConnection sqlConnection = new SqlConnection($"data source={WebConfigurationManager.AppSettings["sqldatasource"]};initial catalog={company ?? WebConfigurationManager.AppSettings["defaultsqldb"]};user id={WebConfigurationManager.AppSettings["sqlusername"]};password={WebConfigurationManager.AppSettings["sqlpassword"]};MultipleActiveResultSets=True;App=EntityFramework"))
{
using (SqlCommand cmd = new SqlCommand { CommandText = commandText, CommandType = CommandType.Text, Connection = sqlConnection })
{
if (kvp != null) foreach (KeyValuePair p in kvp) cmd.Parameters.AddWithValue($"@{p.Key.Replace(".", string.Empty)}", p.Value);
sqlConnection.Open();
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
Dictionary data = new Dictionary();
foreach (string c in columns.Split(','))
{
string x = c.Contains(" AS ") ? c.Substring(c.IndexOf(" AS ") + 4) : c;
x = x.Replace("[", string.Empty).Replace("]", string.Empty);
x = x.Substring(x.IndexOf(".") + 1);
data.Add(x, Convert.ToString(reader[x]).Trim());
}
dataList.Add(data);
}
reader.Close();
}
sqlConnection.Close();
}
}
}
catch (Exception ex)
{
Logger.WriteLog($"[ERROR] on GetDbDataSqlConnection");
Logger.WriteLog($"Exception message : {ex.Message}");
Logger.WriteLog($"Exception : {ex}");
throw ex;
}
return dataList;
}
thank you.
I had to restart SQL service then the web app B become smooth again.
Источник: https://stackoverflow.com/questions/781 ... ut-of-80gb
Мобильная версия