视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
性能问题解决案例01sybase数据库内存问题
2020-11-09 15:03:42 责编:小采
文档


最近现场反馈问题,所有电子签章页面打不开文书(pdf式),后台日志没报任何错误,效果就是空白: 1、首先想到是签章的ocx控件问题,检查ocx控件安装,发现其他电脑也打不开文书,测试页面可以直接打开pdf文档,排除控件的问题。 vcD4KPHA+CiAgICAyoaK7s9LJy

最近现场反馈问题,所有电子签章页面打不开文书(pdf格式),后台日志没报任何错误,效果就是空白:

1、首先想到是签章的ocx控件问题,检查ocx控件安装,发现其他电脑也打不开文书,测试页面可以直接打开pdf文档,排除控件的问题。<喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+CiAgICAyoaK7s9LJysfOxMrpz8LU2LP2zsrM4sHLo6y87LLpzsTK6c/C1Ni5psTco6zO0sPHysew0XBkZs7EyunPwtTYtb2xvrXYobDO0rXEzsS1taGxxL/CvNbQo6zIu7rzyrnTw29jeL/YvP608r+qzsTK6aOsvOyy6beiz9bT0LXEzsTK6cTc1f2zo8/C1Ni1vbG+tdijrNPQtcS4ybTgsrvPwtTYo6zE3M/C1Ni1vbG+tdi1xM7Eyum/ydLU1f2zo7Tyv6qho7zssulmdHC3os/WzsTK6ba8w7vOyszio6y2qM67zsrM4r7Ns/bU2rTTZnRwz8LU2NXiv+mhozwvcD4KPHA+CiAgICAzoaJmdHDPwtTY09Aysr2jrM/IyKXK/b7dv+LW0LLp0a+1vWNjYmijrNTZuPm+3WNjYmi002Z0cM/C1NijrLzssum3os/Wz8LU2MO7zsrM4qOssunRr2NjYmi3x7Ojwv2jrNfuv+zSstKqNTBzssXE3LLp0a+z9sC0o6zC/bXE0qo0oaI1t9bW06Os09DEzdDEtcS7sKOstci0/by4t9bW06OszsTK6crHv8nS1NW5yr6jrNLRvq22qM67tb3Oyszi1K3S8sHLo6yy6dGvY2NiaLXEc3Fs1rTQ0LfHs6PC/aGjPC9wPgo8cD4KICAgIDShorfWzvZzcWyjrLzyu6+683NxbM6qo7o8L3A+CjxwPgo8L3A+CjxwcmUgY2xhc3M9"brush:sql;">SELECT * FROM T_ZXLD_SYYH_FJ WHERE C_BH_SQ='76A1737D773BE344B7154AA479634FED' AND C_FJLX='syyhcx.zz.cxs.gy'

查询条件中C_BH_SQ是有索引的,理论上不应该这么慢呀,查看执行计划发现:


竟然没有用到索引,执行时间是274s。有索引却没用到,而且C_BH_SQ这个字段是主表主键,被选中概率应该非常高,怀疑是统计信息出问题了,使用

UPDATE all STATISTICS T_ZXLD_SYYH_FJ

更新统计信息,更新后执行原始sql,用了0.12s,执行计划也显示出使用了索引


问题看似解决了,但是偶尔还会出现打开非常慢(快的10s左右,慢的几分钟)的情况,怎么回事呢?检查过程中发现不仅仅这个页面偶尔慢,很多页面都偶尔非常慢,第一次打开慢,后续就很快了,等一会再打开又慢了。

查看p6spy日志发现(深颜色列是sql执行时间,只记录了执行2s以上的sql),把执行时间长的sql拿出来单独执行,很多第一次执行几十秒,第二次执行不到1s,可以确定问题原因了,系统内存较小。


sybase数据可以使用下面命令查看io情况:SET STATISTICS io ON"OFF


第一次执行结果:


第二次执行结果:

可以看到第一次从磁盘和内存都读取了内容,第二次physical reads是0,完全从内存读取当然查询快了,内存较小的话,其他查询数据读进内存后,把旧的数据从内存中清除,再查询旧数据还需要从磁盘读取到内存,所以经常出现第一次较慢,后续较快情况。最好办法就是加大内存,把常用的数据都读取到内存中缓存起来。

解决办法建议现场升级sybase到15.7,因为sybase12.5.3没有位版本,32位最多使用内存2G,好多表都是上百万的数据,确实查询较慢。

下载本文
显示全文
专题