我在DB2中使用java创建了临时表,然后插入了相同的2000行。 现在我在一个只有少量连接的选择查询中使用此表。该查询涉及其他3个表,如A,B和C.不知何故,这个选择查询返回结果非常慢,几乎需要20秒才能提供结果。
以下是此查询的详细信息
问题出在哪里?请在这里告诉我一些建议。
答案 0 :(得分:0)
一些建议(我假设LUW,因为你没有提到平台)
a)你说你的会话表的每一列都有索引,我认为这意味着一组1列索引。在大多数情况下,这可能不是最佳的,您可以用复合索引替换它们。通过创建一个真实的表来检查顾问建议:
创建表temp.t(...) 插入temp.t(...)值(...) temp.t上的runstats分发
然后运行:db2advis -d -m I -s"您的查询但是使用temp.t而不是会话表"
b)加载数据后 - 最终 - 创建新索引,在会话表上执行runstats