版权声明:本文为博主原创文章,未经博主同意不得转载。 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. 无责任Windows Azure SDK .NET开发入门篇(一):开发前准备工作

    Windows Azure开发前准备工作 什么是 Azure SDK for .NET?微软官方告诉我们:Azure SDK for .NET 是一套应用程序,其中包括 Visual Studio 工 ...

  2. EF 求和 GroupBy多个字段

    GroupBy根据多个字段分组使用方式: 一.使用扩展方法 query.GroupBy(q => new { q.Year, q.Month }) .Select(q => new { Y ...

  3. Java基本——数据类型

    一.创建一个简单的Java应用程序 public class Code { public static void main(String[]args) { System.out.println(&qu ...

  4. HDU3605(KB11-M 状态压缩+最大流)

    Escape Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Subm ...

  5. HDU2255(KB10-K 二分图最大权匹配)

    奔小康赚大钱 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  6. 初识DOM

    初识DOM 一. 节点的获取.插入.创建.删除.替换.修改文本节点 获取 1.document.getElementById 2.(element)document.getElementsByTagN ...

  7. 说说对npm的开发模式和生产模式的理解

    nodejs这些年的发展非常快,相信没有哪个前端不知道的了,npm也成为了前端开发中经常用到了的一个命令.那么npm不是只用一个 "npm install xxx"命令就够了吗?实 ...

  8. 为什么你用不好Numpy的random函数?

    为什么你用不好Numpy的random函数? 在python数据分析的学习和应用过程中,经常需要用到numpy的随机函数,由于随机函数random的功能比较多,经常会混淆或记不住,下面我们一起来汇总学 ...

  9. ActiveReports 报表控件V12新特性 -- RPX报表转换为RDL报表

    ActiveReports是一款专注于 .NET 平台的报表控件,全面满足 HTML5 / WinForms / ASP.NET / ASP.NET MVC / WPF 等平台下报表设计和开发工作需求 ...

  10. Android长按事件和点击事件 冲突问题

    长按点击的时候默认会触发点击事件,android系统是优先点击的,并且没有返回值:而长按事件是有返回值的,如果返回false,两个事件都会有响应,如果返回true则只响应长按事件.