У меня есть приложение, которое загружает 1500000 в сетку. Проблема в том, что это занимает много памяти. (1,8 ГБ)
Я заметил следующее,
- Тот же запрос, если я запускаю SQL-запрос
Анализатор занимает около 60 МБ
- В приложении, если я просто выполню
ExecuteNonQuery () также принимает
где-то около 60 МБ.
Проблема возникает, когда я выполняю ее, чтобы получить вывод в виде DataTable, я чувствую, что в том, как я это делаю, есть некоторая проблема. Пожалуйста помоги.
Вот как я это делаю (хотя я вызываю SP, он тоже выполняет sql, который я передаю в качестве параметра)
using (var conn = new SqlConnection(connStr))
{
SqlCommand command = conn.CreateCommand();
//DbCommand command = conn.CreateCommand();
command.CommandTimeout = 30000;
conn.Open();
command.CommandType = CommandType.StoredProcedure;
command.CommandText = spName;
SqlDataAdapter da = new SqlDataAdapter(command);
dt = new DataTable();
da.Fill(dt);
if (dt != null)
{
if (dt.Rows.Count == 0)
{
dt = null;
}
}
conn.Close();
}