SQL Server отстает, несмотря на то, что использует только 10 ГБ ОЗУ из 80 ГБ.C#

Место общения программистов C#
Ответить
Гость
 SQL Server отстает, несмотря на то, что использует только 10 ГБ ОЗУ из 80 ГБ.

Сообщение Гость »


У меня есть сервер, на котором размещены 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;
}
My question is, is there anything that I need to do to improve the code or the SQL Server configuration to prevent this from happening again?
thank you.
I had to restart SQL service then the web app B become smooth again.


Источник: https://stackoverflow.com/questions/781 ... ut-of-80gb
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»