大数据量数据库解决方案
1 解决32G数据文件上限问题
    Oracle的默认数据块大小为8k,导致oracle单个数据文件的上线是32G。我们可以通过增加新数据文件到表空间来扩充表空间容量。方法如下:
1 新建表空间:
手机上怎么查核酸检测结果
  CREATE TABLESPACE TBS_KK DATAFILE ‘D:\DEMO\TBS_HIKVISION.DBF’ SIZE 30G;
注意:TBS_KK为新建表空间名;DATAFILE为对应数据文件的绝对路径,要求出最后的数据文件名之外的路径必须在操作系统中存在,即oracle不会新建不存在的目录;由于表空间是oracle存储数据的逻辑单位,相当于windows的盘符概念,所以要求在创建表空间时必须制定DATAFILE参数,即必须指定数据文件;数据文件大小原则上不许超过32G。抵押贷款怎么办
汶川地震时间2 指定系统默认表空间
      ALTER DATABASE DEFAULT TABLESPACE TBS_HIKVISION;
    注意:执行该命令的用户必须具有dba角,并且表空间必须是已建表空间。
    执行了这条语句之后,用户新建的表如无特殊指定,都会新建在制定TBS_HIKVISION表空间中。
3 扩展表空间
      有三种方法可以扩展表空间
1) 增加数据文件
ALTER TABLESPACE TBS_HIKVISION ADD DATAFILE ‘D:\DEMO\USER02.DBF’ SIZE 30G;
2) 手工改变数据文件大小
ALTER DATABASE DATAFILE ‘D:\DEMO\USER01.DBF’ RESIZE 20G;
3) 设置数据文件自动扩展
ALTER DATABASE DATAFILE ‘D:\DEMO\USER01.DBF’ AUTOEXTEND ON NEXT 10M MAXSIZE 30G;
其中NEXT为每次扩展的步长,MAXSIZE为最大扩展容量。不建议采用此方法,因为如果数据量很大,也就是说正常运行oracle的压力也是很大的,自动扩展不利于oracle的磁盘碎片整理,而且扩展时会降低其他oracle操作的速度。
    综上,数据库表空间容量问题可以解决。另外还有一种快速解决方法。
    Oracle推出大容量表空间专门解决大数据量表的存储问题,方法如下:
        CREATE BIGFILE TABLESPACE TBS_BIG_HIK DATAFILE ‘D:\DEMO\BIG.DBF’ SIZE 32T;
    优点:显著提高存储能力,oracle对于一个大数据文件的使用效率要远高于多个小数据文件的效率。
    缺点:只能包含一个数据文件(即要求操作系统一个盘符就要满足数据文件容量,这会导致一些磁盘阵列上无法直接使用或导致一些盘符闲置)
2 用分区表来优化table1和table2存储:
    Table1和Table2表存储大量数据,并且这两个几乎不会出现delete和update,而insert量特别大。针对这个特点,可以采用以下几个方法优化。
分区表空间是Oracle专门针对大数据量数据库应用的解决方案,可分为范围分区、散列分区、列表分区、组合分区四种。其中范围分区比较适合我们的应用,范围分区会把表的数据按照不同范围进行划分来存储,这样不同范围的数据会比较均衡,并且利于检索。
我的中国梦作文600我们可以把过车时间按照节点来划分:
ALTER SESSION SET NLS_DATE_LANGUAGE = AMERICAN;
ALTER SESSION SET NLS_TIMESTAMP_FORMAT = ‘YYYY-MM-DD HH24:MI:SS.FF’;
create table TABLE1
(
  VEHICLELSH    INTEGER not null,
  …
  PASSTIME      timestamp(3),
  …
  primary key (PASSTIME,VEHICLELSH)
)PARTITION BY RANGE(sales_date)(
PARTITION  p1  VALUES  LESS  THAN  (‘2010-1-1 00:00:00.00’) TABLESPACE USER01,
PARTITION  p2  VALUES  LESS  THAN  (‘2010-2-1 00:00:00.00’) TABLESPACE USER02,
PARTITION  p3  VALUES  LESS  THAN  (‘2010-3-1 00:00:00.00’) TABLESPACE USER03,
PARTITION  p4  VALUES  LESS  THAN  (‘2010-4-1 00:00:00.00’) TABLESPACE USER04,
);
这样,在insert新数据的时候,速度并不会受分区表的影响,而在按时间查询过车信息时,对大大降低数据库的I/O次数。而在应用程序上,所有SQL语句不需要做任何修改。
同样,可以给分区表简历分区索引,简历分区索引时,会为索引的每一个分区简历相应的分区段。方法如下:
CREATE INDEX IND_VEH_PASSTIME ON TABLE1(PASSTIME) LOCAL;
如果不加LOCAL,oracle会建立为全局索引,那样不会节省查询时间。
同样table2也可以采用这种方法来优化。
3设置数据块参数
麻辣龙虾如果pctfree和pctused参数设置不当,会大大降低数据库的效率。我们的table1和table2属于经常增加表记录(insert),但不经常修改原有记录的表(update),建议将pctused设置为80,pctfree设置为10,这样有利于存储空间的充分利用。
4 创建专用临时表空间
当执行排序操作时,服务器进程首先将临时数据放在PGA中,当PGA不足以容纳将要排序的临时数据时,服务器进程会建立临时段,并将这些临时数据存放到临时段中。系统没有指定临时表空间,系统默认临时表空间很难容纳临时数据,当数据量上百万时,排序操作十分缓慢,需要24秒。
高粱种子
Oracle推荐使用本地管理表空间的模式,下面是建立临时表空间方法:
CREATE TEMPORARY TABLESPACE TEMP_KAKOU TEMPFILE 'D:\IVMSDB\TEMP.DBF' SIZE 50M UNIFORM SIZE 256K;
修改数据库默认临时表空间
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP_KAKOU;
这样可以加快排序的速度。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。