В настоящее время я изучаю веб-приложение ASP.NET MVC, которое, как сообщается, имеет низкую производительность под нагрузкой.(Но загрузка составляет всего несколько запросов в секунду).
Мы используем MySQL + NHibernate + Castle ActiveRecord для отображения.Сеанс NHibernate открывается в начале каждого сеанса и остается открытым для просмотра.
Я уже оптимизировал схему доступа к данным, чтобы избежать проблем с выбором N + 1, где это возможно.
Теперь что я 'Я думаю о том, что .. по каждому запросу транзакция базы данных открывается и фиксируется в конце.И в 99% наших запросов (действия MVC) никакие данные не должны быть записаны в базу данных.
- Возможно ли это, и видите ли вы преимущество в закрытии сеансов / транзакций ранее или даже отмечаете сеансы как прочитанные-only?
- Может ли блокировка базы данных стать узким местом, и если да, то можно ли явно избежать блокировки по крайней мере для транзакций только для чтения?