版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/xuepiaohan2006/article/details/30064399

    近期现场反馈问题。全部电子签章页面打不开文书(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

 
  

    第一次运行结果:

    

    第二次运行结果:

    

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHVlcGlhb2hhbjIwMDY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />

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

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

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

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

    最近湖南现场反馈问题,所有电子签章页面打不开文书(pdf格式),后台日志没报任何错误. 1.首先想到是签章的ocx控件问题,检查ocx控件安装,发现其他电脑也打不开文书,测试页面可以直接打开pdf文档 ...

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

    现象:近期现场反馈一个问题.系统在审批的时候,常常卡死.整个系统全然用不了,浏览器訪问处于loading的状态. 排查: 1.一般系统挂了首先想到内存问题,可是现象是loading,也就是说没有挂,线 ...

  3. android 性能分析案例

    本章以实际案例分析在android开发中,性能方面的优化和处理.设计到知识点有弱引用,memory monitor,Allocation Tracker和leakcanary插件. 1.测试demo ...

  4. 老李案例分享:Weblogic性能优化案例

    老李案例分享:Weblogic性能优化案例 POPTEST的测试技术交流qq群:450192312 网站应用首页大小在130K左右,在之前的测试过程中,其百用户并发的平均响应能力在6.5秒,性能优化后 ...

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

    Sybase数据库应用系统调优的五大领域 2011/3/14/13:49来源:慧聪it网 本 文以“某大型商业银行的网上银行系统”这一很具有典型意义的企业级大型Sybase数据库应用系统为例,涉及了数 ...

  6. MySQL性能优化(二):优化数据库的设计

    原文:MySQL性能优化(二):优化数据库的设计 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.n ...

  7. SSRS Reports 2008性能优化案例

    我们的一个Reporting Service服务上部署了比较多的SSRS报表,其中有一个系统的SSRS报表部署后,执行时间相对较长,加之供应商又在ASP.NET页面里面嵌套了Reporting Ser ...

  8. windows下启动/关闭Sybase数据库服务器

    启动.关闭Sybase数据库服务器 一.启动Sybase服务器 在windows下介绍两种方法启动Sybase数据库服务器. 1.通过服务器管理器 依次打开控制面板>管理工具>服务 管理窗 ...

  9. 性能超越 Redis 的 NoSQL 数据库 SSDB

    idea's blog - 性能超越 Redis 的 NoSQL 数据库 SSDB 性能超越 Redis 的 NoSQL 数据库 SSDB C/C++语言编程, SSDB Views: 8091 | ...

随机推荐

  1. SQLServer 里面的 DDL,DML,DCL,TCL

    1.DDL (Data Definition Language )数据库定义语言 statements are used to define the database structure or sch ...

  2. windows下mongodb集群搭建

    本文介绍在windows环境下如何搭建一个高可用性的mongodb集群.系统环境为win7,mongodb版本为3.6.3. 本文采用的是分片+副本集的方式搭建集群,将分别介绍如何使用副本集和分片来提 ...

  3. mongodb oplog与数据同步

    1. 复制集(Replica sets)模式时,其会使用下面的local数据库local.system.replset 用于复制集配置对象存储 (通过shell下的rs.conf()或直接查询)loc ...

  4. easyui修改提示窗

    1.将文本框type修改成 password 2.easyui中的js

  5. Inviting Friends(hdu3244 && zoj3187)完全背包+二分

    Inviting Friends Time Limit: 1 Second Memory Limit: 32768 KB You want to hold a birthday party, invi ...

  6. .net防止SQL注入的一种方式

    首先也要明白一点,什么是SQL注入 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.具体来说,它是利用现有应用程序,将 ...

  7. Codeforces445B(SummerTrainingDay06-N 并查集)

    B. DZY Loves Chemistry time limit per test:1 second memory limit per test:256 megabytes input:standa ...

  8. Code Signal_练习题_depositProfit

    You have deposited a specific amount of money into your bank account. Each year your balance increas ...

  9. js 复制粘贴

    input输入框<div id="top-title" style="position: relative"> <img class=&quo ...

  10. java中return、break、continue的区别

    1.return @Testpublic void testReturn(){ for (int j = 1; j < 3; j++) { for (int i = 1; i < 5; i ...