性能问题解决案例01——sybase数据库内存问题

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

1、首先想到是签章的ocx控件问题,检查ocx控件安装,发现其他电脑也打不开文书,测试页面可以直接打开pdf文档,排除控件的问题。

2、怀疑是文书下载出问题了,检查文书下载功能,我们是把pdf文书下载到本地“我的文档”目录中,然后使用ocx控件打开文书,检查发现有的文书能正常下载到本地,有的干脆不下载,能下载到本地的文书可以正常打开。检查ftp发现文书都没问题,定位问题就出在从ftp下载这块。

3、ftp下载有2步,先去数据库中查询到ccbh,再根据ccbh从ftp下载,检查发现下载没问题,查询ccbh非常慢,最快也要50s才能查询出来,慢的要4、5分钟,有耐心的话,等待几分钟,文书是可以展示,已经定位到问题原因了,查询ccbh的sql执行非常慢。

4、分析sql,简化后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没有64位版本,32位最多使用内存2G,好多表都是上百万的数据,确实查询较慢。

性能问题解决案例01——sybase数据库内存问题,布布扣,bubuko.com

时间: 2024-08-06 03:43:33

性能问题解决案例01——sybase数据库内存问题的相关文章

性能问题案例02——sybase连接堵塞问题

现象:近期现场反馈一个问题,系统在审批的时候,常常卡死,整个系统全然用不了,浏览器訪问处于loading的状态. 排查: 1.一般系统挂了首先想到内存问题,可是现象是loading,也就是说没有挂,线程正在运行,怀疑是线程被堵塞了.配置上jvisualvm监控了一下,出问题后内存没满确定不是内存问题,查看线程dump发现大部分都在运行sql查询, 初步发现是运行sql慢导致的. 2.我们用的是sybase数据库,运行了几个简单sql发现几分钟都没运行完,使用sp_sysmon "00:00:30

性能问题案例02——sybase连接阻塞问题

现象:最近现场反馈一个问题,系统在审批的时候,经常卡死,整个系统完全用不了,浏览器访问处于loading的状态. 排查: 1.一般系统挂了首先想到内存问题,但是现象是loading,也就是说没有挂,线程正在执行,怀疑是线程被阻塞了,配置上jvisualvm监控了一下,出问题后内存没满确定不是内存问题,查看线程dump发现大部分都在执行sql查询, 初步发现是执行sql慢导致的. 2.我们用的是sybase数据库,执行了几个简单sql发现几分钟都没执行完,使用sp_sysmon "00:00:30

Sybase数据库技术,数据库恢复---分享Sybase数据库知识(博客文章索引@51cto)

Sybase数据库技术,数据库恢复分享Sybase数据库知识 博客文章列表,更新时间:2014-12-14 Sybase数据库技术,数据库恢复 站点地图 最新文章 ASE使用with ignore_dup_row删除重复数据  (评论 0   阅读 50) ASE 16静默方式安装并创建服务器  (评论 0   阅读 80) ASE执行sp_remotesql报错:Msg 11224, Level 16, State 2  (评论 0   阅读 72) Sybase支持浪潮天梭K1系统  (评论

Sybase数据库应用系统调优的五大领域

Sybase数据库应用系统调优的五大领域 2011/3/14/13:49来源:慧聪it网 本 文以“某大型商业银行的网上银行系统”这一很具有典型意义的企业级大型Sybase数据库应用系统为例,涉及了数据库应用系统调优的五大领域:压力测试. 应用端调优.服务器端调优.系统平台层的优化.应用架构的优化,详细介绍了作者在项目开发过程中曾经遇到的各种问题及其解决办法.本文通过对“企业级 Sybase数据库应用系统的性能调优的最佳实践”的探讨,从而为这类性质的工作提供了具有普遍指导意义的参考. 1.项目背

清算/报表/日终跑批程序之性能优化案例(一)

前言 不知不觉,技术人生系列·我和数据中心的故事来到了第五期.小y又和大家见面了! 前几期主要发了一些TroubleShooting的案例分享,其实小y最擅长的是性能优化,所以从这期开始,小y会陆续的分享更多的数据库性能优化案例. 进入正题,如果您的日终跑批/清算/报表等程序时快时慢,或者从某一天以后就一直变慢,作为运维DBA或开发的您,会怎么下手?还有,除了解决问题外,你要如何解答领导最关心的一个问题,"为什么现在有问题,但是以前没有问题呢"! 小y今天要和大家分享的就是这样一个性能

ORA-00845 : MEMORY_TARGET not supported on this system(调大数据库内存无法启动)

问题描述:调大数据库内存后,启动数据库报 ORA-00845 : MEMORY_TARGET not supported on this system . -- 调大数据库内存后,数据库启动报错[[email protected] bin]# ./srvctl start database -d jcdydbPRCR-1079 : Failed to start resource ora.jcdydb.dbCRS-5017: The resource action "ora.jcdydb.db

案例分享:数据库镜像故障转移失败

案例分享:数据库镜像故障转移失败 对于关键性数据库,我们配置了带有见证服务器的同步数据库镜像,来允许自动故障转移.一切运行正常,直到有一次数据中心的突然断电.数据库镜像执行了故障转移,但是运维反馈说应用程序挂起了.当我们手动切换回来,应用程序又正常工作.为什么应用程序没有也故障转移呢? 这是使用数据库镜像的合理的常见问题,像这样的生产应用失败,是因为在镜像部署后没有做故障转移测试.在失败的故障转移之后我们感到棘手. 为了避免生产应用停机,我们在测试环境复制了线上的镜像环境.在确认应用和数据库镜像

疑难杂症--SQL SERVER 2012下数据库内存异常回收

--=================================================================== --背景: 在一台SQL SERVER 2012 SP1(11.0.3000)服务器上,由于批处理请求较高,CPU使用率超过40%,于是开始各种调研.. 服务器情况: 服务器物理内存为128GB, 分配给SQL SERVER 115GB,Windows 可用物理内存为6GB左右 压力情况: 批处理请求超过30000+,有大量UPDATE和INSERT操作,C

android 性能分析案例

本章以实际案例分析在android开发中,性能方面的优化和处理.设计到知识点有弱引用,memory monitor,Allocation Tracker和leakcanary插件. 1.测试demo 下载bug项目:https://github.com/lzyzsd/MemoryBugs,请注意配合使用MemoryMonitor, AllocationTracker以及HeapDump,LeakCanary等工具来查找潜在的内存问题,并尝试解决. 2.测试工具介绍 (1)memory monit