0

我的直觉是,将字符串(带有数组元素)字段设置为表上的索引将不利于性能(在表上完成的大部分操作是插入和更新 - 表保存事务数据及其当前大小大约有 2000 万条记录)。

该字符串扩展了具有 4 个数组元素的类型,但并不总是填充所有这些元素。我需要证明为什么不将此字段设置为索引之一。我尝试过寻找答案,阅读 Kimberley Tripps 博客,浏览 MSDN 上的最佳实践重新索引(仅提到索引最好首先在数字上,然后是字符串字段)等等。但这些都没有提到在字段上索引表那是一个数组类型。我可以给出什么理由来证明不对字符串数组字段进行索引。如果我的直觉完全错误并且索引在数组字段上运行良好,为什么会这样?

4

3 回答 3

0

正如@10p 所指出的,添加 sayDimension作为唯一字段,将创建所有数组元素的索引:Dimension、Dimension2_、Dimension3_(它们是 SQL 表字段的名称)。

这种索引的值将取决于执行的查询。如果仅Dimension[3]查询,则索引没有价值,因为Dimension[1]并且Dimension[2]不知道。

这可以通过为每个数组元素创建索引来解决,例如:

  • Dim1Idx:Dimension[1] (可能附加更多字段)
  • Dim2Idx:Dimension[2] (可能附加更多字段)
  • Dim3Idx: Dimension[3] (可能追加更多字段)

可以使用索引字段上的组合框选择单个数组元素。

此类索引的值应根据增加的插入成本(和更新,如果数组值更改)进行加权。

于 2011-07-28T08:08:33.487 回答
0

备注或容器字段不能成为 AX 中索引的一部分。

此外,不能将由 ntext、text 或image数据类型组成的列指定为 SQL Server 中索引的列。

于 2011-04-11T10:21:49.487 回答
0

假设您有一个扩展数据类型ArrElement,其中包含 3 个额外的数组元素ArrElement2ArrElement3ArrElement4。在 AX 中创建具有类型字段的ArrElement索引将有效地在 SQL Server 中创建具有 4 个字段(ArrElement、ArrElement2、ArrElement3 和 ArrElement4 - 按此顺序)的索引。您无法更改索引中数组元素的顺序,但在我看来,如果它真的符合您的目的,那么拥有这样的索引确实没有错。希望这能回答你的问题。

于 2011-04-11T11:35:12.870 回答