Spring JDBCTemplate执行oracle更新查询需要很长时间

时间:2016-09-08 05:23:01

标签: java sql spring oracle jdbctemplate

我执行ORACLE更新查询,更新单个表的16列。当我在我的sql开发人员上执行查询时。它执行得非常快,我收到了消息

  

任务在0.003秒内完成

然而,当我使用jdbc模板执行相同的查询时,需要7-8秒才能执行。以下是我的java代码。

long invFileInfoUpdateStartTime = System.currentTimeMillis();
String updateSql = "UPDATE DB_REPO.INV_INFO SET FILE_STATUS = ?,FILE_TYPE = ?,FILE_SYSTEM_NAME=?,FILE_DOC_NO=?, FILE_PAGES=?,FILE_EST_CHARS_PER_PAGE=?, FILE_TOTAL_CHARS=?, FILE_COMMENTS=?, FILE_UPDATED_BY=?, FILE_LAST_UPDT_DT= SYSDATE , FILE_USER_ID=?, FILE_STAMP_DT=TO_DATE(?, 'MM-dd-yyyy'), FILE_DUMP_DT=TO_DATE(?, 'MM-dd-yyyy'), FILE_CODE=?, FILE_Z_CODE=?,IS_RELATED_FILE=?,FILE_ONLINE_STATUS=?,FILE_SOURCE_TYPE=?,FILE_PUB_STATUS=?,FILE_UPDATE_STATUS=? WHERE FILE_INODE=?";
jdbcTemplate.update(updateSql,fileStatus,fileType,systemName,docNumber,numberOfPages,estimatedCharsPage,estimatedCharactersPerFile,comments,lastUpdatedBy,userId,stampDate,dumpDate,code,ZCode,isRelatedFILE,onlineFile,sourceType,documentPublicationStatus,status,fileInode);
long invFileInfoUpdateEndTime = System.currentTimeMillis();
iSmLog.info("Total time taken by the  update : " + (invFileInfoUpdateEndTime - invFileInfoUpdateStartTime)  + "milli-seconds");

以下是我的日志:

  

更新所需的总时间:8799milli-seconds

时间差距很大。为什么执行这么久?我该怎么做才能优化此查询的效果?

修改

以下是使用applicationContext-framework.xml

创建数据库连接的方法
<bean id="webLogicXADataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="#[csa.db.driver]" />
        <property name="url" value="#[csa.db.url]" />
        <property name="username" value="#[csa.db.usernameInvoice]" />
        <property name="password" value="#[csa.db.passwordInvoice]" />
</bean>

APPLOGS:

enter image description here

附上截图。我的方法包含12个dml语句(插入更新删除)。只有提到的查询(屏幕截图中的第2个)执行时间太长

0 个答案:

没有答案