Если я правильно читаю ваш вопрос, вы отправляете серверу PostgreSQL строку, которая выглядит примерно так:
INSERT INTO mytable (x, y, z) VALUES (1,2,3), (4,5,6), ...
Вместо этого вы должны сделать
- начать транзакцию
- подготовить оператор
INSERT INTO mytable (x, y, z) VALUES ($1, $2, $3)
- для каждой структуры в вашем списке, выполнить подготовленный оператор с соответствующими полями
- зафиксировать транзакцию
(Извините, нет кода, потому что я не знаю API БД C #.)
Я бы не потрудился выяснить COPY IN
, если описанный мной подход все еще слишком медленный.Я нервничаю, когда для вставки данных в базу данных требуются какие-либо текстовые манипуляции.