|
56 / 56 / 10
Регистрация: 27.12.2011
Сообщений: 141
|
||||||
.NET 2.x Можно ли оптимизировать функцию обработки большого количества строк04.03.2012, 01:21. Показов 1852. Ответов 7
Метки нет (Все метки)
Всем привет... нужна ваша помощь. Есть функция, ей передается строка запроса к базе данных, она возвращает результат выполнения данного запроса в виде массива строк. Если результат запроса до 25000 строк, функция работает вполне шустро, но при более большом объеме данных время, отрабатываемое функцией, возрастает в геометрической прогрессии. Так при 25000 функция отрабатывает за время до 10 сек, 60000 записей / около 3-х минут, мне необходимо работать с объемом данных в 250000, она справляется за 25-30 минут, очень медленно( Подскажите как можно ускорить функцию, может использовать списки List<string> вместо массива строк. У кого какие идеи?
Вот сам код функции:
0
|
||||||
| 04.03.2012, 01:21 | |
|
Ответы с готовыми решениями:
7
Ускорение добавления большого количества строк Автоматизировать и оптимизировать обработку большого количества данных помогите оптимизировать программу. Не проходит тест, из-за большого количества используемой памяти. |
|
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
|
|
| 04.03.2012, 01:44 | |
|
А что на выходе надо получить? while небось надолго уходит в прастрацию))) Над дополнительными потоками думал, чтобы если процессоров несколько он все занял?
0
|
|
|
56 / 56 / 10
Регистрация: 27.12.2011
Сообщений: 141
|
|
| 04.03.2012, 01:49 [ТС] | |
|
Возвращать должна то же самое, потоки не нужны думаю... мне кажется проблема в массивах temp1 и temp2... нужен другой метод сбора данных
0
|
|
|
87 / 85 / 10
Регистрация: 04.04.2011
Сообщений: 221
|
|
| 04.03.2012, 01:50 | |
|
Для чего нужно так много строк загружать?
В зависимости от задачи, есть разные решения: 1. можно сделать предварительную обработку на стороне сервера? 2. можно передавать в этот метод делегат на метод, обработчик результата, тогда не нужно делать массивов - ведь на каждой строке создавать новый массив это просто убийство процессорного времени 3. можно взять Лист, а можно массивы выделять сразу большими секторами (100, 1000 элементов), тогда не нужно будет на каждой строке результата создавать новый массив
0
|
|
|
56 / 56 / 10
Регистрация: 27.12.2011
Сообщений: 141
|
|
| 04.03.2012, 01:56 [ТС] | |
|
предварительная обработка на стороне сервера отпадает, так как это не серверная БД, базой данных является файл екселя.
Добавлено через 1 минуту shapod, насчёт делегата на метод неплохая идея, как-то неподумал... а вот третий меотд не могу понять что вы имеете ввиду... можете по подробней или пример небольшой? Добавлено через 2 минуты shapod, как вы считаете, по производительности Лист будет настолько быстр как и массив? или метод Add всетаки будет туговато работать?
0
|
|
|
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
|
|
| 04.03.2012, 01:56 | |
|
Думаю проблема в проходе циклом по всем элементам результата запроса? А смотрел сколько по времени запрос выполняется? А обязательно использовать строку для возвращения результата? Нельзя вернуть коллекцию Rows?
0
|
|
|
87 / 85 / 10
Регистрация: 04.04.2011
Сообщений: 221
|
|||||||
| 04.03.2012, 01:59 | |||||||
И тогда первые тысяча результатов не потребуют создания нового массива и переброса данных из одного массива в другой. Новый массив тоже делать сразу на +1000 элементов. Если число результатов не кратно 1000 элементов, то на выходе из метода еще раз создать новый массив с новым (правильным) размером и туда закинуть уже конечный результат. Для начала можно попробовать самый простой метод: заменить на List<string> - это самый простой для реализации. Может он и решит задачу по ускорению
1
|
|||||||
|
56 / 56 / 10
Регистрация: 27.12.2011
Сообщений: 141
|
|
| 04.03.2012, 02:00 [ТС] | |
|
ок... спасибо... попробую эти пару методов...
0
|
|
| 04.03.2012, 02:00 | |
|
Помогаю со студенческими работами здесь
8
Оптимизация обработки большого количества объектов Автоматизация обработки большого количества файлов Excel Алгоритм и структура для поиска большого количества строк в другом массиве строк Создать функцию для обработки символьных строк. За образец брать библиотечные функции обработки строк языка С, но не применять их в своей функции Нужен софт под свои нужды с возможностью обработки большого количества txt файлов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|