`
beck5859509
  • 浏览: 108729 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

大数据量计算性能优化总结

 
阅读更多
       好久没有动博客了,今天有时间把前段时间问题的解决思路总结一下。欢迎一起讨论。

应用端:
        1.在多线程计算情况下汇总计算结果,必免不了要去重。比较常见的方法是重写hashCode和equals方法,其计算速度取决于hashCode方法的逻辑,需要根据业务逻辑,尽量使hashCode的值从不同的业务维度来累加。比如去重对象Object有四个维度,需把四个维度Object.A, Object.B, Object.C, Object.D四个维度都计算。这样的优势在于减少equals方法的调用。equals方法也有讲究,把耗时少,容易计算的逻辑放在前面,也可以
提升去重的效率。

        2.数据集合空间的及时释放。每个线程执行完业务逻辑以后,最好把任务线程的数据集合释放空间(比如ResultSet.clear()),否则一段时间以后内存就满了,比较奇怪的一点是在JConsole中主动执行GC也不会回收内存。后来想了想是否有其它地方在引用此数据集合以及每个任务线程是否做到了自身独立。经排查没有发现可疑的地方。

        3.明细表ID如何从汇总表中读取。如果是独立的表,可以直接使用sequence。但是因为汇总表的记录先生成,所以不能直接去读取。如果每次插入汇总表之前,先去数据库中获取到当前sequence的值,这样的劣势是访问库的次数太多。用临时表的方式可以解决这个问题,不过太麻烦。后来想到了用AtomicLong,先获得表的总行数对AtomicLong进行初始化,自增AtomicLong的值作为ID,这样达到不会重复。不过前提是只有一个应用在保存,否则不能保存唯一性。

        4.GC策略的选择。后台计算的节点使用并行(UseParallelGC)方式,对计算提升比较大,因为观察JConsole可以看到新生代的内存变化浮动是很大的,(配置的是80G,短时间内会频繁发生几十G消耗)。因为并行采用拷贝复制的内存回收方式,对于大内存来讲是相当有效的。如果是WEB服务端的回收机制,需要配置成CMS(并发)方式,该策略使用压缩回收,不会因为GC而停止应用的执行。

       5.其它业务逻辑的小算法。因涉及到具体的业务逻辑,在此不展开介绍了,不过解决这些问题离开不了数学知识及java collection使用的熟练成度。

数据库端:
       1.分区方式建表,并指定其数据空间。因表的数据量有上亿条,并且周期性的增长,这里使用oracle11G的新特性,例如每隔7天建一个分区:NUMTODSINTERVAL (7,'DAY')。

       2.索引的建立,并指定其索引空间。需要结合前台查询的逻辑进行分析。是否需要组合索引还是单索引。需要花时间进行尝试。其间发现建了索引,但查看执行计划,SQL语句并没有走到实际预期的索引,后来发现是因为表的统计信息未收集完成,orcale有自动信息收集的机制,可以一段时间以后再尝试查询。
1
0
分享到:
评论

相关推荐

    Spark大数据处理:技术、应用与性能优化

    Spark大数据处理:技术、应用与性能优化》根据最新技术版本,系统、全面、详细讲解Spark的各项功能使用、原理机制、技术细节、应用方法、性能优化,以及BDAS生态系统的相关技术。 作为一个基于内存计算的大数据并行...

    信息化项目数据量分析方案.docx

    性能优化建议:根据处理能力评估结果,提出性能优化建议。如优化数据处理算法、提升硬件性能、调整系统配置等,以提高数据处理效率。 五、数据安全与隐私保护 数据安全风险分析:识别项目中可能存在的数据安全风险...

    使用JAVA内存数据库h2database性能优化

    我们在开发应用都知道IO是系统性能的瓶颈,在...2.对数据实时计算,而且数据量很大时,比如电信系统的电信的二次批价和实时累账 3. 需实时统计数据,监控海量数据问题,比如ATM监控系统的可疑交易监控(广东中行)

    SQL查询安全性及性能优化

     由于返回的数据量减少,IO性能提高了  前提:必须知道要返回的行数 select字段需要多少提取多少  按需检索字段,少使用Select *  使用*,返回了很多不需要的字段,增加IO负担。  使用*,由于没有明确指定...

    服务器监控及性能优化.pptx

    跨线程访问,不合理的线程粒度 锁操 作 减小粒度 减少锁时间 同步 同帧合并 减少聚集 大量 对象 分批计算 设置激活 数据 结构 服务器监控及性能优化全文共27页,当前为第14页。 MMO服务器常用的优化手段 流畅 控制 ...

    MySQL性能优化详解.docx

    MySQL语句优化是提高数据库性能的关键步骤,它包括调整参数配置、优化SQL语句和分析执行计划等。以下是一些常见的优化策略: 使用EXPLAIN分析查询:通过在查询语句前加上EXPLAIN关键字,可以了解MySQL是如何处理该...

    spine优化.txt

    spine官方给的代码没有做缓存处理,每次加载动画文件都会去解析骨骼数据,造成当有多个动画同时加载时会卡顿。这里对spine做了缓存处理, 经过测试,同时加100个相同动画和加载一个基本没啥区别,不会卡顿

    SQL性能优化

    1 性能优化 1.1 避免频繁 commit,尤其是把 commit 写在循环体中每次循环都进行commit。 1.2 使用绑定变量,避免常量的直接引用。 示例:以下书写不符合本规范。 INSERT INTO sm_users (user_id, user_name, ...

    Oracle 高性能SQL引擎剖析:SQL优化与调优机制详解 (黄玮) 高清PDF扫描版

    oracle数据库的性能优化直接关系到系统的运行效率,而影响数据库性能的一个重要因素就是sql性能问题。本书是作者十年磨一剑的成果之一,深入分析与解剖oracle sql优化与调优技术,主要内容包括: 第一篇“执行计划...

    SQLServer2008查询性能优化 2/2

    《SQL Server 2008查询性能优化》指出的性能要点之一是数据库随着用户和数据的日益增多而进行扩展的必要性。你需要理解性能低下的起因。以及识别并修复它们的方法。《SQL Server 2008查询性能优化》将帮助你: 使用...

    汽轮机热力性能计算软件论文

    第三章 热力性能计算基本理论概述………………..…….….11 §3.1 计算方法的选择……………….………………….….11 §3.2 计算流程……………………….………………….….12 §3.3 软件功能和特点………………...

    Oracle 高性能SQL引擎剖析:SQL优化与调优机制详解

    Oracle数据库的性能优化直接关系到系统的运行效率,而影响数据库性能的一个重要因素就是SQL性能问题。本书是作者十年磨一剑的成果之一,深入分析与解剖Oracle SQL优化与调优技术,主要内容包括: 第一篇“执行计划”...

    论文研究-面向高光谱影像分类的高性能计算及存储优化.pdf

    通过实验论证分析表明:存储优化策略及其改进方法有效,并且对于多种不同尺寸与数据量的影像,CUDA架构下算法的运行效率都有了较为显著的提升。同时,基于CUDA的高光谱影像分类维护了计算结果的准确性。

    SQLServer2008查询性能优化 1/2

    《SQL Server 2008查询性能优化》指出的性能要点之一是数据库随着用户和数据的日益增多而进行扩展的必要性。你需要理解性能低下的起因。以及识别并修复它们的方法。《SQL Server 2008查询性能优化》将帮助你: 使用...

    Oracle性能优化

    CPU:在任何机器中CPU的数据处理能力往往是衡量计算机性能的一个标志,并且ORACLE是一个提供并行能力的数据库系统,在CPU方面的要求就更高了,如果运行队列数目超过了CPU处理的数目,性能就会下降,我们要解决的问题...

    关于服务器性能优化方法

    ## 什么是服务器并发处理能力? 一台服务器在单位时间里能处理的请求越多,服务器的能力越高,也就是...5. 吞吐量:服务器在一定时间内处理的请求数量,通常使用总请求数量除以总处理时间来计算。 6. 并发连接数:同时

    mysql数据库生产环境性能优化总结,纯干货!!!(三)

    mysql数据库生产环境性能优化总结,纯干货!!!(三) 从mysql配置的角度优化数据库 1.优化mysql的线程缓存 在生产环境中,会有很多请求连接到数据库。为此系统就需要创建线程处理这些请求。然而如果来一个请求就...

    网络篇 2:图片优化——质量与性能的博弈(2).md

    前端性能优化实践# 知识体系与小册格局 ## 写给读者 提起性能优化,大家现在脑海里第一时间会映射出什么内容呢? 可能是类似[“雅虎军规”](https://developer.yahoo.com/performance/rules.html?guccounter=1)和...

Global site tag (gtag.js) - Google Analytics