У меня есть таблица базы данных, содержащая документы RTF. Мне нужно извлечь эти программные средства (я знаю, что могу использовать курсор для перехода по таблице - мне нужно сделать некоторые манипуляции с данными). Я создал программу на C#, которая сделает это, но проблема в том, что она не может загрузить всю таблицу (около 2 миллионов строк) в память.Лучший способ опубликовать результаты в SqlCommand?
Это говорит о том, что в принципе два способа прокрутки данных.
- использовать метод
DataAdapter.Fill
для загрузки постранично - запустить запрос много раз, перебор с помощью первичного ключа. В основном вы запускаете его один раз с максимальным лимитом 500 (или любым другим) и PK> (последний PK)
Я пробовал вариант 2, и, похоже, он работает. Но могу ли я быть уверенным, что я возвращаю все данные? Когда я делаю SELECT COUNT (*) FROM Document
, он отбрасывает одинаковое количество строк. Тем не менее, я нервничаю. Любые советы по проверке данных?
И что быстрее? Запрос данных довольно медленный - я оптимизировал запрос как можно больше, но есть тонна данных для переноса по глобальной сети.
Что вы измерили, чтобы уделить больше времени? Манипуляция или передача? Вы должны попытаться загрузить материал в один поток, чтобы у вас всегда были свежие данные, чтобы манипулировать и потянуть их обратно в другой. –
http://www.codeproject.com/Articles/19058/A-Neat-Solution-to-GridView-Custom-Paging –
Еще одна мысль - какие манипуляции требуются?Может ли это и/или проверка правильности быть сделана на сервере до вытягивания данных через WAN? Таким образом, было бы меньше данных как (a) в пути & (b) в памяти. –