扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
和创建小文件表空间差不多,只不过它的关键字是create bigfile tablespacebigfile表空间只能有一个数据文件,最大可以是2的32次方个blocks,对于默认8k大小的块,它的最大尺寸是32T
创新互联公司自2013年创立以来,是专业互联网技术服务公司,拥有项目做网站、网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元陆川做网站,已为上家服务,为陆川各地企业和个人服务,联系电话:18980820575
表设计可以采取拆分表的方式
纵向拆分表:根据字段拆分为多个表,每个表都有关联字段,可以将他们关联起来
(例如:订单表,几个根据字段拆分的表中都有1个订单号字段)
横向拆分表:不知道你具体什么数据,假定其中有时间字段,根据时间来拆分
(例如:1年有12个月,1个月的数据放入一个表中)
这个数据的多少和表空间的选择和你的数据量多少是没有太大关系的,需要统计你的数据量的大小。如果数据量很大,像你说的3*100*2000万*1.5k需要估算一下他是有多少G?这样才好设计表空间的分配。从10g开始有表空间支持一个大的数据文件,由多个文件组成肯定没有一个文件好管理,但是如果出问题了一个大数据文件损坏肯定造成的损失很大。这就是易维护性和安全性的取舍。不知道你们磁盘阵列是怎么做的如果没有raid1,数据又很重要的话,也许添加多个数据文件。但是多个数据文件的添加,每个数据文件的大小又受到OS的影响,这个和DB_block_size的大小又有关系,具体算法我不细讲,结论是单个数据文件最多32G。所以这个时候就看你的数据量大小了,你只说量,但是也许有lob字段之类的我无法估算大小,所以这个你自己算一下,如果需要的数据文件过多的话,你想方便维护也是可以使用大数据文件。sql如下:
SQL create bigfile tablespace giapblob ----------------表空间名字
2 datafile 'H:\ypx\pic02.dbf' ----------------数据文件名字路径
3 size 204800M ----------------200G的bigfile
4 autoextend on next 1024M -----------------扩展自动1G
5 maxsize unlimited -----------------不限最大
6 extent management local autoallocate; ----------------自动管理分配区间
其中上述只是从管理方便的角度考虑一个表空间的处理方法,一般单个表空间最大限制是1022个数据文件*4M数据块*DB_BLOCK_SIZE=32TB。如果数据量过大,必须采用多表空间。
另外也要考虑需求中的使用性能,如果表数据量过大,比如你们每天2000万,那有没有历史表数据?这个如果是OLAP还好说,OLTP可能要做分区表等等一系列的性能考虑,情况不同选择不同。
我认为第二个方案好点。你一张表的列太多了。这样子必然导致在执行操作的时候非常的慢。分成多个表的话会分担数据库的压力,读写都很快。
百万数据级的我做过。第一种方案的列数太多,导致表态庞大,读写都会很慢。第二种方案将表拆分,一方面在业务上做分割,另一方面读写速度确实会加快。
超大型系统的特点为: 1、处理的用户数一般都超过百万,有的还超过千万,数据库的数据量一般超过1TB; 2、系统必须提供实时响应功能,系统需不停机运行,要求系统有很高的可用性及可扩展性。 为了能达到以上要求,除了需要性能优越的计算机和海量存储设备外,还需要先进的数据库结构设计和优化的应用系统。 一般的超大型系统采用双机或多机集群系统。下面以数据库采用Oracle 8.0.6并行服务器为例来谈谈超大型数据库设计方法: 确定系统的ORACLE并行服务器应用划分策略 数据库物理结构的设计 系统硬盘的划分及分配 备份及恢复策略的考虑 二、Oracle并行服务器应用划分策略 Oracle并行服务器允许不同节点上的多个INSTANCE实例同时访问一个数据库,以提高系统的可用性、可扩展性及性能。Oracle并行服务器中的每个INSTANCE实例都可将共享数据库中的表或索引的数据块读入本地的缓冲区中,这就意味着一个数据块可存在于多个INSTANCE实例的SGA区中。那么保持这些缓冲区的数据的一致性就很重要。Oracle使用 PCM( Parallel Cache Management)锁维护缓冲区的一致性,Oracle同时通过I DLM(集成的分布式锁管理器)实现PCM 锁,并通过专门的LCK进程实现INSTANCE实例间的数据一致。 考虑这种情况:INSTANCE1对BLOCK X块修改,这时INSTANCE2对BLOCK X块也需要修改。Oracle并行服务器利用PCM锁机制,使BLOCK X从INSTANCE 1的SGA区写入数据库数据文件中,又从数据文件中把BLOCK X块读入INSTANCE2的SGA区中。发生这种情况即为一个PING。PING使原来1个MEMORY IO可以完成的工作变成2个DISK IO和1个 MEMORY IO才能够完成,如果系统中有过多的PING,将大大降低系统的性能。 Oracle并行服务器中的每个PCM锁可管理多个数据块。PCM锁管理的数据块的个数与分配给一个数据文件的PCM锁的个数及该数据文件的大小有关。当INSTANCE 1和INSTANCE 2要操作不同的BLOCK,如果这些BLOCK 是由同一个PCM锁管理的,仍然会发生PING。这些PING称为FALSE PING。当多个INSTANCE访问相同的BLOCK而产生的PING是TRUE PING。 合理的应用划分使不同的应用访问不同的数据,可避免或减少TRUE PING;通过给FALSE PING较多的数据文件分配更多的PCM锁可减少 FALSE PING的次数,增加PCM锁不能减少TRUE PING。 所以,Oracle并行服务器设计的目的是使系统交易处理合理的分布在INSTANCE实例间,以最小化PING,同时合理的分配PCM锁,减少FALSE PING。设计的关键是找出可能产生的冲突,从而决定应用划分的策略。应用划分有如下四种方法: 1、根据功能模块划分,不同的节点运行不同的应用 2、根据用户划分,不同类型的用户运行在不同的节点上 3、根据数据划分,不同的节点访问不同的数据或索引 4、根据时间划分,不同的应用在不同的时间段运行 应用划分的两个重要原则是使PING最小化及使各节点的负载大致均衡。 三、数据库物理结构的设计 数据库物理结构设计包括确定表及索引的物理存储参数,确定及分配数据库表空间,确定初始的回滚段,临时表空间,redo log files等,并确定主要的初始化参数。物理设计的目的是提高系统的性能。整个物理设计的参数可以根据实际运行情况作调整。 表及索引数据量估算及物理存储参数的设置 表及索引的存储容量估算是根据其记录长度及估算的最大记录数确定的。在容量计算中考虑了数据块的头开销及记录和字段的头开销等等。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流