Я храню данные в DataTable, используя SqlDataAdapter.fill. Затем, возвращая эту таблицу как JSon.
При получении этого JSon в клиентском приложении (Excel), он работает очень медленно.
Любая идея, как я могу улучшить производительность .?
Код API:
[Authorize]
[Route("GetRecord")]
public DataTable Records(DSModel model)
{
var table = new DataTable();
using (var da = new SqlDataAdapter(model.qstring, model.ds))
{
da.Fill(table);
return table;
}
}
Код клиента:
DataTable dt = (DataTable)JsonConvert.DeserializeObject(records, (typeof(DataTable)));
foreach (DataRow dr in dt.Rows)
{
rowcount += 1;
for (int i = 1; i <= dt.Columns.Count; i++)
{
// on the first iteration we add the column headers
if (rowcount == 3)
{
osheet.Cells[2, i] = dt.Columns[i - 1].ColumnName;
}
// Filling the excel file
osheet.Cells[rowcount, i] = dr[i - 1].ToString();
}
}
Для сравнения, если я запрашиваю те же данные из Excel, используя SQL Connection, требуется 2- 3 секунды С кодом выше, это почти 11-14 секунд для конкретной таблицы.