高并发操做和查询的数据采集和查询系统的oracle数据库设计建议

1使用分布式垂直切分。因为已经使用了Oracle RAC 提供分布式的集群服务。因此对于产生大数据和高并发的表,能够采用数据库垂直分片(好比1-500号集中器的数据采集到数据库A500-1000B)。数据分片,是将总体数据分摊在多个存储设备上,这样每一个存储设备的数据量相对就会小不少,以此知足系统的性能需求。分区能够提升可管理性、性能与可用性,从而给各类各样的应用程序带来极大的好处。固然一个合理的分片策略是最关键的。不当的分片策略有可能反而带来性能的降低。数据库

2使用主从表。主从复制、读写分离,减小生产系统压力。也就是说,对应须要频繁进行写操做的数据表,为该表设置从表。每5分钟将主表数据同步到从表。全部查询的操做都对从表进行。这样写操做针对主数据库表,读则是从从数据库。虽然读操做略有延迟,由于集中器自己就是20分钟提交一次数据,因此只要同步时间在20分钟之内,对数据的实时性并不会产生大的影响。可是这样大大提升了检索的效率。缓存

3使用分区表。避免一个表过大,当期数据与历史数据分离,提高存储和处理效率。服务器

虽然Oracle单张表的最大记录条数十3.6E+17。但一个表一旦数据量达到必定规模。性能方面必定会出现问题。经过使用分区表,将当期数据与历史数据分离,这样是能够大大提升检索和操做的效率的。并发

在分区表的基础上进行数据存档是对过时的数据进行分开存储,固然存储的时间根据实际需求制定。这须要对数据以及应用程序对数据的使用状况,有很是充分的了解。好比电子商务公司的大数据处理只将3个月内的数据存入活跃数据库,而旧订单则被存入单独的存储。这个途径一样能够运用于抄表系统的数据仓库。固然能够存储更多的近期数据用于报告和查询,使用频度少的数据能够被存入单独的存储设备。分布式

4按期进行数据清除。有时候咱们一直忙于收集数据而不清楚究竟须要保存多少数据,若是你存储了很是多用不到的数据,那么这将毫无疑问的下降你有效数据的处理速度。在业务需求的基础上审查数据是否能够被删除,从中分析出须要储存数据的类型,不只会节省存储空间,一样会提高有效数据的分析速度。主要的方法是给数据仓库创建附加列,好比created_datecreated_byupdate_dateupdated_by。经过这些附加列能够对数据进行阶段性的访问统计,这样就能够清楚数据的有效周期。这里须要着重对待的是数据清除的逻辑。比较好的是Oracle自身就具有了强大的归档能力,执行alter database archivelog;便可将数据库设置成archive log modeOracle将会自动归档。memcached

5使用memcached缓存系统Memcached是一个通用的分布式内存缓存系统,主要用于减小动态应用的数据库负载,提高访问数据库的速度,它具备高性能和分布式等优势。。因为Memcached能够有效减小Web站点数据库的负载,它已经成为目前主流的互联网网站所采用的缓存解决方案。Memcached已是一种很是成熟的缓存解决方案产品,它被普遍应用于负载大、并行程度高的网站之上,许多著名的网站,如FacebookSina、豆瓣等都在其网站实现中或多或少的使用了Memcached产品。经过使用Memcached缓存系统能够大大提升服务器的响应速度。在用户数据也都比较复杂、用户数据之间的关联度也比较高、并且须要对数据库进行频繁的更新或检索操做,采用Memcached机制正好能够很好的解决这些问题。高并发

6使用物化视图。Oracle的物化视图提供了强大的功能,能够用于预先计算并保存表链接或汇集等耗时较多的操做的结果,这样,在执行查询时,就能够避免进行这些耗时的操做,而从快速的获得结果。增长和删除物化视图不会影响应用程序中SQL语句的正确性和有效性;物化视图须要占用存储空间;当基表发生变化时,物化视图也应当刷新。性能

7使用数据冗余化设计。经过数据库字段的冗余化设计,减小表间链接查询。大数据

在插入数据的时候,在多个表内生成同种字段的数据,从而使得在查询时,减小表链接的格式,从而可以提升查询的效率,减轻数据库的查询负荷。优化

8合理使用索引。支持混合索引机制,集成BitmapB-Tree技术。经过索引的合理设置,能够大大提升查询效率。好比Bitmap索引比较适合决策支持系统,由于它虽然更新比较耗时。但对静态数据查询效率很是高。而B-tree 索引很适合 OLTP 应用程序,由于OLTP 系统常常更新和删除。

9SQL优化。查询时,避免子查询,少用模糊匹配,少用*,不要union等;操做时,避免长事务,长锁,用行锁定替代页锁定等。

相关文章
相关标签/搜索