在编写 SPQuery 并指定 ViewFields 时,我遇到了一个奇怪的问题。我有八个需要的字段。其中五个已编入索引。
我的问题是,根据我指定这些 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 的顺序会产生如此大的影响?
谢谢。