Я столкнулся со странной проблемой при написании SPQuery и указании ViewFields. У меня есть восемь полей, которые мне нужны. Пять из них проиндексированы.
Моя проблема заключается в том, что в зависимости от порядка, в котором я указываю эти поля просмотра, производительность моего запроса резко меняется.
Вот два сценария:
1:
<FieldRef Name="OrderNumber" />
<FieldRef Name="Title" />
<FieldRef Name="OrderCreateDate" />
<FieldRef Name="OrderEstimatedDeliveryDate" />
<FieldRef Name="OrderStatus" />
<FieldRef Name="OrderOO" />
<FieldRef Name="OrderSiteID" />
<FieldRef Name="ID" />
2:
<FieldRef Name="OrderNumber" />
<FieldRef Name="Title" />
<FieldRef Name="OrderCreateDate" />
<FieldRef Name="OrderEstimatedDeliveryDate" />
<FieldRef Name="OrderSiteID" />
<FieldRef Name="OrderStatus" />
<FieldRef Name="OrderOO" />
<FieldRef Name="ID" />
Поля, которые индексируются:
OrderNumber
Title
OrderCreateDate
OrderSiteID
OrderStatus
При выполнении запроса с ViewFields в первом порядке это занимает 4,7 секунды. Выполнение запроса во втором порядке занимает 62 секунды. При тестировании ничего не изменилось в запросе.
Запрос возвращает большой объем данных, поэтому я не ожидаю, что он будет быстрым, но может ли кто-нибудь помочь понять, почему изменение порядка ViewFields имеет такое большое влияние?
Спасибо.