zoukankan      html  css  js  c++  java
  • [Oracle]Master表字段扩张时的对应方法

    Master表字段扩张时的对应方法

    如果Master表的数据量很大,Master表中的列,宽度扩张了,MVIEW表如何对应处理?

    此时,重建MVIEW可能会耗费很长的时间。

    可以采用 alter materialized view modify 的方式来进行。不过,没有官方文档支持。

    create table TEST(id integer, TEST_NUMBER NUMBER(18,6));

    insert into TEST
     select i+j, i+j
       from  (
              with DATA2(j) as (
                                select 0 j from DUAL
                                  union all
                                select j+1000 from DATA2 where j < 999000
                               )
              select j from DATA2
             ),
             (
              with DATA1(i) as (
                                select 1 i from DUAL
                                  union all
                                select i+1 from DATA1 where i < 1000
                               )
              select i from DATA1
             );


    ALTER TABLE TEST ADD CONSTRAINT PK_TEST PRIMARY KEY(ID);
    CREATE MATERIALIZED VIEW LOG ON TEST;
    CREATE MATERIALIZED VIEW MV_TEST REFRESH FAST AS SELECT * FROM TEST;

    set timing on

    如果Master表的字段扩张了 ,可以在MVIEW对应的字段也扩张:


    SQL> ALTER MATERIALIZED VIEW MV_TEST MODIFY (TEST_NUMBER NUMBER(22,6));
    time elapsed: 00:00:00.08

    扩张后确认:
    SQL> exec dbms_mview.refresh('MV_TEST');
    SQL> exec dbms_mview.refresh('MV_TEST','C');

  • 相关阅读:
    XML decoding and encoding
    提高性能的BULK COLLECT语句和FORALL语句 IN PLSQL
    Dynamic Cursor in plsql (2)
    Dynamic Cursor in plsql (1)
    Cursor-----from cyber
    Viewpager结合fragment实现底部导航
    柱形图,饼图等
    Numpy的使用
    BP神经网络及其算法优化
    R语言结合概率统计的体系分析---数字特征
  • 原文地址:https://www.cnblogs.com/gaojian/p/3_15561107161.html
Copyright © 2011-2022 走看看