У меня есть DataTable с большим количеством строк (более ста миллионов), и я пишу приложение, которое необходимо вставить в эту таблицу.
Я буду использовать OleDbDataAdapter для этой работы, и я озадачен, каков наилучший способ сделать это. Мне нужно только вставить в эту огромную таблицу, однако я не хочу жестко кодировать оператор вставки в приложение.
Я подумал, что смогу использовать
OleDbDataAdapter adapter = new OleDbDataAdapter();
adapter.SelectCommand = new OleDbCommand("select * from table_name");
OleDbCommandBuilder cb = new OleDbCommandBuilder(adapter);
...
adapter.Fill(data_set_name, "Table_name");
Но это было бы действительно плохо , так как мне не нужны / не нужны данные, а использование памяти было бы ужасным. Мне было интересно, если бы я мог изменить SelectCommand с помощью TOP? Это будет выглядеть так:
adapter.SelectCommand = new OleDbCommand("select TOP 1 * from table_name");
Теперь команда Fill будет очень быстрой, и у меня будут данные, необходимые для всех будущих операторов вставки. Я мог бы добавить строки в datatable, а затем просто вызвать
adapter.Update(data_set_name, "Table_name");
Будет ли это работать? И это действительный / рекомендуемый способ сделать это? Очень важно, чтобы приложение работало быстро и использовало только необходимые ресурсы. Есть ли лучший способ сделать это?
Спасибо за ваш вклад!