1

对于 DB2...

table1.a 是 varchar(30) 并且上面有一个索引。table2.b 是 varchar(45) 并且有一个索引。

table1.a = table2.b使用 table1、table2 或两者上的索引?

虽然它应该使用两个索引似乎很明显,但我问是因为我相信 sybase,这只会使用其中一个索引(我不确定是哪一个)。

我完全打算对此进行测试,但我目前无法。

4

2 回答 2

1

根据我在 DB2 for Z 上的经验,它不会,因为数据类型必须相同 —— 列的数据类型、精度、规模和可空性必须匹配,连接才能使用它们。

于 2010-02-15T06:15:00.487 回答
1

在您的查询上使用 EXPLAIN 来确定它正在使用哪些索引。有关更多信息,请参阅此链接:

http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=/com.ibm.db2z10.doc.perf/db2z_captureexplaininfo.htm

于 2010-11-11T17:55:37.757 回答