在2亿多条的表上创建索引,如何提高速度

[复制链接]
查看11 | 回复9 | 2013-2-25 14:51:24 | 显示全部楼层 |阅读模式
在一张超过2亿条数据的历史表上创建索引(非分区表),刚开始报出TEMP表空间不够的错误,然后创建了一个30G的TEMP表空间。
到现在为止,运行了3个小时,还没有成功。有什么啥办法提高创建的速度?

回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
就是nologging,parallel之类的,也可以改下sort_area_size
回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
由于B-TREE建索引时要先进行外排序,所以占用TEMP表空间
parallel或许有用
回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
PGA不够大了吧,出现了sort (disk)
回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
在线系统?最好加上online选项
回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
dingjun123 发表于 2012-11-6 14:41
就是nologging,parallel之类的,也可以改下sort_area_size

sort_area_size设置多少合适那。非在线系统,是在开发环境。
回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
加内存条、cpu
回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
可以关注一下创建索引的语句中的几个可选项:
nosort, 不排序
nologging, 不创建索引
compute statistics,不产生统计信息
online,允许DML操作与创建索引操作同时进行
parallel,我进程产生索引
回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
〇〇 发表于 2012-11-6 21:21
加内存条、cpu



回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
很奇怪还可以NOSORT,查了一下原来要求物理存储是有序的。
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行