Выбор одного и того же объекта неуникальным столбцом в цикле происходит очень медленно - PullRequest
0 голосов
/ 12 ноября 2018

У меня очень маленькая таблица (10 строк) клиентов.

public class Customer
{
    /// <summary>
    /// auto-increment
    /// </summary>
    public virtual int ID { get; set; }

    public virtual string Name { get; set; }

    public virtual bool IsConfirmed { get; set; }
} 

Это мое беглое отображение NHibernate:

public class CustomerMapping : ClassMap<Customer>
{
    public CustomerMapping()
    {
        Table("CUSTOMERS");
        Id(a => a.ID, "ID").GeneratedBy.Increment();
        Map(a => a.Name, "NAME").Unique().Not.Nullable();
        Map(a => a.IsConfirmed, "IS_CONFIRMED").Nullable();
    }
}

Я запускаю эту строку кода пять раз в цикле:

session.QueryOver<Customer>().Where(a => a.Name == customerName).SingleOrDefault();

Производительность этого запроса почему-то ухудшается с каждым вызовом.

1 ... 129 ms
2 ... 21120 ms
3 ... 21105 ms
4 ... 21220 ms
5 ... 42006 ms

Почему это происходит? Почему первый звонок такой быстрый, а все остальные такие медленные? Что-то не так с кэшированием NHibernate?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...