- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
论“大数据量处理性能优化”技术
论“大数据量处理性能优化”技术
作者:吴立民
关键词:数据库分区与批量处理,共享内存,二叉树,多进程,多线程。
摘 要:本文主要针对“计费系统”大批量业务与大数据量处理时,存在速度慢、处理能力低等问题,提出一系列性能优化技术,这些技术对性能优化是极其有效的,具有广泛的参考价值,保证可以大获收益。
技术背景分析
随着移动通信业务的迅速发展,移动用户数迅速膨胀,数据量越来越大。随着数据量的不断增长,移动通信业务管理信息系统的处理速度将成为系统的瓶颈,急需解决系统性能优化技术。MCM移动电话计费与营业管理信息系统已在全国近百个城市投用,目前对我们系统所存在的速度慢问题,一直未得到很好解决,用户投诉多。否则将严重影响MCM移动电话计费与营业管理信息系统进一步推广与应用。因此必须尽快解决大数据量处理时,如何来提高处理速度,如何来进行性能优化,急需解决!
影响系统处理能力的因素分析
对于一个系统来说,影响系统处理能力的因素可以分析以下,可以说主要包括以下几方面因素:
(1)所要处理的数据量,数据量越多,当然处理的时间就越长;
(2)所要处理的数据复杂性,数据处理越复杂,当然处理的时间就越长;
(3)登陆到系统的用户数,使用的人越多,系统处理速度当然就变慢;
(4)系统自身的IO能力;
(5)系统自身的CPU能力。
三、从硬件上提高系统处理能力
如何来提高系统的处理能力?可以从两方面来考虑,一方面是从硬件上来考虑提高系统的处理能力,这当然是最方便的;另一方面是从软件上来考虑提高系统的处理能力,这当然是最为麻烦的,需要更改以前程序的设计。
从硬件上考虑提高系统处理能力这也是我们在做系统集成方案时所需要考虑的,从硬件上应主要从以下几方面去考虑:
主机选型
IO能力
存储系统与存储空间
CPU数量
内存大小
网络传输速率
四、从软件上提高系统处理能力
在这里,我们需要重点讨论的是并不是通过提高硬件档次来提高系统的处理能力,而是如何通过优化软件设计来极大地提高整个系统的处理能力。其实,软件优化是无止境的,优秀的软件其性能总是比较好的。性能优化需要有丰富的软件开发经验,需要采用一些软件技术。本人经过多年潜心研究,总结出一套软件性能优化技术,可供MCM移动电话计费与营业管理信息系统与其他系统进行优化设计之用。
这些技术经过总结主要包括如下八大方面:
数据库表分区技术
大家都明白,对大表的操作,总是要比对小表操作要慢。利用数据库分区技术就是要做到对大表操作变成对小表的操作,从而来提高系统处理速度。
对表进行分区,必须提供分区关键字段,分区有多种方式:
按天分区
按月分区
按字段分区
对于复杂的分区,需要提供算法,应根据该算法算出其分区关键字段。在MCMBIS系统中,移动电话通话详单表一般应采用按天分区,若需要保存3个月的数据,就必须分为183个区。
基于按天分区以后,我们就可以做到按天处理,按天汇总与出帐。对于一天的数据量是非常小的,因此对于一天数据处理的速度将是非常快的。在天处理的基础上可以进行月处理与年处理,都会非常快。
遗憾的是:数据库表分区技术目前只局限于ORACLE8数据库,对于SYSBASE与INFORMIX等数据库都未提供数据库表分区技术。
共享内存技术
对于各种处理过程当中,总会用到许多参数表,例如:移动电话计费管理信息系统中的计费批价处理程序,需要许多参数表,如:计费规则表、长途费率表、农活费率表、优惠规则表、各种对照表等等。如果每次使用这些参数表都需要从数据库中读取,将会严重影响系统的性能与程序处理速度,系统IO瓶颈将会立即出现。
共享内存技术就是指在内存中开辟一块可任何进程所共享的内存区域,把那些需要经常访问的数据参数表一次读入到共享内存区中,以后所有对参数表的访问可以通过直接共享内存区的参数数据来实现,从而避免频繁对数据库的访问,大大减少对系统IO的占用,提高系统处理速度。
利用共享内存技术对系统性能的优化是非常明显的。
二叉树技术
读到内存当中的数据如何来存放又是一个技术问题,我们一般可以采用以下几种方案:
链表结构存放
数组结构存放
二叉树结构存放
对于链表结构可以临时申请内存,不需要预先申请内存,只要有内存可以把任何大的参数表一次读入到共享内存区中。缺点:查找数据时,需要从链表的头开始逐个向后匹配查找,直到找到为止,这样做速度一定会非常慢,对CPU的占用也比较大。但参数表数据非常小时(只有十几条记录)可以采用链表结构存放。
对于数据结构比较明显的缺点是:数组的大小是固定的,内存空间需要连续的,但参数表数据增加时,有可能会导致数组不够大,从而导致程序的错误。对于查找可以采用二分法来实现,速度也是会比较快。
对于二叉数结构有非常明显的优点,由于在内存中的数据按二叉树结构排列,查找
您可能关注的文档
最近下载
- 胎膜早破的诊断与处理指南.ppt
- 三位数内(三位数+两位数)加减法口算题 9900道题 .pdf
- CS8326S引脚功能音频功放.pdf VIP
- 交管12123学法减分复习题库500道含完整答案(历年真题).docx
- 2025年河南省郑州市【辅警协警】笔试预测试题(含答案) .pdf VIP
- 人教部编版六年级语文下册经典 诗歌鉴赏 练习真题带答案解析.pdf VIP
- 2024年注册土木工程师(水利水电)之专业知识题库含答案【新】.docx
- 人教PEP版四年级下册英语Unit1单元整体设计第1课时.pdf VIP
- 人教版高中英语单词表(必修1-选修8)打印专用 .pdf
- 1.6T LPO或CPO光模块的光信号弹性自适应处理方法.pdf VIP
文档评论(0)