在 z/os 上使用 DB2 10。我的问题是,如果在我的列和其他列的 col 连接上已经有另一个索引(非聚集),例如想要添加索引,那么在列上添加索引是否会产生添加索引的正常成本当 col4 上存在索引时到 col1,这是 col1 和 col2 的串联。
以防您对情况感到好奇。我们在从另一个数据库转换时创建了一些表,并且键位于组合字段上。为了模仿旧的键(因此不重写我们的整个系统),但将这些字段分开以便它们有用,我们有一个包含所有旧单独列的表和一些由触发器创建的键的新列(在插入时) 通过连接一些列,当它们不等于空格时,nb,并且这些新列被索引。
因此,例如,一个表具有 col1 (char)、col2 (char) 和 col3,并在插入时创建索引 col4 作为 col1 和 col2 的连接。
这样做是为了使 col4 匹配我们的旧数据库,例如,如果 col1 或 col2 为空白,则不存在。
好吧,缺点是这是作为一揽子规则完成的,并且在某些表上 col1 和 col2 永远不会是空白的。所以 col1, col2 上的索引将是相同的......实际上是首选,因为有时我们只想按 col1(而不是 w/col2)搜索......特别是在连接其他表时使用它。
那么......在那种情况下,db2 是否从几乎相同的非聚集索引中获得任何优势?