数据库中的热点问题

原创|行业资讯|编辑:陈俊吉|2016-10-19 09:39:03.000|阅读 794 次

概述:热点是数据库应用中常见的问题之一。在系统并发量比较小的时候,通常感觉不到它的存在,而当并发请求急剧增加的时候,响应时间被大大地拉长,极端情况系统挂起。

相关链接:

热点是数据库应用中常见的问题之一。在系统并发量比较小的时候,通常感觉不到它的存在,而当并发请求急剧增加的时候,响应时间被大大地拉长,极端情况系统挂起。

热点可能在记录上,可能在数据或索引页面上,也可能在其它数据库对象上,比如缓冲池、程序包,甚至到数据库之下的操作系统层。常见的是前两种。

典型的记录热点场景有:应用维护流水号,或者余额控制,相关信息保存在用户表的记录中,每次交易都作UPDATE操作。UPDATE会在记录上加独占锁,会堵塞其它应用对同一条记录的UPDATE操作,这个独占锁要等整个事务提交或回滚后才会释放。假设这个事务执行时间是10毫秒,那么这个系统能支撑的最大交易吞吐量是100笔/秒,更多的交易请求进来将处于等待状态。

如何能够知道系统存在这种热点问题? 如果做数据库监测的话,可关注并发应用数、应用等锁次数和平均锁等待时间,

如果等锁次数及等待时间随应用并发增加而增加的话,很有可能存在这种问题。

也有可能你的系统负载一直不高,看不到上述变化,又怎么能知道系统有这种风险?

大数据分析

在DB2中可用命令db2pd –db -tcbstats获取表相关的操作信息,在“TCB Table Stats:”段内容中有表上发生UPDATE的次数,用次数除以表的记录数,可计算出平均每行记录被更新的次数,如果某表上这个指标较高,意味着可能有热点记录问题。当然这个办法不一定很准确,比如表中有很多条记录,其中一条或几条被更新的次数远高于其它,便不能用这种方法识别出来,更准确的方法是捕捉到每一条SQL语句,分析UPDATE操作指向的记录。 预先知道隐含问题,就可以改进系统,避免出现类似“双十一”或“秒杀”活动对系统带来的冲击。

改进方法就是去除热点或分散热点。比如可用数据库的SEQUENCE帮助产生流水号,数据库的SEQUENCE可在内存一次产生多个流水号,个数由CACHE指定,并发高的系统可加大CACHE;分散热点是将一条记录拆成多条记录,根据传入参数更新对应记录。

除记录热点外,还有可能出现数据页面或索引页面热点。比如多条记录保存在同一个数据页面,虽然并发应用更新的是不同记录,但数据库内部在更新数据页面内容时会加LATCH以避免内容错乱,用一般的数据库监控可能不能发现此类问题,使用db2pd -latch有可能看到冲突。解决办法是减少同一个数据页面内保存的记录数,比如(ALTERTABLE myTable PCTFREE 90; REORG TABLE myTable),重组之后每个页面只用10%的空间保存记录。当然你也可能有其它方法达到此目的。

索引页面的热点主要发生在索引字段内容一直增加或减少的情况,比如时间戳或流水号上的索引,每次INSERT进来的记录,其相关索引内容都落在最后的索引页面中,这在单服务器的数据库中可能没太大问题,但在集群环境中,这个热点问题会被放大。DB2中有一种RANDOM INDEX可规避这个问题,比如:CREATEINDEX myIdx ON myTable (seqno RANDOM);RANDOMINDEX是基于变换后的内容构建索引,因此它失去了原来的顺序,避免了索引页面热点,但只适合“=”条件查询,BETWEEN及“>”之类查询条件不能从这种索引中得到原来的好处。

如果能在设计开发阶段就考虑到些热点问题,避开它,就更好了。

如果您碰到其它一些热点问题,也可以拿出来跟大家分享一下。

慧都控件网年终促销第一波已开启,全场6折起,豪礼抢不停>>>

截止时间:2016年10月30日

更多大数据与分析相关行业资讯、解决方案、案例、教程等请点击查看>>>

详情请咨询在线客服

客服热线:023-66090381



标签:大数据BI数据库数据可视化数据分析

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果

登录 慧都网发表评论


暂无评论...

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
title
title
相关厂商
相关产品
Cognos Analytics

工业4.0优选产品 | 商业智能和绩效管理软件领导者,帮助企业成为业绩最佳的分析驱动型企业

SPSS Modeler

工业4.0优选产品 | 在历史数据中发现规律以预测未来事件,做出更好的决策,实现更好的成效

IBM BigInsights for Apache Hadoop

经济高效地存储、管理和分析大数据

IBM InfoSphere Streams

高效捕获和分析动态数据的软件平台

DB2 with BLU Acceleration

使用动态内存中列式技术加速分析数据

IBM MQ

借助集成式消息传递实现企业互联

InfoSphere DataStage

助您发现、充实、集成和管理数据的整个生命周期

Watson Analytics

具备理解,学习和推理能力,实现更智能的人机互动,帮助人们做出更好的决策

InfoSphere Change Data Capture

在跨平台和异构数据库环境中实现变化数据的实时复制

i2 Analyst's Notebook

i2 Analyst's Notebook 能够及时提供具有执行力的情报,帮助发现、预测、预防和阻止犯罪、恐怖活动和欺诈活动。

购物车 在线客服 在线QQ 电话咨询
400-700-1020
反馈
在线客服系统
live chat