关于db2查询超时的问题,请大家帮忙看看问题在哪。

qtm 发布于 2011/05/19 12:01
阅读 696
收藏 1

我们系统有这样一个查询语句,奇怪的是以身份证号查询的时候(第二个参数)正常,但是以职工姓名(第一个参数)查询的时候报超时错误,我把语句直接在数据库运行都正常,请大家帮忙看看怎么回事呢,下面是查询语句的代码:

s = "select  a.e001,a.e002,a.e003,a.e009_,a.e007,a.e007_ ,a.e216,b.g221

from gzdkk a,bm_dydb b

where a.g000=b.g000

and a.e002 like ?

and a.e003 like ?

and a.e007_ like ?

and b.g221 like ?

and a.e117=''";

//如下代码是用来为sql传参的

spx = new SqlParameterExt();

spx.add(new StringValue(zgxm)); // p1 职工姓名

spx.add(new StringValue(sfzh)); // p2 身份证号

spx.add(new StringValue(lpmc)); // p3 楼盘名称

spx.add(new StringValue(txqzbm));//  p4 他项权证编号

以下是错误信息(weblogic):

 

<2011-5-19 上午11时50分23秒 CST> <Warning> <WebLogicServer> <BEA-000337> <ExecuteThread:

 '14' for queue: 'weblogic.kernel.Default' has been busy for "1,569" seconds working on

the request "Http Request: /ncdk/share/bzjsqhcx_nc_list.jsp", which is more than the con

figured time (StuckThreadMaxTime) of "600" seconds.>

加载中
0
红薯
红薯

是因为数据量大,查询缓慢吧? 没建好索引,并保证这些索引生效吧?

0
qtm
qtm

引用来自#2楼“红薯”的帖子

是因为数据量大,查询缓慢吧? 没建好索引,并保证这些索引生效吧?

应该不是这个原因,数据量没超过10万,而且我在数据库中执行查询都很快的。

0
红薯
红薯

你把你程序里那个查询放到数据库去执行一下看看ne ?

要一模一样的条件哦

0
qtm
qtm

引用来自#4楼“红薯”的帖子

你把你程序里那个查询放到数据库去执行一下看看ne ?

要一模一样的条件哦

完全一样,下面是我们系统后台输出的日志,我直接粘贴到数据库中执行,速度很快;

[INFO ] 11:46:31.921 SQL=[select  a.e001,a.e002,a.e003,a.e009_,a.e007,a.e007_ ,a.e216,b.

g221 from gzdkk a,bm_dydb b where a.g000=b.g000 and a.e002 like ? and a.e003 like ? and

a.e007_ like ? and b.g221 like ? and a.e117='']

[INFO ] 11:46:31.921 parameter 1=[123%]

[INFO ] 11:46:31.921 parameter 2=[%]

[INFO ] 11:46:31.921 parameter 3=[%%]

[INFO ] 11:46:31.921 parameter 4=[%%] 
0
红薯
红薯

那不知道了,不会是 weblogic 所在的机器无法连上 oracle 或者连接很慢吧

0
qtm
qtm

引用来自#6楼“红薯”的帖子

那不知道了,不会是 weblogic 所在的机器无法连上 oracle 或者连接很慢吧

哎,我很抑郁啊,问题是在前台输入身份证号很快就查出来了,输入姓名就超时了,如果weblogic连接不上db2的话,输入身份证号也应该超时啊,谢谢老大啦。。。

返回顶部
顶部