У нас есть приложение для одного сервера / базы данных, которое использует NHibernate и Castle ActiveRecord, за ним стоит SQL Server.
В рамках обработки мне нужно написать до 1,2 миллиона строк данных. Использование ActiveRecord и NHibernate очень медленно и нуждается в улучшении - это можно легко сделать с помощью «вставки в ... select .. from ..», вероятно, в хранимом процессе.
Что меня сдерживает, так это генерация удостоверений личности. Мы используем поколение HiLo. Если я напишу сохраненный процесс, чтобы сделать то, что мне нужно, я смогу получить следующий номер для использования из таблицы базы данных, выполнить вставку, а затем обновить таблицу. Проблема в том, что я не знаю:
Какие числа NHibernate в настоящее время кэшируется
Какие другие операции NHibernate делает
Лучшее, что я могу сделать (я думаю) - попросить NHibernate обновить свои кэшированные номера, когда я вернусь из сохраненного процесса, или вернуть последний использованный идентификатор из сохраненного процесса и обновить кэш HiLo, но я не могу найдите любые ссылки на это.
Есть идеи?