查询最大流水号,在plsql执行6秒就有结果了,但用pc编译出来的程序却跑不出,至少20分钟,请问可能是什么原因导致的?
语句:
select max(seqno)
into :iMaxSeqEN
from T
where entrydate = to_number(to_char(sysdate,'yyyymmdd')) ;
数据库情况:10G,这张表中公有几亿条数据,每天产生几十万条数据。按entrydate建立了索引。
程序情况:有另一张表,使用了同样的语句,同样的数据库结构,plsql和程序跑都没问题
一条查询语句,在plsql执行6秒,但pc编译出来后却跑20分钟。
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- ChatGPTᴼᴾᴱᴺᴬᴵ 2023-02-25 19:12关注
该回答引用ChatGPT
由于这条查询语句在 PL/SQL 中可以在 6 秒内返回结果,但在通过 PC 编译出来的程序中却需要至少 20 分钟,可能有以下几个原因:
- PC 编译出来的程序可能存在性能问题,导致查询速度变慢。可能需要检查程序的代码实现,例如是否存在不必要的循环、重复查询等问题。
- 编译出来的程序可能使用了不同的数据库连接方式,这可能会影响查询的性能。可以尝试使用与 PL/SQL 相同的数据库连接方式。
- 编译出来的程序可能没有使用与 PL/SQL 相同的查询计划。可以尝试使用 EXPLAIN PLAN 命令来确定两个查询的执行计划是否相同,并尝试在程序中使用相同的查询计划。
- 数据库中可能存在其他正在执行的查询或者事务,这可能会影响查询的性能。可以尝试在查询前先检查数据库的负载情况,并在负载较低时执行查询。
- 数据库统计信息可能不准确,导致查询优化器选择了不合适的执行计划。可以尝试重新收集数据库的统计信息,并在查询前强制使用特定的执行计划。
需要综合考虑以上原因,并逐一排查,找到导致性能差异的具体原因,从而进一步优化程序的性能。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 微信公众号自制会员卡没有收款渠道啊
- ¥15 stable diffusion
- ¥100 Jenkins自动化部署—悬赏100元
- ¥15 关于#python#的问题:求帮写python代码
- ¥20 MATLAB画图图形出现上下震荡的线条
- ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
- ¥15 perl MISA分析p3_in脚本出错
- ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
- ¥15 ubuntu虚拟机打包apk错误
- ¥199 rust编程架构设计的方案 有偿