Это делается с помощью Fluent NHibernateNHibernate занимает много времени для выполнения запроса
У меня есть поиск NHibernate, что извлечение данных из одной таблицы. Если я возьму сгенерированный sql и запустил его через анализатор запросов, для запуска потребуется ~ 18 мс.
Используя NHProfiler, я получаю продолжительность этого запроса как ~ 1800 мс - в 100 раз дольше, чем sql!
Query duration
- Database only:1800ms
- Total: 1806ms
Объект, который заселяется содержит класс ребенка, но этот ребенок загружается из кэша NHibernate уровня 2-я
Данные, которые возвращаются в выгружаемом (50 запроса), хотя, насколько как я могу сказать, это не должно иметь никакого значения.
У меня также есть счетчик, и снова это занимает ~ 4 мс в анализаторе запросов и ~ 1800 мс в соответствии с NHProfiler.
Является ли NH Profiler отображением запроса времени выполнения или полного времени для извлечения, сопоставить классы и построить граф объектов? И если это первый - почему он занимает гораздо больше времени, чем прямое выполнение запроса?
EDIT: Только что нашел этот пост Ayende о значении Длительности запроса приведен в NH Profiler: http://ayende.com/Blog/archive/2009/06/28/nh-prof-query-duration.aspx - так это, безусловно, запрос из базы данных, которая занимает много времени
Сколько времени занимает ADO.NET? –
Каково основное узкое место, когда вы просматриваете код с помощью профайлера, подобного муравьям или dottrace? – Paco
Использование ADO.NET занимает часть времени, которое делает NHibernate. На данный момент у меня нет никакого программного обеспечения для профилирования, поэтому я просто собираюсь разобраться и посмотреть, что он говорит. –