【发布时间】:2014-02-12 16:34:39
【问题描述】:
请帮我查一下sql,有什么问题吗?可以优化吗?执行需要很长时间,但并非总是如此。
SELECT count(*)
FROM DB2INST3.VWQueue1_119
WHERE inbasketName is not null
AND userid1 is not null
AND nItemIndex is not null
AND string1 is not null
AND (F_BoundUser = ? OR F_BoundUser = ? )
AND (F_Locked < 2)
AND ((inbasketName='PSIQUEUE1Index') AND (inbasketName='PSIQUEUE1Index'))
截图如下:
执行次数 = 12942 编译次数
= 1 最差准备时间 (ms) = 6 最佳准备时间 (ms) = 6 删除内部行 = 0 内部 插入的行 = 0 读取的行 = 1399262666 总执行时间 (sec.microsec)= 3600.704315 总计 用户 cpu 时间 (sec.microsec) = 2538.101110 总系统 cpu 时间 (sec.microsec)= 0.191321
【问题讨论】:
-
喜欢架构/表命名约定
-
这个语句看起来很简单,没有太多优化可以做(F_Bounduser 在那里两次?)。从您的表名来看,您正在从一个视图中进行选择……您的性能问题可能就在那里。 @MitchWheat - 图有一个 VWQueue1_001 到 VWQueue1_99999?
-
这是一张物理表。
标签: sql optimization db2