`
hgq0011
  • 浏览: 560881 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

系统性能优化过程.

阅读更多
    现在的公司的系统很不稳定,尤其在高峰期间,一个系统的性能都会影响到其它系统的性能.我负责的一个系统.由于涉及到公司的各个系统,比如生产,工资,库存,工单,他们都是独立的系统.我的系统都要去他们所在的数据库拿数据.尤其是在首页要从各个系统中提取数据,所以等待的时间特别久,用户经常打点话下来抱怨,让我们尽快的想办法解决这个问题.我都能理解,我也想尽快的帮他们解决,我也放心,踏实.
    我观察了各个WEB服务器的性能都不错,服务器都是IBM的刀片服务器,4CPU,4G内存.他们的cpu一般情况都在20%左右,内存用的也不多.但是SQLServer服务器的CPU用的也不高,也在20%左右,sqlServer用的内存在1.9G左右.
    我也尝试打开Window2003SQLServer的3G选项,我希望SQLServer能够用到更多的内存,但觉得这个没有什么作用,不知道您觉得怎样?
    我尝试判断网络的速度的好坏,在局域网内,网速没有问题.
    我尝试优化数据库索引,似乎也没有提升明显的性能.
    我尝试优化SQL,但也没有提升性能.
    我尝试把用Hibernate性能有影响的地方用JDBC来取代,但没有起作用.
    我也监控获取每一部分数据从数据库返回到应用程序所需要的时间,我看到一个地方获取数据花的时间最多,一般情况下要10秒左右,所以系统的性能非常差.我也查看了那个表有400多万条数据,我们把一些很少用到的数据从中移出来,最终留有150万左右的数据,这样做使得那个系统的性能到是提高了不少,但是我的系统提升就不明显.由于这个表十分的庞大,也比较复杂,它是一个交收移交表,比如数据从A部门移到B部门,由从B部门移动到C部门,也就是,由一个上一部门,当前部门,下一部门;就成了一个树状结构了,而且,这个表是系统的核心,众多的操作都涉及它,用户的移交接收操作都和它有关,所以它的负担很重,系统的瓶颈也在这.也不知道对这样的情况大家是怎样设计的.
    我能想到的办法都想到了,请大家给我一些建议,改善我们的系统.让我过一个好年,也提前向大家拜个早年.谢谢!

 

分享到:
评论
11 楼 yyliuliang 2008-02-01  
hgq0011 写道
yyliuliang 写道
开Profile 跟踪那些延时高,消耗资源高的sql语句,然后查询分析器里执行查看执行计划,哪些语句没有使用到索引,哪些统计需要更新...  
建议

我跟踪到一个SQL要10S左右。

把效率低的sql语句的执行计划截几个图

重点看Profile里Duration 和Reads数高的
10 楼 hgq0011 2008-02-01  
<div class='quote_title'>Lucas Lee 写道</div><div class='quote_div'><div class='quote_title'>hgq0011 写道</div><div class='quote_div'>它是一个交收移交表,比如数据从A部门移到B部门,由从B部门移动到C部门,也就是,由一个上一部门,当前部门,下一部门;就成了一个树状结构了 <br/></div><p>照这么看,这个表应该不是树形结构吧,明显就是线型的,数据会同时移动到两个及以上的部门么(会有分叉么)?<br/><br/>你应该把表结构和很慢的SQL贴出来,讨论一下。</p><p>一般来说有两点:</p><p>1.分析SQL的查询计划,看是否用了合适的索引;</p><p>2.改变表的数据结构,或者增加冗余字段,以提升性能。</p></div><p><br/>是的它有可能同时移交到多个部门,而且从C部门可能会又移交到B部门或A部门。那个表字段多达53个,都比较复杂了。所以查询什么的都要花费很多的资源。</p><p>现在只能看第一个方案了,第二个因为,我们在今年就要上新的ERP系统了,在去修改表结构什么的也不太理想。</p>
9 楼 hgq0011 2008-02-01  
yyliuliang 写道
开Profile 跟踪那些延时高,消耗资源高的sql语句,然后查询分析器里执行查看执行计划,哪些语句没有使用到索引,哪些统计需要更新...  
建议

我跟踪到一个SQL要10S左右。
8 楼 hgq0011 2008-02-01  
xiaoyu 写道
首先要分析出, 你的索引有没有被使用, 如果没有被使用就白建了.

是的我也在考虑这个问题,请给我一些建议怎样确索引是否正确的被使用呢?我看到那个表已经建立了好几个索引,似乎建的不太正确。那个不是我负责的,正准备和同事商量能不能改善它,但是那个系统自从我们移走了200多万条记录,系统平稳运行。

xiaoyu 写道
如果这张表经常更新很多, 可以考虑让SqlServer采用Oracle的管理方式---就是select和update是不会被阻塞的.

这个能不能也请您具体说说,好吗? 因为我对ORACLE只懂一点皮毛,还正要更深入的研究它。谢谢!


xiaoyu 写道
可以按条件进行分区-这样你就不用分割表了(SQL server不太清楚, oracle是没有问题的, 不过分区这种东西要看合不合适你的业务).

SQLServer也可以进行分区的,似乎视图(不知道正不正确)。

我要用的那部门数据,我按照业务条件和估算日期建立了一个视图。从150W的记录中只那上百条记录。但是就是这上条数据中一次拿几条数据也要10S左右。这个开销太大了。也让我很头痛呀。现在我都怀疑用视图做这样的事情合不合适?本来我想对视图建一个唯一聚索引,查询倒是可以使用。但是对应的应用系统不能使用,通过系统不能更新数据。
7 楼 hgq0011 2008-02-01  
zbird 写道
做cache,将最近使用的记录放到cache表。
控制cache表的大小。

cache不太适合,因为那些更新很快,而且数据也比较重要,如果用了旧的数据就惨了。
6 楼 LucasLee 2008-02-01  
<div class='quote_title'>hgq0011 写道</div><div class='quote_div'>它是一个交收移交表,比如数据从A部门移到B部门,由从B部门移动到C部门,也就是,由一个上一部门,当前部门,下一部门;就成了一个树状结构了 <br/></div><p>照这么看,这个表应该不是树形结构吧,明显就是线型的,数据会同时移动到两个及以上的部门么(会有分叉么)?<br/><br/>你应该把表结构和很慢的SQL贴出来,讨论一下。</p><p>一般来说有两点:</p><p>1.分析SQL的查询计划,看是否用了合适的索引;</p><p>2.改变表的数据结构,或者增加冗余字段,以提升性能。</p>
5 楼 yyliuliang 2008-02-01  
开Profile 跟踪那些延时高,消耗资源高的sql语句,然后查询分析器里执行查看执行计划,哪些语句没有使用到索引,哪些统计需要更新...  
建议
4 楼 xiaoyu 2008-02-01  
首先要分析出, 你的索引有没有被使用, 如果没有被使用就白建了.  还有就是如果这张表经常更新很多, 可以考虑让SqlServer采用Oracle的管理方式---就是select和update是不会被阻塞的.

另外一种是, 可以按条件进行分区-这样你就不用分割表了(SQL server不太清楚, oracle是没有问题的, 不过分区这种东西要看合不合适你的业务).

3 楼 zbird 2008-02-01  
做cache,将最近使用的记录放到cache表。
控制cache表的大小。
2 楼 hgq0011 2008-02-01  
gigix 写道
做索引了吗?

当然做了索引。
我是根据查询条件做的索引,但我不能判断我做的索引是否正确。我用SQLServer事件查探器捕获很多sql语句和存储过程语句,然后用SqlServer中的查询分析器中的索引优化向导得到优化建议,可是没有得到索引优化建议。不知道您是怎么判断的?
1 楼 gigix 2008-01-31  
做索引了吗?

相关推荐

    分布式文件系统GlusterFS性能优化研究.pdf

    分布式文件系统GlusterFS性能优化研究中涉及到的关键知识点包括分布式文件系统的基本概念、GlusterFS的架构特点、性能优化策略以及优化测试和实验平台的搭建和分析方法。 首先,分布式文件系统是一种把数据存储在多...

    基于SQL的数据库应用系统性能优化研究.pdf

    本文主要探讨了基于SQL的数据库应用系统性能优化策略,内容涵盖了SQL优化的原理、通用策略、优化途径以及实际优化方法的应用实例。以下是详细的知识点: 1. 数据库应用系统性能优化的必要性:随着信息化时代的到来...

    信息系统Oracle数据库性能优化研究.pdf

    随着数据库用户访问量的不断增加,业务处理性能呈现下降趋势,系统性能优化变得尤为重要。本文研究了Oracle数据库性能优化的价值,并分析了影响Oracle数据库性能的主要因素,提出了相应的优化措施。 首先,Oracle...

    web系统性能优化参考.pdf

    【Web系统性能优化】 Web系统性能优化是提升用户体验和网站效率的关键环节,尤其在WAP站点建设中,性能优化显得尤为重要。通过对客户端浏览器访问服务器全过程的深入理解,我们可以找到优化的切入点。 首先,理解...

    10种java性能优化方案.docx

    性能优化是Java开发中的一个持续过程,涉及到多个层面的技术和策略。通过对文档中提到的关键点进行深入探讨,我们可以更好地理解如何有效地优化Java程序。无论是从代码层面还是从架构层面出发,这些策略都是为了提高...

    计算机新技术论文计算机系统结构论文计算机硬件系统论文:计算机系统性能优化研究.pdf

    计算机系统性能优化是当前信息技术领域中的重要研究方向,它涉及到计算机硬件系统、系统结构和软件配置等多个层面。本文主要探讨了计算机系统运行不佳的原因及如何通过优化措施提升系统性能。 首先,计算机系统运行...

    一种实用oracle应用系统性能优化方案.pdf

    本文介绍的是一种实用的Oracle应用系统性能优化方案,主要通过监控、分析和调整策略来提升系统性能。 1. **性能监控与分析** 性能监控是优化的第一步,可以使用工具如Spotlight进行实时监控。例如,观察到的系统...

    基于Oracle的数据库系统性能优化策略.pdf

    总结来说,Oracle数据库性能优化是一个综合的过程,需要结合数据库设计、SQL优化、应用程序优化以及硬件和系统配置等多个方面进行综合考虑。在设计阶段就应注重性能优化,而在运行阶段则需要持续监控和调整,以确保...

    动力锂电池组热管理系统性能优化研究.zip

    总结,动力锂电池组热管理系统性能优化是一项涉及多学科交叉的技术挑战,需要综合运用热力学、材料科学、控制理论等知识,以实现电池组的安全、高效运行。随着科技的进步,未来的热管理系统将更加智能、绿色,为动力...

    数据库性能优化工具.rar

    综上,"数据库性能优化工具.exe"很可能是一个集成了多种数据库优化功能的应用,它可以提供跨平台的性能监控、SQL优化、系统调整等功能,帮助数据库管理员和开发者更好地管理和优化他们的数据库系统。在使用过程中,...

    电脑性能优化软件.zip

    《电脑性能优化软件——以鲁大师为例》 在数字化时代,电脑已经成为我们日常生活和工作中不可或缺的工具。然而,随着长时间的使用,电脑可能会出现运行缓慢、卡顿等问题,这时就需要进行性能优化。本文将围绕“电脑...

    2Java性能优化二.zip

    二,JAVA性能优化之代码优化 代码调优是在软件开发中,或者是软件开发完毕后,软件维护过程中进行的程序代码的改进和优化.代码优化涉及诸多编码技巧,须要开发者熟悉相关的语言API ,并在适合的场景中正确的使用相关API...

    Linux性能优化大师.pdf

    性能优化是针对特定环境来定制系统的配置过程,或者是让某个特定的应用程序得到更好的响应时间或吞吐量的过程。 本书首先对 Linux 操作系统进行了深入剖析,并对最常用的企业监控工具Benchmark 及其他监控工具进行了...

    触摸屏性能优化方案.pdf

    ### 触摸屏性能优化方案 #### 一、引言 随着智能手机的普及和技术的发展,触摸屏已成为现代智能设备中最核心的交互界面之一。良好的触摸屏性能不仅能够提升用户的使用体验,还能增强产品的市场竞争力。然而,在...

    ibm rational 助您轻松完成自动化的性能测试和性能优化v20.rar

    在IT行业中,性能测试是评估系统在特定工作负载下运行效率的关键步骤,而性能优化则是确保系统能够高效、稳定运行的重要过程。IBM Rational 提供了一系列工具来支持这两个关键任务。 1. **IBM Rational Performance...

    浅析SQL Server数据库的性能优化方法.pdf

    SQL Server数据库的性能优化是一个系统工程,需要考虑软件层面和硬件层面的多种因素。从数据库的设计、索引、查询、应用程序结构,到事务日志和硬件资源的合理配置都是优化的重要方面。随着数据库技术的发展,新的...

    MySQL的SQL查询性能优化技术.pdf

    总的来说,MySQL SQL查询性能优化是一个涉及多方面的综合过程,包括但不限于合理配置、监控系统状态、理解业务需求以及持续跟踪和测试。通过运用这些技术和工具,我们可以显著提升MySQL数据库的性能,满足企业级应用...

    ORACLE SQL性能优化系列.

    Oracle SQL性能优化是数据库管理中的重要环节,旨在提高查询速度,减少资源消耗,提升系统整体效率。本系列将深入探讨优化技巧,分为多个部分进行详细阐述。 1. 选择合适的Oracle优化器 Oracle提供了三种优化器:...

    数据库性能优化详解数据库性能优化详解.doc

    数据库性能优化是一个持续的过程,需要结合业务需求和系统特性,综合运用多种技术手段来实现。理解并熟练掌握上述知识点,能够有效地提升数据库的运行效率,满足高并发、大数据量的业务场景需求。

    CPU-GPU系统中基于剖分的全局性能优化方法.pdf

    综上所述,基于剖分的全局性能优化方法是对传统优化策略的一次创新与整合,它不仅提升了CPU-GPU异构系统的性能,也为异构系统性能优化提供了一种新的理论框架和实践指南。随着技术的不断进步,该方法有望在更广泛的...

Global site tag (gtag.js) - Google Analytics