我的直觉是,将一个字符串(带有数组元素)字段设置为表上的索引将不利于性能(在表上执行的大部分操作是插入和更新 - 该表包含事务数据和它目前的大小约为20密耳记录。)
字符串扩展了一个包含4个数组元素的类型,其中并不总是填充它们。我需要证明为什么不将此字段设置为索引之一。我已经尝试寻找答案,阅读金伯利Tripps博客,在MSDN上进行最佳实践重新索引(其中只提到索引最好是数字,然后是字符串字段),等等。但是没有一个提到索引表上的字段这是一种数组类型。我可以给出什么理由来证明不对字符串数组字段进行索引。如果我的直觉完全错误并且索引在阵列字段上运行良好,为什么呢?
答案 0 :(得分:0)
备注或容器字段不能是AX中索引的一部分。
此外,由ntext,text或 image 数据类型组成的列不能指定为SQL Server中索引的列。
答案 1 :(得分:0)
假设您有一个扩展数据类型ArrElement
,其中包含3个额外的数组元素ArrElement2
,ArrElement3
,ArrElement4
。在AX中使用ArrElement
类型的字段创建索引将有效地在SQL Server中创建包含4个字段(ArrElement,ArrElement2,ArrElement3和ArrElement4 - 按此顺序)的索引。你不能改变索引中数组元素的顺序,但在我看来,如果它真的符合你的目的,那么拥有这样一个索引真的没有错。希望能回答你的问题。
答案 2 :(得分:0)
由于@ 10p注意添加说Dimension
作为唯一字段,将创建所有数组元素的索引:Dimension,Dimension2_,Dimension3_(这些是SQL表字段的名称)。
此类索引的值取决于执行的查询。如果仅查询Dimension[3]
,则索引无效,因为Dimension[1]
和Dimension[2]
未知。
这可以通过为每个数组元素创建索引来解决,例如:
可以使用索引字段上的组合框选择单个数组元素。
此类索引的值应根据增加的插入成本进行加权(如果更改了数组值,则更新)。