ITPub博客

首页 > 数据库 > Oracle > 批量导入某大张表数据的时候的最佳实践

批量导入某大张表数据的时候的最佳实践

原创 Oracle 作者:lusklusklusk 时间:2017-07-19 09:08:17 0 删除 编辑
批量导入某大张表数据的时候的最佳实践:
1、把表上所有的索引都设置为unusable: alter index <index name> unusable;
2、做批量导入
3、rebuild索引:alter index <index name> rebuild parallel nologging;
 




演示如下
SQL> create table emp as select * from employees;
Table created.

SQL> create index idx_emp_job on emp(job_id);
Index created.

SQL> select bytes from user_segments where segment_name='IDX_EMP_JOB';
     BYTES
----------
     65536

SQL> alter index idx_emp_job unusable;
Index altered.

SQL> insert into emp select * from emp;
107 rows created.

SQL> /
214 rows created.

SQL> /
428 rows created.

SQL> /
856 rows created.

SQL> /
1712 rows created.

SQL> /
3424 rows created.

SQL> /
6848 rows created.

SQL> /
13696 rows created.

SQL> /
27392 rows created.

SQL> /
54784 rows created.

SQL>
SQL>
SQL>
SQL> /
109568 rows created.

SQL> commit;
Commit complete.

SQL> select bytes from user_segments where segment_name='IDX_EMP_JOB';
no rows selected

SQL> select status from user_objects where object_name='IDX_EMP_JOB';
STATUS
-------
VALID

SQL> alter index IDX_EMP_JOB rebuild parallel 4 nologging;
Index altered.

SQL> select bytes from user_segments where segment_name='IDX_EMP_JOB';
     BYTES
----------
   5373952

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30126024/viewspace-2142268/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Welcome to Lukes DB HOME。11G OCM, 5年以上DBA工作经验,博客仅记录自己的一个学习过程,不代表完全准确,如有需要,欢迎转载。

注册时间:2015-02-02

  • 博文量
    349
  • 访问量
    351667