Две таблицы A (25 тыс. Строк) и B (2,2 млн. Строк), используйте сеанс hibernate, загрузите все эти данные (каждая строка представляет один объект), затем обновите только одну строку в A и одну строку в B в транзакции, I обнаруженное поведение в спящем режиме выглядит странно: для фиксации требуется около 1,5 секунд. Однако журнал базы данных sql показывает, что команда sql update занимает всего несколько миллисекунд. hibernate потребляет большую часть времени до сброса команды sql в базу данных.
Поэтому я использую jprofiler, чтобы узнать, что он делает:
Нет никаких подсказок о том, как было потрачено время. Из-за того, что база данных выполняет команду обновления очень быстро, она не должна блокироваться базой данных. Если он выполняет вычисления, он должен быть записан jprofiler (процессор занимает много времени).
Что здесь спящий? Почему коммит такой медленный?