`
pl821229
  • 浏览: 18487 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

oracle技术点滴--随便写写

阅读更多
1.如oracle运行在archive log下,为了加快某些情况下sql执行速度。可暂时对某表采用nologging语句,如:alter table emp nologgingcreate table emp (xx int) nologging,再执行insert /*+ append */ into XXXX。 但从数据维护的角度来说,并不建议采取此种方式。因此类操作将虽然大量减少了redo信息,但数据可稳定效得不到保证。


2.索引虽然在查询时能大幅提高查询速度,但索引其实也占据了大量的存储空间。特别是某此数据量极大的情况下表(超过几百万乃至上千万条行记录),在执行大批量insert语句将极其影响插入速度。此等操作应在系统空闲时执行,可先将索引删除,待数据插入完毕后,再索引重建。


3.统计实时海量数据报表时,可考虑表分区。以前有个项目的数据库设计为:
  AAA00表
  AAA05表
  AAA10表
  AAA15表
  AAA20表    
  AAA25表------>BBB小时表------>CCC天表
  AAA30表
  AAA35表
  AAA40表
  AAA45表
  AAA50表
  AAA55表
  解释如下:
  AAA为分钟表,粒度为5分钟。BBB为小时表,粒度为1小时。CCC为天表,粒度1天。那相应1天AAA表将会有288个,BBB表将24个,CCC表1个。靠oracleJOB定时执行存储过程(交换分区),AA表转换到BBB再CCC表,转换成功完成AAA表及BBB表数据将清空。而ccc表将为当天统计数据。
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics