光标在 db2 sql 字段上的第二个主键上选择嵌入位置值 - 无法确定长期设计的最有效方法



我有一个SQL DB2表,其中前两个字段是主键(不包括第三个字段,它是日期/时间戳(。该表由另一个团队设计,目的是使其通用。在第二个字段的键值被编码到表上时,我被带入了该项目。这让我想到了这一点:我们现在必须使用包含第一个主键的 WHERE 子句进行游标选择——然后对于第二个主键,它必须仅在位置 21 中的特定值为 8 个字节时才适用。(我们将始终知道第二个字段的值是多少。第二个字段是通用的 70 字节字段(字母数字(。我的问题是,我们应该对第二个主要字段条件的 WHERE 子句语句使用 LIKE 通配符,还是因为我们知道值的位置,所以应该使用 SUBSTR?我问是因为我已经做了一个解释,但我没有看到两者之间的区别(我的数据库分析师也没有(。这是 1300 字节长表的几百万条记录。但是,我担心的是表格上的数据量将在各种系统上增长。因此,性能可能会成为一个问题。现在很难衡量 LIKE 和 SUBSTR 之间的区别。但我想做我的尽职调查,并为长期业绩编码。如果有第三种选择,请告诉我。

SUBSTRLIKE之间的 CPU 差异很小。可能更重要的是解释中的过滤因子估计。您可能希望在此处使用表上的统计视图来帮助优化程序。在这种情况下,SUBSTR运算符会更好,因为您可以将其作为列包含在统计信息视图中。

或者,基于SUBSTR生成的列也将提供更好的统计信息,您也可以将该列包含在索引中。

相关内容

最新更新