`
dingjob
  • 浏览: 183233 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

性能调优step by step (三) --遇到的问题(数据库)

阅读更多
1. Webtrace 分析sql 性能,发现
userPermissionService.listVAccountIdsByUserIdAndProductCode
是数据库未分析数据,执行方案是基于开销的方式,导致执行计划未走到索引。后来是走的索引,但是仍然较慢。

分析:
kill -3后查看jboss 日志发现很多都在执行listVAccountIdsByUserIdAndProductCode 这个代码
由于apache 线程池都进行了调整,有足够多的等待线程,不太会导致BLOCKED,这样runnble 的较多都集中在这个代码上,就说明线程在这里比较占用时间。(用vi 不要用 tail)
这个sql有问题:
select pup.vaccount_id
    from pc2_user_permission pup
   where pup.product_code = #productCode#
     and pup.user_id = #userId#
     and pup.acl = '1'
没有走正确的索引,目前只有product_code  +user_id的索引,需要建立
product_code  +user_id + acl的索引


解决方法:DBA 进行oracle 的数据分析,然后再跑,或者delete掉数据,这和应用进行delete一样,数据库会自动进行数据分析和重建索引等。
对于走了索引仍然较慢的情况,加上含有acl的索引,这样就不用查询数据库了,速度会快比较多。







2. 测试apache 和jboss 性能对比情况时,发现和QA使用jmeter测试的结果不一致,本机测试apache 较好,QA测试 jboss反而更优。
本机测试,多数情况是apache 较好,QA使用jmeter做大并发时,数据库连接数是个瓶颈,经常over-load。
解决办法:需要让DBA 再把数据最大连接数调大些, process给调成250。


3.       不断执行压力测试,表空间占满。
分析:不停的delete 和insert时会有碎片产生,这样oracle自己的回收机制来不及做,就会导致原来占一个G的数据,现在就要占5G并且会增加insert的成本,导致插入数据时非常慢。
处理方法:正常情况下是会自动回收的。只要在高并发情况下才会出现这种情况,原来表空间6G,目前增加到10G, DBA进行碎片整理。


4. DBA调整了事务管理块及insert预分配空间,调整后性能有所提高,大概提高10%左右
因为PC2中有大量的insert操作,DBA认为insert操作时,若有较多的磁盘碎片,会对insert性能产生影响 ,所以为此预分配了一定空间,所有的插入操作都是往预分配空间插入,这样省去了寻址的时间。

5. 报数据库已经关闭异常,jboss log 报出


ERROR com.mchange.v2.resourcepool.BasicResourcePool :: com.mchange.v2.resourcepool.BasicResourcePool@5b553d28 -- Unexpectedly broken!!!
com.mchange.v2.resourcepool.ResourcePoolException: Unexpected Break Stack Trace!




解决方法:修改pc2-spring-common.xml  中C3P0配置,将其如下值修改

<property name="breakAfterAcquireFailure" value="false" />



此问题较为普遍,在UDB和原来PCC都有发生,发生场景为不少连接被占用(本次是被预发环境占用)资源发生竞争时,如果设置为true,已经被占用的连接,就会直接报出异常,如果为false ,他会去尝试再获取下,短链接的情况下会很快释放的,这样就不会报出异常了。




6. 多次fetch的数据问题

  webtrace是一个很不错的SQL跟踪工具
  通过查看trace得到的SQL执行情况,问题一可以很容易查到原因,问题三的原因也由此可以看出来。
  虽然走到索引,但fetch次数太多(ibatis是以object来传输的,查到了这么多数据,取了这么多次,肯定是耗费很大性能的)。数据存在问题。


  • 大小: 26.2 KB
  • 大小: 48.3 KB
0
1
分享到:
评论

相关推荐

    SAP HANA step by step #1

    【SAP HANA Step by Step #1】是一个深入学习SAP HANA的教程,适合对数据库管理和企业级数据处理感兴趣的初学者。SAP HANA,全称High-Performance Analytic Appliance,是一款由SAP公司推出的高性能数据处理平台,...

    Centos5.5+oracle11gR2_database--installation-step-by-step.rar

    这个压缩包"Centos5.5+oracle11gR2_database--installation-step-by-step.rar"显然包含了在CentOS 5.5版本上安装Oracle 11g R2数据库的详细步骤。Oracle 11g R2是Oracle数据库的一个重要版本,提供了许多增强功能和...

    SQL Server 2005 Analysis Services Step by Step

    ### SQL Server 2005 Analysis Services Step by Step #### 概述 SQL Server 2005 Analysis Services (SSAS) 是一个强大的商业智能工具,用于构建多维数据集和数据挖掘模型。本书旨在为用户提供一个逐步指南,帮助...

    database solutions: a step by step guide to building databases

    10. **数据库性能调优**:通过对查询性能监控、内存管理、存储配置等方面的调整,可以显著提高数据库的性能。数据库性能调优是数据库管理员和开发人员的重要技能。 通过《数据库解决方案:一步步构建数据库》这本书...

    Microsoft ASP.NET_3.5Step by Step

    7. **部署与性能优化**:指导读者如何将应用程序发布到服务器,包括IIS(Internet Information Services)的配置、性能调优和故障排查。 8. **最佳实践与设计模式**:分享了开发高质量ASP.NET 3.5应用的最佳实践,...

    Microsoft+SQL+Server+2008+MDX+Step+by+Step

    《Microsoft SQL Server 2008 MDX Step by Step》是一本专为SQL Server数据库管理员、数据分析师和开发人员设计的教程,旨在深入探讨多维表达式(Multidimensional Expressions,简称MDX)在SQL Server 2008中的应用...

    Microsoft.Press.Microsoft.SQL.Server.2005.Applied.Techniques.Step.by.Step.z02

    《Microsoft.Press.Microsoft.SQL.Server.2005.Applied.Techniques.Step.by.Step.z02》这本书是微软出版社推出的关于SQL Server 2005应用技术的实践指南,旨在帮助读者逐步掌握SQL Server 2005的核心技术和实际操作...

    Visual+C#+step+by+step+Code+Samples

    这部分可能包含数据库性能调优技巧,如索引创建、查询优化、内存管理以及数据库安全策略。 在这个压缩包中,每个代码样本都可能是一个独立的案例,展示了如何在实际项目中应用这些技术。通过逐步学习和实践这些示例...

    Microsoft.Press.Microsoft.SQL.Server.2005.Applied.Techniques.Step.by.Step.z04

    《Microsoft.Press.Microsoft.SQL.Server.2005.Applied.Techniques.Step.by.Step.z04》这本书主要聚焦于微软的SQL Server 2005数据库管理系统,为用户提供了一步一步的技术指导。SQL Server 2005是微软推出的一款...

    sap-basis-certification-questions-sap-basis-interview-questions-answers-and-explanations

    - **Step-by-step Debugging**:逐步调试是一种常见的调试方法,可以帮助开发者逐行跟踪程序的执行过程,从而找出问题所在。 - **使用事务代码 ST05**:此事务代码可以用来查看和分析 ABAP 程序的日志记录,这对于...

    database design

    数据库调优是一个实践性强的部分,包括调整锁机制、日志管理、系统参数以及索引和查询优化,以提升数据库性能。 课程的教学方式包括讲授、示范、习作和其他实践活动,通过这些方式让学生深入理解并掌握理论知识,并...

    SQLServe书籍

    《SQL Serve书籍》是关于Microsoft SQL Server数据库管理系统的专业指南,尤其强调了“Step by Step”的学习路径。这本书深入浅出地介绍了SQL Server的核心概念、功能和操作,旨在帮助读者逐步掌握这一强大的数据库...

    四本sql server 2008技术内幕英文书

    此外,还讨论了性能监控工具和最佳实践,以帮助数据库管理员解决性能问题。 通过这四本书的学习,读者可以全面了解SQL Server 2008的核心功能,从基础的数据库管理到复杂的T-SQL编程,再到性能优化,都能得到扎实的...

    oracle学习资料大全PDF

    首先,"Oracle10gR1.Step.By.Step.by.Kamus.pdf"是一本逐步指南,详细介绍了Oracle 10g R1的安装、配置和管理。通过这本书,读者可以了解如何创建数据库、管理用户权限、进行备份恢复等基础操作。 "[三思笔记]全面...

    SQL_stepbystep_video

    9. **性能监控与调优**:了解新的性能监控工具,如SQL Server Profiler和动态管理视图(DMV),以便对升级后的系统进行性能评估和调优。 10. **维护计划**:制定定期的数据库维护计划,包括备份、更新、性能监控等...

    ORACLE11GR_SETUP

    "Step by Step Install Oracle 11gR2 RAC for AS5U3 64bit V1.1(by old_bear)"是一个详细的安装指南,专门针对在AS5U3(可能是Altiris Deployment Solution 5 Update 3)64位系统上安装Oracle 11gR2 Real ...

    Visual C#从入门到精通.第8版.John Sharp

    11. **代码优化和性能调优**:分享最佳实践,提升程序的运行效率和内存管理。 12. **最新C#版本特性**:可能包括C# 8.0及更高版本引入的新特性,如默认接口实现、非空引用类型等。 通过阅读《Visual C#从入门到...

Global site tag (gtag.js) - Google Analytics