Я пишу приложение, которое считывает всю таблицу, выполняет некоторую обработку, а затем записывает полученные данные в другую таблицу. Я использую класс SqlBulkCopy
(версия .NET для «bcp in»), который выполняет вставку очень быстро. Но я не могу найти какой-либо эффективный способ выбора данных в первую очередь. нет .net эквивалента "bcp out", что мне кажется странным.
В настоящее время я использую select * from table_name
. Предположительно, для выбора 6000 строк требуется 2,5 секунды ... и всего 600 мс для массовой вставки того же количества строк.
Я ожидал, что выбор данных всегда должен быть быстрее, чем вставка. Каков самый быстрый способ выбрать все строки и столбцы из таблицы?
Ответы на вопросы:
Вот мой код:
DataTable staging = new DataTable();
using (SqlConnection dwConn = (SqlConnection)SqlConnectionManager.Instance.GetDefaultConnection())
{
dwConn.Open();
SqlCommand cmd = dwConn.CreateCommand();
cmd.CommandText = "select * from staging_table";
SqlDataReader reader = cmd.ExecuteReader();
staging.Load(reader);
}