此文章也是对问题 在不重建的情况下插入索引Inserting an index without reconstruction 的一种解释
在使用SQL语言对 InterSystems IRIS 中的表进行查询时,有时候会发现返回的结果与实际有出入,特别是使用count() 函数,或者select 查询时,返回的结果少于实际应返回的值。
这种情况往往是由于数据表格的索引值出了问题。
索引出问题的主要原因可能是:
- 表中先有数据,后创建的索引定义,并且定义之后没有重新生成索引。
- 对保存数据的global直接操作。如果是使用对象或者sql的方式操作数据,相应的索引都会自动更新,但是如果直接对global操作,则不会自动更新索引。
- 对保存索引的global直接操作。
要解决或者要检查是不是索引引发的问题,可以使用%ValidateIndices()函数,它有两种方式使用