Я хотел бы расширить ответы, приведенные здесь, потому что сегодня я попробовал многострочный метод вставки, чтобы повысить производительность в нашем приложении, и НЕ получил какого-либо заметного улучшения.
Я получил его с помощьюподход, аналогичный описанному выше для Рему, но вы, вероятно, хотели UNION ALL, иначе две идентичные строки не будут вставлены, поскольку UNION имеет неявное отличное значение, и мне, кажется, нужен внешний выбор, который был псевдонимом, в противном случае он не работал.Кроме того, когда вы объединяете, как упомянуто выше, вам нужна таблица from в Access, поэтому я следовал соглашению Oracle и создал таблицу с одной строкой под названием DUAL.
INSERT INTO [Students](P_Id,FirstName, LastName, class, city,Phone)
SELECT * FROM
(
SELECT 123 As P_ID, 'Avi' As FirstName, 'Davis' As LastName, 2 As Class,
'Tel-Mond' As City,'03-456789' As Phone FROM DUAL
UNION ALL
SELECT 456 As P_ID, 'FDA' As FirstName, 'RET' As LastName, 3 As Class,
'lima' As City,'03-456789' As Phone FROM DUAL
.
.
.
.
) as MyAlias
В моем примере я сделал его более простым и создал единыйтаблица столбцов с колонкой varchar (50).Я попытался сделать это с 1000 строками, и Access пожаловался на «запрос слишком сложный».Я должен был уменьшить его до 49 строк, чтобы успешно вставить.Это говорит о том, что вам нужно было бы объединить ваши вставки в более мелкие порции, чтобы Access мог их принять.
В результате не было никакого увеличения производительности.Это не стоит хлопот и требует логики пакетирования в коде, так что на самом деле для меня это означает, что я буду искать повышение производительности в других местах.