• 物化视图索引引发的问题


      在一次上线升级后发现业务异常,一个查询接口不能用了,定位发现数据库异常,排查后惊奇的发现Oracle数据库的cpu使用率竟然达到了100%!再回头看这次改动的脚本,只有一个物化视图的重建而已。因为源库的表新加了一个字段,所以需要把本地数据库原物化视图删掉重建:

    drop materialize view mv_wlf_charge;
    
    drop table mv_wlf_charge;
    
    create table mv_wlf_charge as
    
    select "t_wlf_charge"."id" "id", "t_wlf_charge"."code" "code" from t_wlf_charge@DBLINK_WLF;
    
    create materialize view mv_wlf_charge
    
    on public table refresh fast on demand
    
    start with to_date('09-02-2017 21:09:00', 'DD-MM-YYYY HH24:MI:SS') NEXT SYSDATE + 1/144
    
    as select "t_wlf_charge"."id","t_wlf_charge"."code" from "t_wlf_charge".DBLINK_WLF "t_wlf_charge";

      因为物化视图创建后会生成一个同名的表,所以这里的脚本也操作了该表。但因为mv_wlf_charge表是个大表,接口调用量大,导致该表查询非常频繁,所以数据库立马就hold 不住了。其实原来被drop的物化视图是有索引的,这一重建把索引整没了。重新对mv_wlf_charge表建索引就可以了,它相当于就对物化视图建了索引。

  • 相关阅读:
    Mac OS X上安装 Ruby运行环境
    MAC 命令行工具(Command Line Tools)安装
    如何快速正确的安装 Ruby, Rails 运行环境
    安裝 Rails 開發環境
    用模块化编程
    阅读技术书籍
    NHibernate构建一个ASP.NET MVC应用程序
    SQL注入
    Redis
    Code digest
  • 原文地址:https://www.cnblogs.com/wuxun1997/p/6383940.html
Copyright © 2020-2023  润新知