SPQuery を記述して ViewFields を指定すると、奇妙な問題が発生しました。必要な 8 つのフィールドがあります。そのうちの 5 つが索引付けされています。
私の問題は、これらの ViewFields を指定する順序に応じて、クエリのパフォーマンスが大幅に変化することです。
以下に 2 つのシナリオを示します。
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 秒かかります。2 番目の順序でクエリを実行すると、62 秒かかります。私がテストしたとき、クエリの変更は他にありません。
クエリは大量のデータを返しているため、非常に高速になるとは思いませんが、ViewFields の順序を変更すると大きな影響が生じる理由について誰か助けてもらえますか?
ありがとう。