У меня есть сайт с простой страницей. При щелчке по кнопке мы выполняем запрос MDX, который возвращает около 200 000 строк с 20 столбцами. Я использую следующий код для выполнения MDX запроса с использованием библиотеки Microsoft.AnalysisServices.AdomdClient (версия 10.0.0.0 выполнения версия v2.0.50727)Использование памяти в пуле приложений в IIS 6
var connection = new AdomdConnection(connectionString);
var command = new AdomdCommand(query, connection)
{
CommandTimeout = 900
};
connection.ShowHiddenObjects = true;
connection.Open();
var cellSet = command.ExecuteCellSet();
connection.Close();
Хотя запрос выполнения usgae памяти пула приложений идет очень высоко.
Это начальное состояние использования памяти на сервере:
После выполнения запроса:
Я не знаю, почему использование памяти идет так высоко и так и остается. Я использовал профилировщик в своей локальной коробке, и все выглядело нормально.
Какие варианты я должен выяснить, что держит память?
Есть ли явный способ снять эту память?
Разве библиотека ADOMD всегда потребляет много памяти? Есть ли у нас альтернативные варианты выполнения запросов MDX с использованием C#?
Когда память usgae достигает этого максимума, IIS прекращает обработку других запросов, и приложение, размещенное на том же сервере IIS (с использованием другого пула приложений), также подвергается воздействию, и запрос занимает больше времени для выполнения.
Вы выяснили, как его найти? – coder771