一次数据库变慢的测试及优化

来源 :中国计算机报 | 被引量 : 0次 | 上传用户:logoxx
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  
  搭建测试环境的示意图
  
  鲍勃推动的新订单程序上线后,系统变慢。董事会担心因此影响生意和声誉。鲍勃费尽周折查出原因在后台数据库,然而在测试环境下却没有什么不正常的。鲍勃最终能解决系统变慢的问题吗?
  在鲍勃的推动下,公司的订单系统经历了一个非常快速的开发流程,很快就集成到在线店面中去了。不久,他发现,销售系统的运行有些异常:查询每条在线订单的时候,前台Web服务器从后台数据库中读取数据的时间徒然上升,而且容易出错,响应客户请求方面也显得缓慢。
  与此同时,当Mira(鲍勃的新同事)开始为电子商务程序更新模块时,系统终于不堪重负,倒下了。鲍勃和Mira感到了压力:董事会担心,因为系统缓慢,一些用户会散播谣言,使公司的信誉度下降,以至会影响上市的进度。
  为什么我们把系统放在生产网络中,大家都用得很好的时候,系统却变慢了?鲍勃想改变这个系统越用越慢的情况,他该如何做呢?
  
  根源在后台数据库
  
  由于鲍勃曾经管理过比较复杂的网络系统,他知道,用户反映系统出现故障时,一步一步去确定系统的各个环节是否有问题非常麻烦,有很多工作要做:检查交换机和路由器,Ping操作系统,检查数据库服务器,检查数据库是否正常(如日志已满),检查IIS及App Pool是否异常,检查自定义的Socket程序是否正常等等……
  鲍勃订购了System Center Operation Manager 2007 ,这样可以通过自定义分布式应用程序,把所有应用程序整合在一起,系统会自动监控每台服务器的工作环节。如果有问题,系统会及时让整个工作小组的开发和维护人员同时收到通知。但时间紧迫,董事会并不允许他等到这个新产品上线。
  在确定排除了Web服务器CPU和内存可能存在的瓶颈之后,针对Web服务器上的IIS 6.0 ,鲍勃要求开发小组改写了三个Monitor脚本,其中使用两个Monitor脚本收集系统信息:IIsmDyn.js和IIsmStat.js。以IIsmDyn.js脚本为例,这个脚本可以检索系统性能信息和系统事件信息,这样可以避免维护人员通过手工访问性能监视器或事件查看器。该脚本会检索来自以下源头的事件查看器条目:WAS(Web 管理服务)、W3CTRS(World Wide Web 计数器)、W3SVC(World Wide Web 发布)等。
  工作小组重新利用压力测试软件对Web服务器上的静态页面进行测试。监控脚本在Web服务器上布控了3天零19个小时,几次测试的结果都表明,每台服务器的处理能力都维持在每秒80.20次请求的级别上,CPU的利用率约为65%左右,这相当于2100~2500名并发访问用户的情况。但是监控脚本中并没有直接提供警告的信息,人们带着怀疑的心理对后台数据库进行性能测试。刚一开始,服务器就缓慢下来,鲍勃和Mira的眼睛都盯在后台数据库服务器上了。
  
  测试环境下正常
  
  Mira带领开发小组对服务器进行了测试。测试方法是将所有数据从生产服务器复制到测试服务器,并优化测试服务器,然后在生产服务器上重现。模拟测试环境下,测试结果表明,SQL 服务器上的吞吐量需求并未在性能上产生瓶颈。这是因为在非生产环境中完成了自定义工作,并测试过系统。大多数测试环境不能复制生产环境所包含的拓扑结构和硬件配置,所以只能使用备份还原过程或Planning 镜像技术,因而存在了迁移的差异性。
  虽然此过程可以消除对生产服务器的性能影响,但这不是最佳解决方案。在模拟测试环境下,测试结果令人非常满意,一旦放在生产网络上运行一段时间,系统就开始慢如“牛车”。看来,鲍勃必须对生产网络中的服务器进行性能监控和调优了。
  非常可惜的是,他们并没有专门的数据库管理员(DBA),这也是很多成长型企业IT部门的通病。如果有一名专职的DBA,他一定知道如何做好数据库的管理工作,并为开发人员提供协助。
  Mira以前做过一些SQL 2000数据库维护工作,因此由她暂时来负责数据库的优化工作。她已经注意到,SQL Server服务器的性能监视器反映出来的CPU使用率达到峰值、内存消耗过度等问题导致的整体性能下降,但还无法推断出导致性能异常的最终原因。在SQL Server 2005问世以前,Mira必须使用Profiler来跟踪性能异常,然后在Enterprise Manager中查看系统进程,最后查看性能监视器日志。完成上述任务后,还需要手动协调各个工具,以确定性能降低的原因。这就意味着需要费劲地逐个查看每个工具的日志。虽然这个过程很乏味,但Mira觉得,要了解出现性能问题的根本原因,就必须如此操作。
  
  索引和碎片的问题
  
  她向很多DBA朋友发送了Mail,还向一些经常出入的论坛发出了帮助请求。Mira收到回复的信件中,关于索引问题的建议非常多。因为索引编制可能是决定访问数据所需锁数量的关键因素,编制正确的索引可以减少数据库引擎必须执行的内部查找次数,从而减少查询访问的记录数。碎片可能是一个隐含的问题根源。如果碎片过多,数据库引擎可能需要访问比采用其他方式更多的页面。此外,不正确的统计信息也可能会导致查询优化器选择效率不高的路径。
  管理员可以使用SQL Server提供的一种简化并自动维护数据库的工具——数据库维护计划向导(Database Maintenance Plan Wizard ,DMPW),它包括了对索引的优化。运行这个向导后,Mira看到数据库中关于索引的统计量,这些统计量作为日志并定时更新,这样就减轻了手工重建索引所带来的工作量。这里提示一下读者,如果你不想自动定期刷新索引统计量,你还可以在DMPW中选择重新组织数据和数据页,这将停止旧有索引并按特定的填充因子重建索引。
  
  针对查询效率的优化
  
  有效的优化、不优化或错误优化三者之间的差别,可能会让程序执行速度差别几十倍甚至几百倍。前面已经提到,用户提交查询之后,才明显感到系统缓慢,因此我们就数据库的查询优化给鲍勃提一些建议。查询优化在提高性能方面起着举足轻重的作用,查询优化的方法有:缩短事务、对事务进行排序、使用锁定提示。
  这家公司订单系统的数据列的属性实在太多了。SQL 将每个语句都作为隐式事务,如果该语句影响到大段的程序,则单一语句仍可构成一个大型事务,尤其是当涉及许多列时或列中包含大量数据时更是如此。
  最终,Mira提交给鲍勃一份非常完整的服务器优化报告,问题正在处理中。比较确定的是,他们需要对系统来个智能扫描,给数据库做一个“全身检查”。
其他文献
你能够想象,几年后,很多人的办公桌下都放着一台高性能计算机,它每秒的运算速度达到万亿次,或者是数十甚至数百万亿次吗?中国科学院计算技术研究所系统结构研究部主任、我国著名的高性能计算机专家孙凝晖教授会很肯定地告诉你,“会的,那一天一定会到来的”。曙光信息产业有限公司已经帮他造出一台样机了,而他也早为这台高性能计算机取好了名字,“我叫它个人高性能计算机,也就是在HPC(高性能计算机的简称)前面加一个字
家电企业A 公司借鉴国际实践经验梳理制定了新品研发的流程。但结果是,当国际竞争对手推出一款新产品之后,这家企业要经过将近16个月的时间才能推出类似的产品,而其国内的竞争对手只需要8个月就可以完成这个过程。问题出在哪里?其实,只有建立了端到端的流程总图,分类分级梳理后才能发现业务模式当中的缺失。    A公司的流程總图  A公司是家电行业内的领头企业,公司特别强调新产品的开发,并借鉴国际先进实践经验
Liebert.PEX机组是基于艾默生全球研发与设计平台的高端机组,可选择风冷、水冷、乙二醇冷却及冷冻水等多种制冷方式,包括制冷量20kW~100kW的多个机型。  应用范围:大中型交换机房和移动机房、计算机房和数据中心(IDC)、高科技环境及实验室、工业控制室和精密加工设备、标准检测室和校准中心、UPS和电池室、生化培养室、医院和检测室。  产品特点:多项节能设计,多种送风方式,满足不同气流组织
虚拟现实(VR)系统为操作者提供一个极具高临场感的交互式视景仿真和信息交流环境。它具有三个重要特征,即临场感、交互性和构想性。今天,VR技术的发展已经远远不局限于大家所熟悉的3D甚至4D电影所带来的逼真和刺激了。各个行业都在应用这种先进的技术,加快自身的发展甚至变革。  而在汽车设计领域中,VR技术应用于新产品的设计开发阶段,特别是在汽车制造领域,已经是国际著名汽车制造商普遍采用的技术。在激烈的市
汶川大地震发生后,搜索引擎成为外界获悉定向信息的最重要渠道。据统计,在地震发生后的短短两个小时内,百度的相关关键词检索次数达近千万次,利用搜索引擎获取地震的最新消息成为网民的首选方式。  搜索引擎双寡头百度和谷歌在此次地震灾害中表现不俗,而且各具特色。百度几次更换其首页Logo,谷歌借助地图优势推出了地震形势图和寻亲搜索引擎平台。然而,不同的做法也映射出两家在对待突发性事件时的不同策略。    谷
8月24日早上7:30,全长42.195千米的北京奥运会马拉松赛道上,赛事紧张,观赛者目不转睛;同一时刻,有一群人却通过穿越海淀区的21千米赛道沿途布置的50个摄像头,时刻紧盯着赛道线外的观赛情况。他们不是对奥运会不感兴趣,而是保障奥运城市运行和奥运服务保障的重任压在他们肩上,不容丝毫懈怠。  自7月20日启动奥运运行保障以来,北京市海淀区信息化城市管理指挥系统可谓经受住了一次严格的考验和洗礼——
存储密度的提升有三方面的好处。首先,它直接导致了硬盘容量的提升。在一般的3.5英寸硬盘中可容纳的碟片数在1~5片之间,这就限制了硬盘的容量。在单碟容量仅有200GB的时候,硬盘容量最大只能达到1TB。而当单碟容量达到320GB,硬盘的容量可以达到1.6TB。其次,存储密度提升还直接导致硬盘成本下降。在存储密度较高时,用较少的盘片数就可以达到同样的存储容量,这就降低了硬盘的成本。  另外,存储密度的
本报讯2月初,IBM-中国云计算中心签约揭牌仪式在江苏无锡举行。IBM宣布在中国无锡新城科教产业园建立其在中国的第一个云计算中心(Cloud Computing Center)。它将为园区内的软件公司提供一个虚拟计算资源共享平台,从而支持其开发活动。作为无锡市发展软件外包服务的重大举措之一,此举旨在通过IT基础设施建设来提高无锡当地企业提供软件外包服务的能力。  IBM中国云计算中心将为无锡新城科
钱大群认为,未来的人才一定要有能力去管理一个全球整合企业。  一年前,当业界把眼光投向刚到中国的钱大群时,更关心的是他有什么新政。一年后,作为IBM大中华区的CEO,钱大群对中国有了更深的了解。“上任时我想的是怎样带好团队做好事,一年后我就会想把IBM的力量集合起来,可以对中国企业的发展有更大的贡献机会。” 他告诉记者,“一年后的我的确很不一样。”    说出去年不敢讲的话    “去年我在台上还
本报讯3月1日,国内网站流量第三方全样本统计服务平台——万瑞互联网数据平台正式亮相。中国互联网三大门户掌门人曹国伟、张朝阳、丁磊和近百家中国互联网领军网站的代表,就建立符合中国互联网本地市场实际情况的数据标准与数据体系达成基本共识,并签署了相关倡议书。  据悉,万瑞互联网数据平台目前已经为新浪、搜狐、网易、央视国际、中华网等近30家大中型门户网站、视频类网站、社区类网站、行业网站和7000多家中小