Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
对于 DB2...
table1.a 是 varchar(30) 并且上面有一个索引。table2.b 是 varchar(45) 并且有一个索引。
将table1.a = table2.b使用 table1、table2 或两者上的索引?
table1.a = table2.b
虽然它应该使用两个索引似乎很明显,但我问是因为我相信 sybase,这只会使用其中一个索引(我不确定是哪一个)。
我完全打算对此进行测试,但我目前无法。
根据我在 DB2 for Z 上的经验,它不会,因为数据类型必须相同 —— 列的数据类型、精度、规模和可空性必须匹配,连接才能使用它们。
在您的查询上使用 EXPLAIN 来确定它正在使用哪些索引。有关更多信息,请参阅此链接:
http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=/com.ibm.db2z10.doc.perf/db2z_captureexplaininfo.htm