怎么提高对一个大表的分组统计性能?

[复制链接]
查看11 | 回复9 | 2005-10-30 17:05:33 | 显示全部楼层 |阅读模式
需要将一个大表的某些字段group by 后插入另一张表,如
insert into table
select a,b,count(*),sum(c) from bigtable
group by a,b
并行?sort_area_size?还能有什么?
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
insert
/*+ parallel (bigtable, n) */
into table
select a,b,count(*),sum(c) from bigtable
n 代表所用CPU的数目,进行并行的处理
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
这样是进行插入吧
但目前
瓶颈不在insert
在于group
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
我记得不太清了,好像group by 是不用索引的,只是跟排sort_area_size的大小有关.
你建完索引分析后先select ,看看执行计划是否用上了索引.
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
建索引不行
因为字段太多了,我上面的只是举例
而且还有c字段呢,
难到通过只通过索引扫描也能得到结果?
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
那建议你用 snapshot
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
最初由 biti_rainy 发布
[B]那建议你用 snapshot [/B]

不太明白,可以详细点吗
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
就是 group by后的结果
这样每次查询从 snapshot 来而不用查询 原始表
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
好办法
可惜业务上不允许
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行