Mik*_*use 6 oracle oracle-10g
我的一个(Oracle 10g)表随着时间的推移增长到大约 8.4 亿行。其上的一个索引 (DATE, NUMBER(38)) 目前占用 38GB。我想更改索引(例如,我认为它可以很好地利用 COMPRESS)但它因与 TEMP 已满相关的错误而失败 - 目前为 4GB。
有没有办法建立一个大于 TEMP 的索引?我意识到我可以导出表,截断它,创建新的和有趣的索引,然后重新加载,但这超出了我的承受能力......
Gai*_*ius 10
Oracle 中的 TEMP 用于什么?作为进行不适合主内存的排序的临时区域。所以问题是你需要做一个大的排序来创建你的索引,而你没有足够大的 PGA 来做它。所以你的选择是:更大的 PGA 或“临时临时”表空间;只需创建一个足够大的表空间,使其成为您用户的临时表空间 ( ALTER USER xxx TEMPORARY TABLESPACE temptemp;) 来构建索引,然后将您的用户设置回去并删除它。
ALTER USER xxx TEMPORARY TABLESPACE temptemp;
小智 1
你当然可以。为您的会话和大量 PQ 显式设置 sort_area_size。添加一些临时文件可能会更容易。
归档时间:
15 年,2 月 前
查看次数:
3726 次
最近记录: