Мне нужно значительно улучшить время выполнения процесса, который в настоящее время выглядит так:
private Dictionary<int, SingleElement> elements_buffer;
// ... Create and load values into "elements_buffer"
// (string, Datetime, double)
string query = "INSERT INTO Tests.dbo.test_table "
+ "(element_name,element_init,element_width) VALUES";
SingleElement element_aux;
for (int i = 0; i < MAX_ELEMS_IN_DICT; i++)
{
element_aux = elements_buffer[i];
query = query
+ "('"
+ element_aux.name
+ "','"
+ element_aux.init
+ "',"
+ element_aux.width
+ ")";
if (i < MAX_ELEMS_IN_DICT+1) {
query = query + ",";
}
}
// ... Execute the query
Я собирался использовать Datatable
для новой версии, но я читал об использовании SqlBulkCopy
вместе с IDatareader
, как упоминалось в:
Производительность SqlBulkCopy
Мне кажется, что это лучший выбор для моего кода, но я не могу понять, как его кодировать, хотя я хотел бы его использовать.
Могу ли я помочь с переведенным кодом, пожалуйста?
заранее спасибо