请教一个调用OCIStmtFetch2比较慢的问题,每隔1000行卡死2分钟

莱昂纳多达芬奇 2015-05-14 09:39:22
SQL语句稍微有点复杂,类似于:
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个字段,每个字段上都有索引了。

可能是什么问题呢??
...全文
347 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
补充:其实2分钟+7~8秒xN的间隔不是非常规律,但是这个间隔基本上是递增的。
内容概要:本文针对四机并联孤岛微电网系统,提出了一种融合DoS(拒绝服务)攻击场景、二次控制、下垂控制与事件触发式负荷控制的协同控制策略,在Simulink环境中实现了电压与频率恢复及有功/无功功率共享分配的仿真验证。研究通过引入混合动态事件触发机制,有效降低控制器间的通信频率与网络负载,同时提升系统在面对间歇性通信中断或网络攻击时的鲁棒性与容错能力。控制架构采用分层设计,结合多智能体系统(MAS)的分布式协同思想,利用弹性二次控制补偿下垂控制带来的静态偏差,并在DoS攻击导致部分通信链路失效的情况下,保障微电网电能质量与运稳定性。整体方案体现了网络安全性与控制性能的深度融合,适用于高比例分布式能源接入场景下的智能微电网安全稳定运需求。; 适合人群:具备电力电子、自动控制理论与微电网运控制基础知识,熟悉Simulink/MATLAB仿真环境,从事分布式能源系统、智能电网安全控制、网络物理系统(CPS)等领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①研究微电网在遭受网络攻击(如DoS)时的动态响应特性与稳定性保持能力;②设计低通信开销、高鲁棒性的分布式协同控制策略;③实现孤岛微电网的电压频率精确恢复与功率均分控制;④验证事件触发机制在实际控制系统中的节能与抗干扰优势。; 阅读建议:建议结合提供的Simulink模型进仿真实验,重点分析事件触发阈值设置、DoS攻击周期与强度对系统性能的影响,深入理解二次控制与下垂控制之间的协调逻辑,并可进一步拓展至其他类型网络攻击(如重放攻击、虚假数据注入)的防御机制研究。

17,134

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧