请教一个调用OCIStmtFetch2比较慢的问题,每隔1000行卡死2分钟
SQL语句稍微有点复杂,类似于:
SQL语句在PL/SQL中执行是比较快的,用时3~5秒,返回大约1.5w行数据。
在C++程序中,执行非常慢,后来用日志跟踪,发现Fetch数据时每隔1000行左右就卡2分钟,第二个1000行卡2分钟+7~8秒,第三个1000行卡2分钟+7~8秒x2,以此类推。。。最后执行完需要40分钟。
如果注释掉With段中的递归部分(这个表有10w+数据),执行会稍微快一点,但依然不理想,用时大约10秒+。
如果直接执行SELECT * FROM TABLE2,返回10w+行数据也是在1,2秒内完成的。
另,TABLE2大表一共2,3个字段,每个字段上都有索引了。
可能是什么问题呢??
WITH MYTABLE AS
(
SELECT XXX FROM TABLE1
START WITH aaa IN (SELECT AAA FROM TABLE2)
CONNECT BY PRIOR aaa=bbb
UNION ALL
SELECT XXX FROM TABLE3
UNION ALL
SELECT XXX FROM TABLE4
)
SELECT F1, F2 FROM TABLE5
WHERE KEY IN (SELECT XXX FROM MYTABLE)SQL语句在PL/SQL中执行是比较快的,用时3~5秒,返回大约1.5w行数据。
在C++程序中,执行非常慢,后来用日志跟踪,发现Fetch数据时每隔1000行左右就卡2分钟,第二个1000行卡2分钟+7~8秒,第三个1000行卡2分钟+7~8秒x2,以此类推。。。最后执行完需要40分钟。
如果注释掉With段中的递归部分(这个表有10w+数据),执行会稍微快一点,但依然不理想,用时大约10秒+。
如果直接执行SELECT * FROM TABLE2,返回10w+行数据也是在1,2秒内完成的。
另,TABLE2大表一共2,3个字段,每个字段上都有索引了。
可能是什么问题呢??
...全文
相关推荐
解决python线程卡死的问题
今天小编就为大家分享一篇解决python线程卡死的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
eclipse卡死问题解决
eclipse卡死问题解决
autoCAD2010 更新 (解决autoCAD2010经常卡死问题)
刚安了autoCAD2010 画图时老是卡死,网上说改ie等方法太烦,没去试. 装了这个更新后就没在卡了,同时开两个也没问题。原来还以为是电脑配置差了。这个更新是官方发的。
解决python tkinter界面卡死的问题
今天小编就为大家分享一篇解决python tkinter界面卡死的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
如何在Unity中检测死循环和卡死
主要介绍了在Unity中检测死循环和卡死的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下


