Мы обнаружили, что вставки на наших серверах очень медленные (более 40 секунд), но когда мы используем одну и ту же БД с одинаковым сценарием вставки на наших локальных компьютерах, это происходит практически мгновенно.
Наши серверы размещены в Microsoft Azure, но мы также пробовали его на сервере в нашем здании, и он также работает медленно
Скрипт вставки занимает всего около 5000 вставок, но занимает на серверах более 40 секунд. Это происходит во всех таблицах, но в той, которую мы тестируем, есть 2 столбца, без ключей, без ограничений, без триггеров и без индексов.
Как показано здесь скрипт вставки занял 43 секунды на нашем сервере, но на наших локальных машинах это занимает всего 1 секунду. Хотя индексы поднимаются до 7761, на самом деле это чуть меньше 5000 операторов INSERT INTO.
Это приводит к значительному замедлению работы некоторых наших клиентов, и во многих случаях мы добавляем более 10000 записей, поэтому загрузка страницы занимает у них 1-2 минуты.
Я пробовал разные версии сервера SQL и 3 разных сервера (2 в Windows 2012, 1 в Windows 2016). Запуск сценария вставки на нашем компьютере с другого компьютера все еще имеет скорость вставки ~ 1.
Я подумал, что это могло быть из-за того, что на наших компьютерах есть SSD, а на серверах - HDD, но я установил его на ноутбуке с жестким диском, у которого все еще было время вставки ~ 1 секунда.
Я не совсем уверен, что еще нужно искать, единственное отличие, которое я вижу, это то, что серверы работают под управлением Windows 2012/2016, но все наши компьютеры работают на Windows 10.
Что еще может быть причиной этого, так как я считаю маловероятным, что версия для Windows вызывает это. Похоже, что на серверах SQL есть некоторые параметры, которые вызывают медленную вставку.
EDIT:
Причиной проблемы является низкая скорость диска на серверах. Они способны на гораздо большее, но по какой-то причине их максимальная скорость составляет около 1 МБ / с, в то время как наши компьютеры получают около 30 МБ / с при выполнении запроса на вставку.
Я обнаружил, что могу вставить вставки в транзакцию, и это решит проблему. Все еще не уверены, почему скорость диска такая низкая.