影响性能的SPQuery中的ViewField顺序



我在编写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的顺序会产生如此大的影响吗?

谢谢。

我的猜测可能是因为SharePoint数据库(即AllItems表)的性质,它实际上正在执行多个联接,以便"构建"列表的列。

所以我想这应该真的取决于你列表中的数据分布(加入{small x small x big}或{big x small×small}表)

例如,在具有以下数据分布的LIST中,sharepoint按照BAC的顺序显示数据比ABC 需要更多的时间

列出

   A   B   C
---------------
|    | K1 |    |
| N1 |----|    |
|    | K2 |    |
|----|----|    |
|    |    |    |
|    | K1 | Z1 |
| N2 |    |    |
|    |----|    |
|    | K2 |    |
|    |----|    |
|    | K3 |    |
|----|----|    |

相关内容

  • 没有找到相关文章

最新更新