zoukankan      html  css  js  c++  java
  • oralce 优化导入数据

    昨天半夜被叫起来查看主档数据同步报错,发现自己写的一个sql有问题,导致出现数据重复,没办法,因为要跑日结,所以,只能把以前的sql拿出来重新跑,其实那个sql执行太慢,一个商品规格表A里面有两千万的数据,原先的逻辑是:

    delete from A; insert into A select * from B;

    光执行 delete就花了半小时,然后插入又是20分钟,太慢,没办法,但是又快要跑日结,只能先这样用着。

    今天到公司,求教了一个oracle 大牛,在他的分析下,得出的结果是:

    1:存储过程中,既然用delete全表,那应该有trancate,这样快,虽然是没办法回滚,但是你可以在执行trancate之前把A表备份,insert table c as select * from A;

    2: execute   immediate 'truncate table A'; 

    3:因为每次都是trancate,所以:可以修改表A的结构,把表A设置为 nologing,意思是:不写日志

    alter table A move nologging;

    alter index PK_A rebuild nologging; 

    4:insert /*+append*/ into MBMST_PLU_TEST2    

                        select  /*+rule*/    * from B;

                        commit; 

    按规则优化是因为,可以尽可能的用到索引;

    这个再次执行存储过程,只用了三分钟,比以前的50分钟快了很多 

    -----------------------------------------------------------------

    什么是Oracle归档模式?
      Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里。一般数据库至少要有2个联机重做日志组。当一个联机重做日志组被写满的时候,就会发生日志切换,这时联机重做日志组2成为当前使用的日志,当联机重做日志组2写满的时候,又会发生日志切换,去写联机重做日志组1,就这样反复进行。
      如果数据库处于非归档模式,联机日志在切换时就会丢弃. 而在归档模式下,当发生日志切换的时候,被切换的日志会进行归档。比如,当前在使用联机重做日志1,当1写满的时候,发生日志切换,开始写联机重做日志2,这时联机重做日志1的内容会被拷贝到另外一个指定的目录下。这个目录叫做归档目录,拷贝的文件叫归档重做日志。
      数据库使用归档方式运行时才可以进行灾难性恢复。
    1.归档日志模式和非归档日志模式的区别
    非归档模式只能做冷备份,并且恢复时只能做完全备份.最近一次完全备份到系统出错期间的数据不能恢复.
    归档模式可以做热备份,并且可以做增量备份,可以做部分恢复. 
    引用

     http://space.itpub.net/540427/viewspace-678303

     

    alter table XXX nologging;
    alter index idx_xxx_1 rebuild nologging;
    alter index idx_xxx_2 rebuild nologging;

    insert /*+append*/ into XXX select * from YYY;

    commit;
     

     

  • 相关阅读:
    机器学习中的数学(1)-回归(regression)、梯度下降(gradient descent)
    机器学习中的数学(4)-线性判别分析(LDA), 主成分分析(PCA)
    机器学习中的数学(5)-强大的矩阵奇异值分解(SVD)及其应用
    Shell遍历文件的每一行[转载]
    从C中变化过来的各种语言的printf输出格式
    PostgreSQL中的引号和null
    linux入门基础_centos(二)--fdisk分区
    linux入门基础_centos(一)--基础命令和概念
    centos中设置apache显示目录列表
    转载:centos上yum安装apache+php+mysql等
  • 原文地址:https://www.cnblogs.com/6303c/p/2113009.html
Copyright © 2011-2022 走看看