Доброе утро.
У меня есть служба, которую я пишу на C #, которая выполняет и вставляет одну строку каждые 15 секунд или около того. Этот интервал определяется пользователем, но в настоящий момент 15 секунд - это целевой интервал.
Я прочитал эту статью: SqlBulkCopy на одной записи? который четко объясняет преимущества пропускной способности использования обычной вставки при выполнении вставки в одну строку. Но он также упоминает (или подразумевает), что регулярная вставка немного тяжелее на CPU, чем объемная вставка.
Поскольку служба, которую я пишу, является службой поддержки, а поскольку вставка искусственно ограничена только 1 в заданный интервал, мне интересно, является ли приведенная выше экспликация обоснованием использования SqlBulkCopy над регулярной вставкой. Очевидно, я хочу, чтобы мое обслуживание было максимально легким.
Ответ в вашей статье говорит о том, что SqlBulkCopy в 4,4 раза медленнее и использует двойной процессор простой команды SQL. Вы неправильно читаете ответ (или я это сделал), он утверждает, что SqlBulkCopy более тяжел на процессоре, чем обычная вставка, что имеет больше смысла.
Ответ прост: придерживайтесь команды SQL, если вы на 100% уверены, что нужно вставить только одну запись.
Даже моя библиотека C # Bulk Operations не использует SqlBulkCopy, пока не достигнет определенного количества строк, которое обычно равно десяти, потому что SqlBulkCopy слишком тяжелый.