o0TT0o 2013-10-08 15:11 采纳率: 0%
浏览 1231

一条查询语句,在plsql执行6秒,但pc编译出来后却跑20分钟。

查询最大流水号,在plsql执行6秒就有结果了,但用pc编译出来的程序却跑不出,至少20分钟,请问可能是什么原因导致的?
语句:
select max(seqno)
into :iMaxSeqEN
from T
where entrydate = to_number(to_char(sysdate,'yyyymmdd')) ;
数据库情况:10G,这张表中公有几亿条数据,每天产生几十万条数据。按entrydate建立了索引。
程序情况:有另一张表,使用了同样的语句,同样的数据库结构,plsql和程序跑都没问题

  • 写回答

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驱动开发环境