起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 208|回复: 5

执行语句超时的问题

[复制链接]
发表于 2009-12-31 11:33:00 | 显示全部楼层 |阅读模式
系统执行一个update的sql,等待大约1分钟后总是报超时(但是用sql developer执行时用时很短不到1秒钟),其实后台已经执行了这个语句,等待几分钟后查询数据库,数据已经改了,我用的是TQuery
回复

使用道具 举报

发表于 2009-12-31 11:59:01 | 显示全部楼层
你的意思是说使用开发工具就1秒钟更新语句就执行完了,而客户端同样操作就报告超时?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-31 12:38:04 | 显示全部楼层
是用客户端时间长,pl/sql developer是针对oracle的一个工具,用这个执行要执行的语句 速度很快的不会超过1秒
回复 支持 反对

使用道具 举报

发表于 2009-12-31 13:09:42 | 显示全部楼层
在代码中跟踪一下是query.execute;执行速度慢么?
你的plsql是在应用服务器上执行的吧?你直接在应用服务器上执行一下这个客户端看看效果呢?
另外把代码贴出来看看
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-5 09:54:29 | 显示全部楼层
sorry,两天不在,回复晚了
跟踪query.execute,就是此句报错
代码就是执行一个update语句
with QueryBack do
    begin
      CommandText:=Format('update table_runtimedata r set '
          +'r.fstate = 1 '
          +'where r.fdatetime >= add_months(to_date(''%s'',''yyyy-mm-dd''),1) '
          +'and r.fdatetime <= add_months(to_date(''%s'',''yyyy-mm-dd''),1) '
          +'and r.ftargetcode in '
               +'(select t.ftargetcode '
                  +'from table_target t, table_commoncode report '
                  +'where 1 = 1 '
                   +'and instr(report.Fcustom4 ,t.FBIZTYPECODE)>0 '
                   +'and t.fstatinternalcode = ''M'' '
                   +'and instr(report.fcustom7, '''''''' || t.ftargetdefcode || '''''''', 1, 1) > 0 '
                   +'and t.fentitycode in (%s) '
                   +'and report.fcode = ''%s'' '
                   +'and report.fparentid = ''02010502'')',
                   [AYear+'-'+ABeginMonth+'-1',
                    AYear+'-'+AEndMonth+'-1',
                    TINFOINPUTREPORT(InfoBroker).GetRptEntityFilter(AReportType,AEntityCode),
                    AReportType]);
      Execute;
    end;
回复 支持 反对

使用道具 举报

发表于 2010-1-5 12:13:54 | 显示全部楼层
楼主把这个sql条件部分不变,前面换成一个查询语句速度快么?

其实像这种sql可以写成存储过程放到服务端去执行。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-12 17:25 , Processed in 0.048187 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表