« 前一篇:慢慢恢复中
后一篇:个人首个C项目上线 »

统计sql小结 @ 10/19/2009

分享
1 批量思想,尽量一次表IO,计算尽量多的数据,多使用case when,减少表IO
    实践证明统计的瓶颈不在计算上,而是在IO上,所以要尽量减少表的读取。

2 能用insert不用update,大数据量表避免使用update,用delete和insert来规避
  有这种情况A表包含10个字段,其中第一步可以准备其中4个字段的数据,新增到中间表B,然后第二步可以得到另外6个字段的数据,新增到中间表C
  然后B,C表的数据新增到A表,这里需要联合B,C表一次insert入A表中,而不能先insert B到A表,然后再update C表到A表
 
2 引入中间表 联合查询多张大表时,要引入中间表,两两联合,一步步算出来;

3 要注意加入提示:
  INSERT INTO /*+ append */    去掉不必要的日志
 
  /*+ full(a) */  全表扫描,不走索引(有index的情况下一定要加这个)
 
  /*+ parallel(a 4) */ 并行处理(4个线程同时处理),读取大表的时候要加
 
  /*+ use_hash(a, b) */ hash关联,提高联合查询效率(会先把小表hash存储)
发布于 10/19/2009 11:52:48 | 评论:1
Richard @ 10/19/2009 17:22:50
沙发

看帖要回帖...