# 转信创数据库后很多页面几十秒到一分钟才能打开
# 背景
正在给客户做A8升级转A8N信创,由非信创数据库迁移成PolarDB信创数据库,迁移后的A8N环境打开协同、公文各种页面都偏慢,尤其是公文列表页面要一分钟才能出数据。
# 分析过程
这种慢的问题,可以通过系统管理员-系统监控-底部ThreadDump抓取当前线程执行情况,通过Thread Dump可以确认慢的问题是:数据库查询。
"http-nio-0.0.0.0-8088-exec-43" Id=173 in RUNNABLE (running in native) 2025-11-26 09:38:06 / 37 seconds
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 com.mysql.cj.protocol.ReadAheadInputStream.fill(ReadAheadInputStream.java:107)
at com.mysql.cj.protocol.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:150)
at com.mysql.cj.protocol.ReadAheadInputStream.read(ReadAheadInputStream.java:180)
at java.io.FilterInputStream.read(FilterInputStream.java:133)
at com.mysql.cj.protocol.FullReadInputStream.readFully(FullReadInputStream.java:64)
at com.mysql.cj.protocol.a.SimplePacketReader.readHeaderLocal(SimplePacketReader.java:81)
at com.mysql.cj.protocol.a.SimplePacketReader.readHeader(SimplePacketReader.java:63)
at com.mysql.cj.protocol.a.SimplePacketReader.readHeader(SimplePacketReader.java:45)
at com.mysql.cj.protocol.a.TimeTrackingPacketReader.readHeader(TimeTrackingPacketReader.java:52)
at com.mysql.cj.protocol.a.TimeTrackingPacketReader.readHeader(TimeTrackingPacketReader.java:41)
at com.mysql.cj.protocol.a.MultiPacketReader.readHeader(MultiPacketReader.java:54)
at com.mysql.cj.protocol.a.MultiPacketReader.readHeader(MultiPacketReader.java:44)
at com.mysql.cj.protocol.a.NativeProtocol.readMessage(NativeProtocol.java:576)
at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:762)
at com.mysql.cj.protocol.a.NativeProtocol.sendCommand(NativeProtocol.java:701)
at com.mysql.cj.protocol.a.NativeProtocol.sendQueryPacket(NativeProtocol.java:1052)
at com.mysql.cj.NativeSession.execSQL(NativeSession.java:657)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:893)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeQuery(ClientPreparedStatement.java:972)
at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_executeQuery(FilterChainImpl.java:3241)
at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_executeQuery(FilterEventAdapter.java:459)
at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_executeQuery(FilterChainImpl.java:3238)
at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_executeQuery(FilterEventAdapter.java:459)
at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_executeQuery(FilterChainImpl.java:3238)
at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.executeQuery(PreparedStatementProxyImpl.java:175)
at com.alibaba.druid.pool.DruidPooledPreparedStatement.executeQuery(DruidPooledPreparedStatement.java:213)
at com.seeyon.ctp.ddn.proxy.DdnPreparedStatement.executeQuery(DdnPreparedStatement.java:47)
at com.seeyon.ctp.ddn.proxy.Bool2IntPreparedStatement.executeQuery(Bool2IntPreparedStatement.java:30)
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:57)
at org.hibernate.loader.Loader.getResultSet(Loader.java:2297)
at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2050)
at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2012)
at org.hibernate.loader.Loader.doQuery(Loader.java:948)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:349)
at org.hibernate.loader.Loader.doList(Loader.java:2843)
at org.hibernate.loader.Loader.doList(Loader.java:2825)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2657)
at org.hibernate.loader.Loader.list(Loader.java:2652)
at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:338)
at org.hibernate.internal.SessionImpl.listCustomQuery(SessionImpl.java:2141)
at org.hibernate.internal.AbstractSharedSessionContract.list(AbstractSharedSessionContract.java:1169)
at org.hibernate.query.internal.NativeQueryImpl.doList(NativeQueryImpl.java:176)
at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1604)
at com.seeyon.ctp.common.affair.dao.AffairDaoImpl$2.doInHibernate(AffairDaoImpl.java:3163)
at org.springframework.orm.hibernate3.SmartHibernateCallback.doInHibernate(SmartHibernateCallback.java:23)
at org.springframework.orm.hibernate3.SmartHibernateTemplate.doExecute(SmartHibernateTemplate.java:104)
at org.springframework.orm.hibernate3.CTPHibernateTemplate.execute(CTPHibernateTemplate.java:306)
at com.seeyon.ctp.common.dao.HibernateTemplate.execute(HibernateTemplate.java:89)
at com.seeyon.ctp.common.affair.dao.AffairDaoImpl.getDeduplicationAffairList(AffairDaoImpl.java:3140)
at com.seeyon.ctp.common.affair.dao.AffairDaoImpl$$FastClassBySpringCGLIB$$bbe51b40.invoke()

# 解决方案
查看项目上的数据库发现:项目是由非信创数据库迁移到信创的数据库MySQL模式,迁移数据库后主键和索引都没有迁移,导致系统缓慢。
解决方案:联系做迁移转库的厂商解决,补齐主键和索引后,问题修复。
编撰人:het