Почему задержка от 30 до 40 секунд при первой загрузке из продуктового набора?

#asp.net #performance #gridview #dynamics-crm #early-binding

#asp.net #Производительность #просмотр сетки #dynamics-crm #раннее связывание

Вопрос:

Объект продукта Crm содержит 40 000 записей.

В CustomerPortal я просто выбираю все продукты и привязываю их к сетке.

Для выборки запроса и привязки кода похоже:

 var DataSource = from products in xrm.ProductSet
                             select new DTO_RequiredProductField()
                             {
                                 Id = products.Id.ToString(),
                                 Name = products.Name.ToString(),
                                 Price = products.Price.ToString()
                             };
gdvProduct.DataSource = DataSource;
gdvProduct.DataBind();
  

Это работает нормально, но только при первой загрузке загрузка занимает от 30 до 40 секунд (после этого та же страница загружается всего за 2 секунды).

Я не использовал сеанс / кэш и что-нибудь в этом роде.

Если я использую приведенный ниже запрос (принимая только 5 записей), то также происходит та же задержка:

 var DataSource = from products in xrm.ProductSet.Take(5)
                             select new DTO_RequiredProductField()
                             {
                                 Id = products.Id.ToString(),
                                 Name = products.Name.ToString(),
                                 Price = products.Price.ToString()
                             };
  

Почему задержка от 30 до 40 секунд при первой загрузке?

Ответ №1:

первый запрос в CRM часто выполняется медленнее, чем последующие.

Я предлагаю сделать WhoAmIRequest после создания IOrganizationService объекта, чтобы ваш запрос продукта не был выполнен как первый запрос.