最近有一个项目,要用oracle存储一个通讯系统所有流经的数据包,设计存储容量1T,raid0+1硬盘,数据按时间轴增长,那么如何设计存储结构,才能保证存储查找效率以及可靠性等(通常是不断监控并且写入,有时需要按时间查询,超过容量或时间后把最旧的数据删除)。我们考虑采用以下一些oracle设置:
1)使用归档模式
2)数据存储在专用表空间
3)使用序列做主键
4)使用存储过程提高写入效率等
5)数据表和索引分离存储到不同表空间问题是:
1)采用归档模式后,可靠性得到加强,但大量的日志文件占用存储空间,会否影响硬盘容量?
2)是否有必要使用动态生成新表来存储数据的方式,这个会否提高后来的查询删除效率,它同时提高了控制的复杂度,是否有价值?
3)这种数据以二进制存储还是转为字符串存储好?
4)表空间数据文件怎么设置为好?需要保证:
1)写入性能
2)可靠性
3)查询效率系统:
Windows 2003 Server
Oracle 10g通信服务开发:
C++、ACE请教高手,这种情况下通常采用什么存储结构为好,怎样保证应用系统(主要是保持监控连接和插入数据)的性能和可靠性,请有经验的达人赐教。
1)使用归档模式
2)数据存储在专用表空间
3)使用序列做主键
4)使用存储过程提高写入效率等
5)数据表和索引分离存储到不同表空间问题是:
1)采用归档模式后,可靠性得到加强,但大量的日志文件占用存储空间,会否影响硬盘容量?
2)是否有必要使用动态生成新表来存储数据的方式,这个会否提高后来的查询删除效率,它同时提高了控制的复杂度,是否有价值?
3)这种数据以二进制存储还是转为字符串存储好?
4)表空间数据文件怎么设置为好?需要保证:
1)写入性能
2)可靠性
3)查询效率系统:
Windows 2003 Server
Oracle 10g通信服务开发:
C++、ACE请教高手,这种情况下通常采用什么存储结构为好,怎样保证应用系统(主要是保持监控连接和插入数据)的性能和可靠性,请有经验的达人赐教。
解决方案 »
- Oracle 天内按小时分组查询问题
- win7下oracle安装出现的问题
- PL/sqldevelp 调试报错
- oracle主备的问题,求高手来帮忙解决。
- 导入数据库出错--IMP-00017: 由于 ORACLE 错误54,以下的语句失败 alter,各位大哥帮帮忙!急急
- oracle同时导入多个文件到多个表中
- 要完成这个功能,SQL语句该怎么写?
- 昨天已经跳过楼了,今天还得去么?oracle连接问题,请大家赐教!
- Oracle9i中,在SQL*PLUS中能运行的程序一定能在SQL*PLUS WORKSHEET中运行吗?
- 各位Oracle大虾,现在Oracle10g,我看Oracle9i的书可以吗?
- 关于预连接方式的问题
- 求一条 sql语句 急急!
ANSWER: 这个我觉得可以不用担心,在不行用磁盘阵列,那总够用了吧!
2)是否有必要使用动态生成新表来存储数据的方式,这个会否提高后来的查询删除效率,它同时提高了控制的复杂度,是否有价值?
ANSWER: 建议不用要动态表生成!因为考虑数据量日后越来越多,要提高查询效率可以建分区表等
3)这种数据以二进制存储还是转为字符串存储好?
ANSWER: 个人认为用字符比较好!
4)表空间数据文件怎么设置为好?
ANSWER: 表空间设置为手动增加!不要设置增长!
1. 直接使用祼设备
2. 条块化(stripping)关于其他问题,做一下简要回答:
1)采用归档模式后,可靠性得到加强,但大量的日志文件占用存储空间,会否影响硬盘容量?
答:归档文件可以存放到其他地方,对生产性的数据库来说,归档是必须做的,这个没什么好考虑
2)是否有必要使用动态生成新表来存储数据的方式,这个会否提高后来的查询删除效率,它同时提高了控制的复杂度,是否有价值?
答:按时间分区,这样,你随时可以把不需要的时间的数据拆卸下来,另做保存,等需要的时候再放上去
3)这种数据以二进制存储还是转为字符串存储好?
签:用二进制存储比较省空间
为了便于处理和读取,我们以前的系统保存类似数据都是转为16进制字符存储的,但是很明显,这样做存储空间大了一倍,所以较难取舍。关于写入性能:
我们的系统实时监控的时候,最大每秒需要4000次写入,被监控的最大通信带宽为 26M字节(也就是说,最大需要每秒写入oracle 26M数据,这还是二进制的方式,写成字符的话需要每秒写入52M,算上其他辅助字段,可能还要略大些!),当然,也不是随时都有这么大的写入要求,但是峰值还是有的。有没有高手做过高速写入的实例,这样的情况下,一般的oracle数据库I/O性能 能否承受呢?