摘要: 前段时间,我们去回访客户,看了今年上半年优化的一个系统,看看性能怎么样。去了以后,客户反映感觉还可以,不慢,就是说这段时间数据库服务器的CPU有时超过了90%,会持续一段比较长的时间,可能有几十分钟。 下午,就发现这时候数据库服务器的CPU一直在90%以上。通过sql server profile也没查出什么问题。觉得操作很正常,后来通过DMVs发现,执行我以前改写的几个存储过程,执行次数比较多,...阅读全文
posted @ 2008-11-18 21:54 zping 阅读(2016) 评论(9) 编辑
摘要: 上周五,公司的同事,从客户那边回来,说一个人员选择页面很慢,页面打开需要15s左右,后来自己也试了一下,也的确需要比较长的时间,客户反应比较强烈。 通过DMV查出缓慢的两个语句如下:语句一:[代码] 语句二:[代码] 查询的两个表的数据量: 表humres: 1920 行 ,191次IO 表orgunitlink:256 行, 11 次IO 最大表才不到2000行数据,查询为何如此慢。看看执...阅读全文
posted @ 2008-11-17 15:24 zping 阅读(2217) 评论(3) 编辑
摘要: 今天下午,我们搭建了测试服务器,客户的两个管理人员,正在不停的添加数据,突然说页面打开错误,同时添加数据很慢,这时通过监控数据库服务器发现sql语句发现执行正常,但是客户的页面打不开。这时由于JBOSS服务器和数据库服务器都是放在一个服务器上,这时我看看内存和CPU,发现CPU占用100%,一般都在98%以上。这时很奇怪了,sql语句执行都比较快,为何内存占用98%居高不下,而且服务器还是中午重新...阅读全文
posted @ 2008-09-24 20:47 zping 阅读(3889) 评论(10) 编辑
摘要: 从上海来到温州,看了前几天监控的sql语句和数据变化,发现有一条语句的io次数很大,达到了150万次IO,而两个表的数据也就不到20万,为何有如此多的IO次数,下面是执行语句:[代码] 执行IO统计结果如下:[代码] 执行计划如下: 这里发现:主要是嵌套循环算法占的开销最大。个人感觉是“Or”引起的性能问题,后来根据业务逻辑改写。如下: 语句修改如下: [代码] 查询IO...阅读全文
posted @ 2008-09-23 16:53 zping 阅读(10736) 评论(28) 编辑
摘要: 今天客户系统升级,通过DMVs性能分析查了一下,升级后发现一个语句执行时间比较长,执行语句要好几秒钟,调出语句如下:[代码] 后来看了一下,这几表的数据[代码] 发现这三张表都没有超过1千行数据,建立索引意义不大,为何如此慢,看看执行计划: 分析:发现是表dbo.uft3a6h61176948132312访问开销最大,但表中数据不到一千行。执行看看结果:[代码] 这里发现表uft3a6h6117...阅读全文
posted @ 2008-09-15 20:15 zping 阅读(17580) 评论(19) 编辑
摘要: 前几天,远离上海,到了温州,在客户的这边处理系统慢,该系统每天正常down机7次左右,在线人员一多,系统运行缓慢,严重影响业务操作,到了无法忍耐的地步,这几天一直在这边处理优化中的问题和升级系统。将这些优化办法和思路记录下来,给大家在以后优化系统中提供思考和建议。 这几天都在通过执行计划来优化索引: 1,首先通过DMVs性能视图来查看那些性能问题是可以通过索引来优化的。先在生产数据库里执行下列查询...阅读全文
posted @ 2008-09-11 15:51 zping 阅读(4530) 评论(12) 编辑
摘要: Sql Server 2005有分区功能,但Oracle已经有了组合分区功能,sql server 2005如何实现,能实现吗?在Oracle 10g中,有rang-list/hash分区,在SQL server 2005中可以实现Range和list,可以和oracle一样实现复合分区。 在上一次优化中,客户使用的是SQL server 2005的标准版,由于标准版没有提供分区功能,后来使用了分...阅读全文
posted @ 2008-09-08 16:32 zping 阅读(1803) 评论(0) 编辑
摘要: 在查询优化中,有一个重要的概念:空间换取查询时间这一理论最好的应用就是:数据仓库(OLAP):在海量数据库里(一般是TB级)分析数据,通过对数据的ETL和计算汇总,得到有用的数据,并通过不同维度查看统计数据(一般比较少),实现上钻和下钻分析数据。 现在讨论一下在OLTP系统中空间换取查询时间常用的几个方法: 1,增加冗余表(计算汇总表) 2,增加冗余字段(包括计算字段) 3, 增加索引(包括计算索...阅读全文
posted @ 2008-09-04 17:38 zping 阅读(4150) 评论(9) 编辑
摘要: 前段时间提到的"SQL Server 2005 死锁解决探索",死锁严重,平均每天会发生一次死锁,在解决和处理SQL server2005死锁中查了很多资料和想了很多办法, 对为何出现死锁和怎样较少死锁有了进一步认识,在这里和大家一起分享: SQL Server 锁类型 在数据库中主要存在两种锁: S(共享锁)和X(排他锁) S(共享锁):在执行查询数据时,SQL server会将行锁定,这时只能...阅读全文
posted @ 2008-08-29 17:37 zping 阅读(1087) 评论(0) 编辑
摘要: 当我们优化一个系统时,有时发现一种情况就是自己修改SQL,索引以及分区是不能解决性能问题的。这时你要考虑业务逻辑优化和表设计的重构。这两点的确和设计结合的很紧密。 业务逻辑优化 结合实际,我们先谈谈业务逻辑优化。 案例一:我们的系统一个文档模块,客户点击时很慢,通过性能分析,是点击是去查询数据库,这时系统是通过Hibernate来两步处理: 1,计算该类型的文档数量总数。 2,显示最新文档的前20...阅读全文
posted @ 2008-08-25 13:36 zping 阅读(2877) 评论(9) 编辑
摘要: 今天在itput上看了一篇文章,是讨论一个语句的优化: 原贴地址: http://www.itpub.net/viewthread.php?tid=1015964&extra=&page=1 一,发现问题 优化的语句: [代码] 以上就是优化的需要优化的语句和情况。 不少人在后面跟帖:有的说没办法优化,有的说将IN该为EXISTS,有的说在ip上建立索引复合索引(ip,name)等...阅读全文
posted @ 2008-08-13 19:22 zping 阅读(13029) 评论(27) 编辑
摘要: 这是SQL Server 2005里的介绍:如果两个联接输入都很大,而且这两个输入的大小差不多,则预先排序的合并联接提供的性能与哈希联接相近。但是,如果这两个输入的大小相差很大,则哈希联接操作通常快得多。 哈希联接可以有效处理未排序的大型非索引输入。它们对复杂查询的中间结果很有用,因为: ·中间结果未经索引(除非已经显式保存到磁盘上然后创建索引),而且通常不为查询计划中的下一个操作进行适...阅读全文
posted @ 2008-08-11 21:38 zping 阅读(2893) 评论(5) 编辑
摘要: 简介:如果两个联接输入并不小但已在二者联接列上排序(例如,如果它们是通过扫描已排序的索引获得的),则合并联接是最快的联接操作。如果两个联接输入都很大,而且这两个输入的大小差不多,则预先排序的合并联接提供的性能与哈希联接相近。从上次我们分析来看,嵌套循环适合输入和输出都小的情况,那如果输入和输入都比较大情况下,使用合并算法什么情况下最优。最佳使用:合并联接本身的速度很快,但如果需要排序操作,选择合并...阅读全文
posted @ 2008-08-10 17:27 zping 阅读(1693) 评论(0) 编辑
摘要: 前段时间看了一篇关于算法的blog,地址如下: http://www.cnblogs.com/perfectdesign/archive/2008/04/24/sql_tuning.html 不少人也给了解决方法,以前也研究过(嵌套,合并,hash)算法,但没有真正的用到优化中,这个例子给了我很大启示。 现在就讨论一下这三个算法的使用。 嵌套循环:算法:for each row R1 in the...阅读全文
posted @ 2008-08-10 17:20 zping 阅读(6011) 评论(6) 编辑
摘要: 在使用Exists时,如果能正确使用,有时会提高查询速度: 1,使用Exists代替inner join 2,使用Exists代替 in 1,使用Exists代替inner join例子: 在一般写sql语句时通常会遇到如下语句: 两个表连接时,取一个表的数据,一般的写法通过关联查询(inner join): [代码]查询结果:[代码] 还有一种写法使用exists来取数据[代码]执行结果: [代...阅读全文
posted @ 2008-08-05 20:52 zping 阅读(26307) 评论(36) 编辑
摘要: 最近学习Oracle中,在其有hash表分区功能,就在想sql server 有类似分区吗,查了一些资料,发现没有介绍,在2005中目前只支持列表和范围分区。 以前只知道Sql Server有hash索引,本文就在Sql Server中实现Oracle里的hash表分区。在oracle 10g的hash分区保持分区数据的均匀,分的区个数是2的倍数分区才可以实现。前段时间做了一个试验,实现了在sql...阅读全文
posted @ 2008-07-27 20:28 zping 阅读(3029) 评论(4) 编辑
摘要: --报错信息: 2018-06-07T19:52:26.943083+08:00 0 [System] [MY-010116] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.11) starting as process 37992 100 200阅读全文
posted @ 2018-07-13 14:59 zping 阅读(8) 评论(0) 编辑
摘要: 原来,我穿起的这根关于爱的链条,周转了无数的人,最后经过少年还给了我,我一生做的这些好事,全都是为我自己做的!世间人都知道。你对人好,人对你好,这就是应供。是不是?将心比心,以心换心,这就叫〖应供〗。就这么简单的法!所以佛法里讲 “命自我立” 。说到这里,我想起一个很有爱的故事,与大家分享: 在美国阅读全文
posted @ 2018-07-10 14:45 zping 阅读(7) 评论(0) 编辑
摘要: 最近看了一本书,值得深读的书,推荐一下《寿命是自己一点一滴努力来的》,(转) 本文下面附上pdf电子版,有兴趣可以下载看看。或者购买纸质版。 又名《南怀瑾先生推荐之旷世奇书》被称为现代版了凡四训--南怀瑾推荐的一本书 作者陈女士,于一九三九年出生在台湾省台中市。出生时因骨髓无造血功能,被判定为无存活阅读全文
posted @ 2018-07-10 14:40 zping 阅读(10) 评论(0) 编辑
摘要: 2012年2月20日张太平校长在全校集会上的讲话 老师们、同学们: 上午好!我今天讲话的题目是:感恩的心 有一本小册子,书名叫《寿命是自己一点一滴努力来的》,是一位身居台湾的陈女士对自己坎坷而又神奇的一生的真实记录,感动了无数人,作者陈女士,现年64岁,一九三九年出生在台湾省台中市。作者患地中海贫血阅读全文
posted @ 2018-07-10 14:06 zping 阅读(13) 评论(0) 编辑
摘要: 2学弟私信了我,让我回答一下。受邀谢过。 以下内容为本人经历! 我生于江苏,85后,为了防止被人肉,具体城市就不表述了。 小时候家庭条件很一般,我有个姐姐,在那个计划生育强行执行的年代,爸妈为了生下男孩,宁愿房屋被计划办人员强拆,家具被拉到村长抵扣,要求我妈回来引产,我爸咬牙放弃家里的一切,带着我妈阅读全文
posted @ 2018-07-05 11:00 zping 阅读(16) 评论(0) 编辑
摘要: 来源:http://wubx.net/ 联系方式: wubingxi#163.com 转载请注明作/译者和出处,并且不能用于商业用途,违者必究. 前题: 实现步骤: set @@global.enforce_gtid_consistency = warn; 特别注意: 这一步是关建的一步使用不能出现阅读全文
posted @ 2018-07-04 15:39 zping 阅读(7) 评论(0) 编辑
摘要: Linux下安装Python3.6和第三方库 如果本机安装了python2,尽量不要管他,使用python3运行python脚本就好,因为可能有程序依赖目前的python2环境, 比如yum!!!!! 不要动现有的python2环境! 一、安装python3.6 1. 安装依赖环境 # yum -y阅读全文
posted @ 2018-07-03 14:37 zping 阅读(10) 评论(0) 编辑
摘要: 转: https://blog.csdn.net/l1028386804/article/details/77199194 一、问题描述 今天在线运行的一个mysql崩溃了。 查看错误日志,如下: 二、问题分析 从日志中可以看出是innodb引擎出了问题。日志里提示到 http://dev.mysq阅读全文
posted @ 2018-06-29 15:58 zping 阅读(15) 评论(0) 编辑
摘要: 两套LVS的ID必须不一致 ,原文: http://blog.chinaunix.net/uid-29578485-id-5671910.html 在LVS服务器中修改配置文件 vi /etc/keepalived/keepalived.conf 修改以下红色字体: ! Configuration 阅读全文
posted @ 2018-06-29 15:50 zping 阅读(15) 评论(0) 编辑
摘要: 下载最新的dbdeployer1.6.0,使用非root账户安装dbdeployer,特别是mv的时候。 1,解压 dbdeployer unpack Percona-Server-5.7.22-22-Linux.x86_64.ssl101.tar.gz --sandbox-binary=/usr/阅读全文
posted @ 2018-06-29 10:28 zping 阅读(14) 评论(0) 编辑
摘要: 背景: MySQL5.7在主从复制上面相对之前版本多了一些新特性,包括多源复制、基于组提交的并行复制、在线修改Replication Filter、GTID增强、半同步复制增强等。因为都是和复制相关,所以本文将针对这些新特性放一起进行说明,篇幅可能稍长,本文使用的MySQL版本是5.7.13。 1,阅读全文
posted @ 2018-06-29 10:10 zping 阅读(39) 评论(0) 编辑
摘要: 有时候我们在做维护的时候,总会遇到类似于IO特别高,但不能判定是IO瓶颈还是软件参数设置不当导致热盘的问题.这时候通常希望能知道磁盘的读写速度,来进行下一步的决策. 下面是两种测试方法:(1)使用hdparm命令这是一个是用来获取ATA/IDE硬盘的参数的命令,是由早期Linux IDE驱动的开发和阅读全文
posted @ 2018-06-22 18:08 zping 阅读(13) 评论(0) 编辑
摘要: git项目地址: https://github.com/akopytov/sysbench 利用sysbench很容易对mysql做性能基准测试(当然这个工具很强大,除了测试主流数据库性能,还能测试其它方面,详情自己看官网项目文档) Linux上的用法: 一、安装 yum install -y sy阅读全文
posted @ 2018-06-22 14:15 zping 阅读(13) 评论(0) 编辑
摘要: 1、备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/ CentOS 5 wget -O /etc/yum阅读全文
posted @ 2018-06-22 13:34 zping 阅读(13) 评论(0) 编辑
摘要: 一 前言 MySQL 的主从复制作为一项高可用特性,用于将主库的数据同步到从库,在维护主从复制数据库集群的时候,作为专职的MySQL DBA,笔者相信大多数人都会遇到“Got fatal error 1236 from master when reading data from binary log阅读全文
posted @ 2018-06-21 15:39 zping 阅读(13) 评论(0) 编辑