查询最大流水号,在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 命令来确定两个查询的执行计划是否相同,并尝试在程序中使用相同的查询计划。
- 数据库中可能存在其他正在执行的查询或者事务,这可能会影响查询的性能。可以尝试在查询前先检查数据库的负载情况,并在负载较低时执行查询。
- 数据库统计信息可能不准确,导致查询优化器选择了不合适的执行计划。可以尝试重新收集数据库的统计信息,并在查询前强制使用特定的执行计划。
需要综合考虑以上原因,并逐一排查,找到导致性能差异的具体原因,从而进一步优化程序的性能。
解决 无用评论 打赏 举报
悬赏问题
- ¥30 STM32 INMP441无法读取数据
- ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
- ¥15 用visualstudio2022创建vue项目后无法启动
- ¥15 x趋于0时tanx-sinx极限可以拆开算吗
- ¥500 把面具戴到人脸上,请大家贡献智慧
- ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
- ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
- ¥30 c#打开word开启修订并实时显示批注
- ¥15 如何解决ldsc的这条报错/index error
- ¥15 VS2022+WDK驱动开发环境