zoukankan      html  css  js  c++  java
  • oracle物化视图和视图的数据不一致

    问题: oracle物化视图和视图的数据不一致

    问题描述

    一个考试系统, 创建了一个统计分数的视图: v_score, 根据这个视图创建了一个物化视图:

    -- drop materialized view mv_score;
    create  materialized view mv_score
    refresh complete on demand    
    start with sysdate 
    next trunc(sysdate,'mi')+1/24 /* 每隔一小时刷新一次  */
    as
    select * from v_score;
    

    创建物化视图之后立即查询视图和物化视图:
    (立即查询避免物化视图没有刷新导致的问题)

    select * from v_score ;
    select * from mv_score ;
    

    查询出来的两个结果不一致:
    视图的结果:

    物化视图的结果:

    其中count_score_xx字段表示各个分数段的数量, score_xx_avg表示各个分数段的平均值;
    count_score_xx字段视图和物化视图的结果一致; score_xx_avg视图的数据正常, 但是物化视图只有score_90_avg数据正常, 其他字段全是null;

    oracle版本:

    select * from v$version;
    
    Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
    PL/SQL Release 12.2.0.1.0 - Production
    "CORE	12.2.0.1.0	Production"
    TNS for Linux: Version 12.2.0.1.0 - Production
    NLSRTL Version 12.2.0.1.0 - Production
    

    尝试解决

    搜索的关键词:

    oracle materialized view some column is null
    oracle materialized view missing data
    oracle materialized view losing  data
    oracle view materialized data not same
    oracle view materialized wrong different
    

    只找到很少的相关内容, 没有找到解决方案;
    oracle - Materialized View data different from View with same source - Stack Overflow

    Materialized view do not show the data - Page 2 — oracle-tech

    猜测可能的原因: create物化视图的时候某些选项不合适, 看看官方文档;
    (翻了一圈没结果)
    CREATE MATERIALIZED VIEW

    分析sql

    count正常、avg不正常, avg换个计算方式试试:
    原方式:

    avg(v.review_score_80_90) score_80_90_avg,
    

    新方式:

    sum(v.review_score_80_90)/count(v.review_score_80_90) score_80_90_avg,
    

    改造之后恢复正常, 物化视图和视图的数据一致了;

    根本原因

    表面上解决了问题, 根本原因没搞清楚, 猜测可能是oracle的bug, 还望大佬赐教.

  • 相关阅读:
    IDEA tomcat热部署方法及乱码问题解决
    访问WEB-INF下JSP资源的几种方式(转)
    SpringMVC 静态资源处理
    SpringMVC中的拦截器
    SpringMVC中的异常处理
    SpringMVC实现文件上传
    IDEA 热部署
    响应数据和结果视图
    SpringMVC中的常用注解
    js获取当前根目录的方法
  • 原文地址:https://www.cnblogs.com/QIAOXINGXING001/p/15539346.html
Copyright © 2011-2022 走看看