Я хочу вставить n записей в одну таблицу. Может быть много одновременных пользователей, и они могут вставлять/обновлять/выбирать данные из этой таблицы. Что лучше вставить в такую таблицу, скажем 1000 записей:Производительность запроса вставки Sql
- Отправить один запрос sql к базе данных с несколькими вставками. Это экономит сервер на вызовы базы данных, но (я не уверен) блокирует таблицу до тех пор, пока вставка не будет завершена, и все остальные запросы к этой таблице будут ждать.
- Разделите 1000 записей в некоторых кусках и отправьте их в несколько запросов sql. Это позволяет выполнять другие запросы в таблице, но тратит время на вызовы сервера на базу.
Это зависит от чего-то, или существует единственный способ, который всегда является оптимальным? Это зависит от того, используются ли транзакции или нет, при вставке данных? Есть ли еще лучшие способы выполнения такой вставки?
База данных, которую я использую, - это MS SQL, но интересно, как она работает в других БД, таких как Oracle.
интересный пост в блоге +1. Меня интересует, что транзакции _reason_ появляются быстрее в вашем тесте. Я подозреваю, что это связано с тем, что многие из необходимых замков уже были сделаны с помощью предыдущих проходов. Однако одна важная вещь, что ваш пост не касается, - это поведение под нагрузкой. Ваши тесты кажутся изолированными; в живой системе я подозреваю, что результаты будут инвертироваться довольно быстро. – EBarr