首页 > 编程知识 正文

java delayqueue,oracle 执行存储过程

时间:2023-05-04 20:25:16 阅读:114715 作者:3466

grails APP应用程序访问数据时发生了奇怪的问题。 有关详细信息,请使用prepared statement.executequeryvsstatement.execute query将问题分离为常规java8小程序。

研究以下片段。

//executes in milliseconds

DirectSQL='selecttop(10 ) * fromvdocumentswherecodcli=' cccc ' andserial=' SSS ' orderbyotherfielddesc;' ;

stmt=con.createStatement (;

RS=stmt.executequery(DirectSQL );

//More than 10 minutes

SQLprepared='selecttop(10 ) *来自vdocuments where cod CLI=? and serial=? ORDER BY otherField DESC;' ;

preparedstatementpstatement=con.preparestatement (SQL prepared;

pstatement.setstring(1,' CCCC ';

pstatement.setstring(2,' SSSS ';

RS prepared=p statement.execute query (;

同一查询。

数据来自于具有1,500多万条记录的SQLserver(2008年,我认为当前无法访问)的视图。 所有必需的字段都有索引,从控制台执行的同一查询(第一个查询)也非常快。

如果在没有ORDER子句的情况下运行速度较慢的预定义语句查询,则会运行得很快。

无论出于什么原因,我都清楚数据库在使用保留语句时没有使用索引进行完全扫描,但这可能是错误的,所以我对任何想法都持开放态度

我想驱动程序(sqlserver官方最新和jtds已经过测试)有数据,正在等待什么类型的EOF连接,但tcpdump检查是否在这里收到数据。

因为找不到为什么会这样,所以任何想法都很受欢迎。

先谢谢你!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。