Я пишу приложение в vb.net 2005. Приложение читает электронную таблицу в DataSet с ADO.NET и использует столбец этой таблицы для заполнения ListBox. Когда элемент ListBox выбран, пользователю будет представлена подробная информация о выбранной записи.Проблемы с огромными накладными расходами процессора
Одна часть этой информации отсутствует в DataSet. Мне нужно сравнить столбец из электронной таблицы с несколькими внешними источниками данных, чтобы определить характер рассматриваемой записи. Вот где у меня есть моя проблема.
Это сравнение должно выполнить поиск по 9,5-метровым строкам в таблице SQL на одном этапе. Я проверил, и нет никакого способа «уменьшить» запрос, поскольку я уже ищу абсолютно необходимые данные.
Что происходит, так это то, что приложение никогда явно ничего не делает. Использование ЦП достигает 100% независимо от того, что было раньше, и производительность системы становится почти невыносимо медленной.
Может кто-нибудь предложить способ, которым я могу улучшить эту ситуацию, пока этот массивный запрос запущен?
EDIT: Я изначально собирался записать содержимое строк 9.5m в таблице базы данных в текстовый файл, который я тогда читал, но после строк 6.5m я получил исключение OutOfMemoryException.
Не могли бы вы уточнить, когда именно загрузка ЦП достигает 100%, т.е. что ваш код делает, чтобы вызвать это? Профилирование может помочь. – EMP
Использование ЦП стремительно растет, когда приложение обращается к базе данных. Я установил его для выполнения SQL-запроса, отфильтрованного значением поля, которое я ищу. Если какие-либо результаты найдены, DataSet заполняется этими результатами, в противном случае DataSet остается Nothing. Здесь находится процессор. Я оставил его работать один или два раза, и в итоге он выдает исключение OutOfMemoryException. –