注册

sql查询大数据时报网络通信异常

Lic 2025/01/20 399 9

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8.1.1.193
【操作系统】:Windows
【CPU】:
【问题描述】*:在进行数据分页查询时报错,该表数据量在五千万以上,其他表分页查询时都是正常。接口大概在13s左右就会提示异常,单独在客户端执行不会有错误,查询时间在67s左右
数据库连接配置:

   type: com.alibaba.druid.pool.DruidDataSource
   driver-class-name: dm.jdbc.driver.DmDriver
   url: jdbc:dm://localhost:5236/SYSDBA?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8
   druid:
     initial-size: 5
     min-idle: 5
     max-active: 100
     # 配置获取连接等待超时的时间
     max-wait: 120000
     # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
     # 配置一个连接在池中最小生存的时间,单位是毫秒
     min-evictable-idle-time-millis: 300000
     validation-query: SELECT 1 FROM DUAL
     test-while-idle: true
     test-on-borrow: false
     test-on-return: false
     # 打开PSCache,并且指定每个连接上PSCache的大小
     pool-prepared-statements: true
     max-pool-prepared-statement-per-connection-size: 20
     # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
     filters: stat,slf4j,config
     # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
     #spring.datasource.druid.connect-properties.config.decrypt=true
     connect-properties:
       druid:
         stat:
           mergeSql: true
           slowSqlMillis: 12000


报错如下:

select
       a."ID",
       a."LEAVE_TIME",
       a."AREA_ID",
       a."TERMINAL_TYPE",
       a."USER_ID",
       b."USER_NAME"
       from "TXGL"."LOCATION_HISTORY" a
       left join "TXGL"."PERSON" b on a.USER_ID = b.ID
       where 1 = 1
        and a.USER_ID = ? 
       ORDER BY a."LEAVE_TIME" DESC
) TMP_PAGE) WHERE PAGEHELPER_ROW_ID <= ? AND PAGEHELPER_ROW_ID > ?

dm.jdbc.driver.DMException: 网络通信异常
   at dm.jdbc.driver.DBError.throwException(DBError.java:715)
   at dm.jdbc.a.a.a(DBAccess.java:842)
   at dm.jdbc.a.a.a(DBAccess.java:345)
   at dm.jdbc.a.a.a(DBAccess.java:462)
   at dm.jdbc.driver.DmdbPreparedStatement.executeInner(DmdbPreparedStatement.java:323)
   at dm.jdbc.driver.DmdbPreparedStatement.do_execute(DmdbPreparedStatement.java:406)
   at dm.jdbc.driver.DmdbPreparedStatement.execute(DmdbPreparedStatement.java:1824)
   at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)
   at com.alibaba.druid.filter.FilterAdapter.preparedStatement_execute(FilterAdapter.java:1063)
   at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)
   at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)
   at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)
   at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)
   at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)
   at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)
   at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)
   at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)
   at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)
   at sun.reflect.GeneratedMethodAccessor108.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:498)
   at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)
   at com.sun.proxy.$Proxy218.query(Unknown Source)
   at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doQuery(MybatisSimpleExecutor.java:69)
   at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
   at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
   at com.baomidou.mybatisplus.core.executor.MybatisCachingExecutor.query(MybatisCachingExecutor.java:165)
   at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:65)
   at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)
   at com.sun.proxy.$Proxy217.query(Unknown Source)
   at com.github.pagehelper.util.ExecutorUtil.pageQuery(ExecutorUtil.java:215)
   at com.github.pagehelper.PageInterceptor.intercept(PageInterceptor.java:147)
   at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)
   at com.sun.proxy.$Proxy217.query(Unknown Source)
   at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)
   at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)
   at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
   at sun.reflect.GeneratedMethodAccessor254.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:498)
   at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)
   at com.sun.proxy.$Proxy111.selectList(Unknown Source)
   at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)
   at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:173)
   at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:78)
   at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)
   at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)
   at com.sun.proxy.$Proxy151.getAllLocationHistoryDesc(Unknown Source)
   at com.wk.server.modular.service.impl.LocationHistoryServiceImpl.getAllLocationHistory(LocationHistoryServiceImpl.java:88)
   at com.wk.server.modular.service.impl.LocationHistoryServiceImpl$$FastClassBySpringCGLIB$$179851e9.invoke(<generated>)
   at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
   at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:684)
   at com.wk.server.modular.service.impl.LocationHistoryServiceImpl$$EnhancerBySpringCGLIB$$40afd4db.getAllLocationHistory(<generated>)
Caused by: java.net.SocketTimeoutException: Read timed out
   at java.net.SocketInputStream.socketRead0(Native Method)
   at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
   at java.net.SocketInputStream.read(SocketInputStream.java:171)
   at java.net.SocketInputStream.read(SocketInputStream.java:141)
   at dm.jdbc.a.a.c.a(ByteArrayNode.java:129)
   at dm.jdbc.a.a.a.a(Buffer.java:364)
   at dm.jdbc.a.a.d(DBAccess.java:910)
   at dm.jdbc.a.a.a(DBAccess.java:831)
   ... 120 more
回答 0
暂无回答
扫一扫
联系客服