`

Oracle物化视图

阅读更多

创建物化视图举例:

create materialized view xxx_tan

refresh force on demand
as
select district_id,agcycompany_id,hospital_id,doctor_id,salesman_id,sample_time,
(case  when
    instr( tang_result,'1st')>0 and instr( tang_result,'1st',1,2)=0 and instr(tang_result,'2nd')=0
  then 1
  when
   instr( tang_result,'2nd')>0 and instr( tang_result,'2nd',1,2)=0 and instr(tang_result,'1st')=0
  then 2
  when
   (tang_result is null or  tang_result=';' or tang_result=';')
  then 3
  when
    ( TANG_RESULT like '%未做%' or TANG_RESULT like  '%未作%'
                   or  upper(replace(TANG_RESULT,' ','')) like '%NOTTODO%' or ( upper(TANG_RESULT) like 'NO' and  (LENGTH(TANG_RESULT)<4)))
                   and  P_NIFTY_COMMON.F_GET_TANG_RESULT_FLAG(TANG_RESULT)!=1 and P_NIFTY_COMMON.F_GET_TANG_RESULT_FLAG(TANG_RESULT)!=2
  then 4
end

) tang_flag,P_NIFTY_COMMON.F_GET_TANG_RESULT_FLAG(TANG_RESULT) tang_result_flag
,count(*) nums
from HIMS_NIFTY_SAMPLE_ALL group by district_id,agcycompany_id,hospital_id,doctor_id,salesman_id,sample_time,
(case  when
    instr( tang_result,'1st')>0 and instr( tang_result,'1st',1,2)=0 and instr(tang_result,'2nd')=0
  then 1
  when
   instr( tang_result,'2nd')>0 and instr( tang_result,'2nd',1,2)=0 and instr(tang_result,'1st')=0
  then 2
  when
   (tang_result is null or  tang_result=';' or tang_result=';')
  then 3
  when
   ( TANG_RESULT like '%未做%' or TANG_RESULT like  '%未作%'
                   or  upper(replace(TANG_RESULT,' ','')) like '%NOTTODO%' or ( upper(TANG_RESULT) like 'NO' and  (LENGTH(TANG_RESULT)<4)))
                   and  P_NIFTY_COMMON.F_GET_TANG_RESULT_FLAG(TANG_RESULT)!=1 and P_NIFTY_COMMON.F_GET_TANG_RESULT_FLAG(TANG_RESULT)!=2
  then 4
end

),P_NIFTY_COMMON.F_GET_TANG_RESULT_FLAG(TANG_RESULT);

 

更新物化视图举例:

call dbms_mview.refresh('xxx_tan');

 

删除物化视图举例:

drop materialized view xxx_tan;

当时由于物化视图是建立在另外一张视图上的,结果速度很慢。后来先尝试把另外的那张视图换成物化视图,还是很慢,最后干脆把另外那张基础的用实体表来做,最后速度才快了。所以要综合看物化视图和实体表,有时候不一定物化视图的效率比表高 

分享到:
评论

相关推荐

    Oracle物化视图应用详解

    Oracle物化视图是一种数据库对象,它存储了查询结果,以提供快速的数据访问,特别适合于需要频繁查询但计算过程复杂或涉及大量数据连接的场景。物化视图的使用可以显著提高查询性能,因为它避免了每次查询时的计算...

    Oracle物化视图创建和使用

    Oracle 物化视图创建和使用 Oracle 物化视图是一种预先计算并保存表连接或聚集等耗时较多的操作的结果,以提高查询性能。物化视图对应用程序透明,不会影响应用程序的正确性和有效性,但需要占用存储空间。基表发生...

    Oracle物化视图增量刷新的应用研究.pdf

    "Oracle 物化视图增量刷新的应用研究" Oracle 物化视图是 Oracle 公司提供的一种新技术,可以解决很多普通逻辑视图无法完成的功能。物化视图操作简单,支持增量刷新及全量刷新,可以支持复杂的表连接、聚合函数等...

    利用ORACLE物化视图建立报表数据库.pdf

    "利用ORACLE物化视图建立报表数据库.pdf" 本文主要介绍了利用ORACLE物化视图建立报表数据库的方法和原理。报表数据库是指独立于生产数据库的数据库,用于存储和管理报表数据。通过建立报表数据库,可以实现工作负荷...

    oracle 物化视图详解(内含例子)

    ### Oracle 物化视图详解 #### 一、物化视图的概念与作用 物化视图是Oracle数据库中一种特殊的数据对象,它保存的是基于一个或多个表(称为基表)的查询结果集,并且这些结果集是物理上存在的。与普通的视图不同,...

    oracle物化视图_循序渐进学习笔记

    Oracle物化视图是一种在数据库中预先计算并存储视图查询结果的数据对象,它与普通的视图不同,普通视图在查询时动态地基于基表数据生成结果,而物化视图则拥有自己的物理存储,提供了对数据的快速访问。在本篇循序渐...

Global site tag (gtag.js) - Google Analytics