性能问题解决案例01——sybase数据库内存问题
最近湖南现场反馈问题,所有电子签章页面打不开文书(pdf格式),后台日志没报任何错误。
1、首先想到是签章的ocx控件问题,检查ocx控件安装,发现其他电脑也打不开文书,测试页面可以直接打开pdf文档,排除控件的问题。
2、怀疑是文书下载出问题了,检查文书下载功能,我们是把pdf文书下载到本地“我的文档”目录中,然后使用ocx控件打开文书,检查发现有的文书能正常下载到本地,有的干脆不下载,能下载到本地的文书可以正常打开。检查ftp发现文书都没问题,定位问题就出在从ftp下载这块。
3、ftp下载有2步,先去数据库中查询到ccbh,再根据ccbh从ftp下载,检查发现下载没问题,查询ccbh非常慢,最快也要50s才能查询出来,慢的要4、5分钟,有耐心的话,等待几分钟,文书是可以展示,已经定位到问题原因了,查询ccbh的sql执行非常慢。
5、分析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数据库内存问题的更多相关文章
- 性能问题案例01——sybase数据库内存问题
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/xuepiaohan2006/article/details/30064399 近期现场反馈问 ...
- 性能问题案例02——sybase连接堵塞问题
现象:近期现场反馈一个问题.系统在审批的时候,常常卡死.整个系统全然用不了,浏览器訪问处于loading的状态. 排查: 1.一般系统挂了首先想到内存问题,可是现象是loading,也就是说没有挂,线 ...
- android 性能分析案例
本章以实际案例分析在android开发中,性能方面的优化和处理.设计到知识点有弱引用,memory monitor,Allocation Tracker和leakcanary插件. 1.测试demo ...
- 老李案例分享:Weblogic性能优化案例
老李案例分享:Weblogic性能优化案例 POPTEST的测试技术交流qq群:450192312 网站应用首页大小在130K左右,在之前的测试过程中,其百用户并发的平均响应能力在6.5秒,性能优化后 ...
- Sybase数据库应用系统调优的五大领域
Sybase数据库应用系统调优的五大领域 2011/3/14/13:49来源:慧聪it网 本 文以“某大型商业银行的网上银行系统”这一很具有典型意义的企业级大型Sybase数据库应用系统为例,涉及了数 ...
- MySQL性能优化(二):优化数据库的设计
原文:MySQL性能优化(二):优化数据库的设计 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.n ...
- SSRS Reports 2008性能优化案例
我们的一个Reporting Service服务上部署了比较多的SSRS报表,其中有一个系统的SSRS报表部署后,执行时间相对较长,加之供应商又在ASP.NET页面里面嵌套了Reporting Ser ...
- windows下启动/关闭Sybase数据库服务器
启动.关闭Sybase数据库服务器 一.启动Sybase服务器 在windows下介绍两种方法启动Sybase数据库服务器. 1.通过服务器管理器 依次打开控制面板>管理工具>服务 管理窗 ...
- 性能超越 Redis 的 NoSQL 数据库 SSDB
idea's blog - 性能超越 Redis 的 NoSQL 数据库 SSDB 性能超越 Redis 的 NoSQL 数据库 SSDB C/C++语言编程, SSDB Views: 8091 | ...
随机推荐
- 【剑指Offer】32、把数组排成最小的数
题目描述: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. ...
- python-if判断
1. python 条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语句的执行过程: Python程序语言指定任何 ...
- 06.系统编程-4.多线程和GIL
为什么有人会说 Python? 多线程是鸡肋?知乎上有人提出这样一个问题,在我们常识中,多进程.多线程都是通过并发的方式充分利用硬件资源提高程序的运行效率,怎么在 Python 中反而成了鸡肋? 有同 ...
- Docker--微软dotconf截图
- android性能測试systrace
一:简单介绍 systrace 是 Android4.1 引入的一套用于做性能分析的工具. 基于 Linux 内核的 ftrace 机制(用于跟踪 Linux 内核的函数调用), 能够输出各个线程当前 ...
- JavaScript高级特性之原型
JavaScript的原型 原型prototype属性仅仅适用于函数对象(这里的函数对象是自己为了理解更好定义的,普通对象是没有原型属性的) 1.研究函数原型: <script type=&qu ...
- 最长公共子序列 nlogn
先来个板子 #include<bits/stdc++.h> using namespace std; , M = 1e6+, mod = 1e9+, inf = 1e9+; typedef ...
- Java中对象与引用
初学Java 时.在非常长一段时间里,总认为基本概念非常模糊. 后来才知道.在很多Java 书中.把对象和对象的引用混为一谈. 假设分不清对象与对象引用,那实在没法非常好地理解以下的面向对象技术.把自 ...
- vue组件的3种书写形式
第一种使用script标签 <!DOCTYPE html> <html> <body> <div id="app"> <my- ...
- 0x57 倍增优化DP
真的是下定了巨大的决心来搞这一讲,果不其然耗了一晚上 开车旅行(真的是NOIP的题吗怎么这么恐怖) 首先,先用set把小A和小B从城市i出发,到达的下一个城市预处理出来. f[i][j][k]表示走了 ...