数据库容量和内存测算的一些想法

前言:本文档主要针对数据库的容量和性能估算,结合网上的一些文章,整理如下:

 

一、数据库容量的计算

1、数据库容量核心分析对象是数据库表,及配合数据库表的包括视图、索引、日志等相关的附属信息。

数据库在计算数据库容量的时候提供了一个可计算的理论模型:数据库表是由col组成的,每个col都有相应的长度,可以算出每行的占用空间,再根据业务的情况,可以算出每个表每月或者每天的增长量。数据库中所有表的大小总量根据这个模型也就可以计算出来了;

例ORACLE数据库来说:char类型是多少字节就多少字节,而varchar类型可变长可以按2/3长度折算。number类型可变长度最多占用22字节,平均按10字节估算足够。date类型占用7字节。

进行粗略计算的时候可以直接参考ORACLE的数据字典,脚本如下:

select * from user_tab_columns where table_name='MSEG';

 

也可以通过数据字典计算的每行的平均长度进行计算

select num_rows,blocks,avg_row_len from dba_tables  where table_name='MSEG';

 

通过以上的办法可以得出初略的计算出每个表的大小,同时根据经验值,索引占用的总大小差不多为表总大小的1/3,这样大概就可以计算出整个数据库的总大小了。由于ORACLE数据类型的多样,表的数量繁多,所以通过这种方式进行空间的计算需要大量的工作,但是这至少提供了一种评估的模型;

 

2、另外一种计算的方法

当系统运行一段时间之后(比如三个月),这时候已经很清楚当前的数据总量和占用的总空间大小,通过对未来的业务估算可以很容易的计算出未来1年、3年的整体数据库容量大小;

比如一个系统上线3个月后,数据库的大小达到了300GB,如果这三个月的业务属于正常范围,那么很容易计算出每个月差不多增长100个Gb,但是行业之间总是有差异的,比我鞋服行业就有分春夏和秋冬的区别,一件衣服夏天的和冬天的主数据量是不一样的,按这种方式会有比较大的误差,但是数据量级别应该是正确的,对于这种系统运行完一年之后进行容量的评估将会比较正确;

 

这种方法计算容量有一个很明显的弊端:需要在系统运行一段时间之后才能计算出来,但是这个时候相应的硬件和存储都已经采购完毕了,只能在一段时间之后进行扩容。

 

3、参考同行业同系统之间的数据容量

这是一个最便捷的办法,在上SAP之前公司内部最大的系统数据也才500GB左右,所以在脑子里面对数据容量的大小也是一直停留在百GB的水平,刚好同行业中的其他公司也上了SAP,经过了解他们上SAP的模块和我们差不多,运行一段时间之后数据量已经达到了TB的水平了,每天数据的增长量是GB级别,这样一下子对整个系统的数据量级别有了个很明显的认识。在采购硬件的时候就不会有太大的偏差。

 

二、内存需求的计算

涉及到内存的缓存命中率的关系,数据库系统的内存的分配跟数据库总容量大小有很大的关系,行业的经验是当缓存容量达到数据库总容量的5%时性能较好,因此确定了数据库的大小之后缓存的大小也就可以的出来了。

例如在aix平台下面一个1TB的数据库

1、操作系统本身所占用的内存 128MB

2、应用程序所占的内存   256MB

3、数据库缓存 50GB

4、合理的内存利用率75%

总计 67GB

考虑到数据的保存时间5年(一般3到5年要做一个数据结转),因此数据库最大容量有可能达到5TB,所以该主机的内存达到300GB可以满足未来5年的业务需求。

 

总结:站得高尿得远,dba主动去考虑一下整体的it架构需求,当这种思考点多了站的高度也就高了。因为整个IT架构里面dba属于一个很重要的岗位,性能的规划、存储容量的规划只有dba最清楚,当dba不参与的时候,就变成了“猜”,根据系统的重要性去采买硬件、几个cpu、多少内存、多少存储,这些都是凭着系统的重要性和领导的重视程度、预算的多少,供应商当然也会提供相应的参考方案,但是他们提的方案肯定是越高越好的。

当it的领导不懂技术的时候,dba的价值有时候就会被低估,当dba自身的高度提升到it的管理层面的时候,这个时候自身的价值才能充分展示出来,因为有些工作除你dba,其他人做的都没你好。

........................................................................................................................................................................

本文作者:JOHN,某上市公司DBA,业余时间专注于数据库的技术管理,从管理的角度去运用技术。

ORACLE技术博客:ORACLE 猎人笔记               数据库技术群:367875324 (请备注ORACLE管理 ) 

........................................................................................................................................................................

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值