这个问题开始发在了Java区, 后来听说比较接近数据库部分, 我也不是很懂, 请教下大神功能是这样:对数据库做查询并且遍历结果集,将取出的结果集写入一个文件里现在的问题是,遍历结果集的时候速度不稳定,有时候几十万条也只要不到1分钟,有时候几十条数据可能就需要五六分钟经过多次测试,发现取结果集的操作容易卡在某几条记录上,也就是说大部分过程都很流畅,但在某几个点会卡很久,至少也要四五秒,这样累计下来就大大影响了效率而且这种卡住跟数据是无关的,仅与结果集的第X条有关举个例子,一条SQL查询出的记录总数是1291条,在取结果集的时候很明显卡在了226条和1270条这两个地方
总共花费约10秒,这两个地方分别就花费了4-5秒
在删除卡住位置的记录之后,重试,仍然会卡在这两个地方功能实现是用JDBC实现的, 但用SQLPlus取结果集仍然出现同样情况, 表明不太可能是程序问题对数据库部分所知甚少, 暂时也找不到相关资料,请问有没有办法解决,或者解释下问题出现的原因?
总共花费约10秒,这两个地方分别就花费了4-5秒
在删除卡住位置的记录之后,重试,仍然会卡在这两个地方功能实现是用JDBC实现的, 但用SQLPlus取结果集仍然出现同样情况, 表明不太可能是程序问题对数据库部分所知甚少, 暂时也找不到相关资料,请问有没有办法解决,或者解释下问题出现的原因?
同一条SQL语句反复测试都是同样的问题,卡在同样的位置,不像是被锁住
SELECT
T7.LAST_NAME,
T3.LAST_NAME ZLAST_NAME,
T6.NAME,
DECODE(T7.SEX_MF, 'M', '男', 'F', '女', '99', '未知') SEX_MF
FROM
SIEBEL.CX_ZTZY_KZ_TBL T1,
SIEBEL.CX_QD_PMH T2,
SIEBEL.S_CONTACT T3,
SIEBEL.S_POSTN T4,
SIEBEL.S_PARTY_RPT_REL T5,
SIEBEL.S_ORG_EXT T6,
SIEBEL.ZH_KHZH_BPH_TBL T7
WHERE
T4.PR_EMP_ID = T3.ROW_ID (+) AND
T7.BU_ID = T6.ROW_ID (+) AND
T7.PR_POSTN_ID = T4.ROW_ID (+) AND
T1.QD_ID = T2.CHANNEL_ID AND
T1.ORG_ID = T5.SUB_PARTY_ID AND
T7.RES_ID = T1.RES_ID AND
(T5.PARTY_ID = '0-R9NH' AND T2.PCHANNEL_ID = '01')
2.bitmap看似建立的不合理,换成b-tree试试