Задача: написать программку считающую много разной статистики, примерно 50 000 запросов к базе данных в особо извращенной форме и выводящую их для просмотра в самой программе с помощью FlowDocumentReader в виде таблиц.
Конфигурация рабочей станции: Intel core i5 2.4 ГГц, 8 Гб RAM, SSD 256 Гб (свободно 60). Я использую MS SQLServer Express 2012, Windows 10 pro, сама программа на .net 4.5 WPF.
При формировании первой сотни запросов начались тормоза - на ssd результат запроса выполняется около 5 секунд (раньше было 1 секунда), думаю дальше будет хуже. Вот код формирования каждой строки:
// Строка 8.2
this.FormN.RowGroups[0].Rows.Add(new TableRow());
this.FormN.RowGroups[0].Rows[70].FontSize = 14;
this.FormN.RowGroups[0].Rows[70].Cells.Add(new TableCell(new Paragraph(new Run(""))));
this.FormN.RowGroups[0].Rows[70].Cells.Add(new TableCell(new Paragraph(new Run("8.2"))));
this.FormN.RowGroups[0].Rows[70].Cells.Add(new TableCell(new Paragraph(new Run("H16"))));
this.FormN.RowGroups[0].Rows[70].Cells.Add(new TableCell(new Paragraph(new Run(CF12.Str8_2_4()))));
this.FormN.RowGroups[0].Rows[70].Cells.Add(new TableCell(new Paragraph(new Run(CF12.Str8_2_5()))));
this.FormN.RowGroups[0].Rows[70].Cells.Add(new TableCell(new Paragraph(new Run(CF12.Str8_2_6()))));
this.FormN.RowGroups[0].Rows[70].Cells.Add(new TableCell(new Paragraph(new Run("8"))));
this.FormN.RowGroups[0].Rows[70].Cells.Add(new TableCell(new Paragraph(new Run("9"))));
this.FormN.RowGroups[0].Rows[70].Cells.Add(new TableCell(new Paragraph(new Run("10"))));
this.FormN.RowGroups[0].Rows[70].Cells.Add(new TableCell(new Paragraph(new Run("11"))));
this.FormN.RowGroups[0].Rows[70].Cells.Add(new TableCell(new Paragraph(new Run("14"))));
this.FormN.RowGroups[0].Rows[70].Cells.Add(new TableCell(new Paragraph(new Run("15"))));
this.FormN.RowGroups[0].Rows[70].Cells.Add(new TableCell(new Paragraph(new Run("16"))));
и то, ещё не все столбцы заполнены. Методы, возвращающие результат каждой ячейке, это sql запросы.
Как мне ускорить всю эту конструкцию? Может я неправильно формирую строки и есть более простой способ для отображения этой таблицы? Стоит ли делать асинхронные запросы или это не повлияет на работу? Это мой первый опыт серьёзного программирования.