精华内容
下载资源
问答
  • 创建物化视图语句主要参数

    千次阅读 2014-08-23 20:53:20
    build build让你指定什么时候操作物化视图 immediate

    build

    build让你指定什么时候操作物化视图

    immediate 这个参数指明物化视图被马上操作,这个是默认值。

    deferred,指明物化视图在下一次刷新操作,第一次刷新必须是完全刷新,之前的数据是不可用的,不能用于查询重写。

    create_mv_refresh指明默认的方法,模式,和数据库刷新视图的时间。

    fast指明快速刷新。

    complete指明完全刷新。

    force指明刷新什么时候发生,如果能快速刷新就快速刷新,否则就完全刷新,force是默认的。

    on commit 指明在master表上的事务提交时,快速刷新是否发生,这个也许会增加commit完成的时间,数据库把刷新作为事务的一个过程。

    on demand指明物化视图在通过调用dbms_mview存储过程的时候刷新,on demand是默认的。

    如果指定了on commit 或是on demand就不能指定start with 或next

    start with 指明了第一次自动刷新的时间。

    next用于计算间隔


    with rowid不能包含下面的东西;

    1distinct或聚合函数

    2group by 或connect by 

    3子查询

    4连接

    5集合操作

    query rewrite定义物化视图是否可以用于查询重写


    展开全文
  • 物化视图修改语句

    千次阅读 2019-05-04 21:26:00
    物化视图修改语句 ALTERMATERIALIZED VIEW 包含了 CONSIDER FRESH 语句。通过这个语句可以使得数据库认为物化视图已经是刷新后的状态。同时可以使得这个物化视图对于查询重新生效。 CONSIDER FRESH语句的另一...

    物化视图的修改语句

    ALTER MATERIALIZED VIEW

    包含了

    CONSIDER FRESH

    语句。通过这个语句可以使得数据库认为物化视图已经是刷新后的状态。同时可以使得这个物化视图对于查询重新生效。

    CONSIDER FRESH语句的另一个主要功能就是使得物化视图可以继续为查询重写所使用。

    查询重新包括三个级别的参数:ENFORCED、TRUSTED和STALE_TOLERATED。对于一个无法刷新到FRESH状态的物化视图,只有STALE_TOLERATED级别的查询重新可以考虑读取这个物化视图,而使用了CONSIDER FRESH语句后,在TRUSTED级别Oracle在查询重写的时候也可以使用这个物化视图:

    SQL> DROP TABLE T PURGE;

    表已删除。

    SQL> DROP MATERIALIZED VIEW MV_T;

    实体化视图已删除。

    SQL> CREATE TABLE T

    2 (ID NUMBER,

    3 NAME VARCHAR2(30),

    4 TYPE VARCHAR2(18),

    5 CREATE_DATE DATE);

    表已创建。

    SQL> INSERT INTO T

    2 SELECT ROWNUM,

    3 OBJECT_NAME,

    4 OBJECT_TYPE,

    5 CREATED

    6 FROM ALL_OBJECTS;

    已创建55680行。

    SQL> COMMIT;

    提交完成。

    SQL> CREATE MATERIALIZED VIEW LOG ON T

    2 WITH ROWID, SEQUENCE (TYPE)

    3 INCLUDING NEW VALUES;

    实体化视图日志已创建。

    SQL> CREATE MATERIALIZED VIEW MV_T

    2 REFRESH FAST

    3 ENABLE QUERY REWRITE

    4 AS SELECT TYPE, COUNT(*)

    5 FROM T

    6 GROUP BY TYPE;

    实体化视图已创建。

    首先建立了测试的物化视图,然后检查一下查询重写的配置:

    SQL> SHOW PARAMETER QUERY_REWRITE

    NAME TYPE VALUE

     

    query_rewrite_enabled string TRUE

    query_rewrite_integrity string enforced

    SQL> @?/rdbms/admin/utlxrw

    表已创建。

    SQL> EXEC DBMS_MVIEW.EXPLAIN_REWRITE('SELECT TYPE, COUNT(*) FROM T GROUP BY TYPE')

    PL/SQL 过程已成功完成。

    SQL> SELECT MESSAGE

    2 FROM REWRITE_TABLE;

    MESSAGE

     

    QSM-01151: 已重写查询

    QSM-01209: 已通过实体化视图 MV_T, 采用文本匹配算法进行了查询重写

    SQL> TRUNCATE TABLE REWRITE_TABLE;

    表被截断。

    SQL> INSERT INTO T

    2 VALUES (1, 'TEST', 'T', SYSDATE);

    已创建 1 行。

    SQL> COMMIT;

    提交完成。

    SQL> EXEC DBMS_MVIEW.EXPLAIN_REWRITE('SELECT TYPE, COUNT(*) FROM T GROUP BY TYPE')

    PL/SQL 过程已成功完成。

    SQL> SELECT MESSAGE

    2 FROM REWRITE_TABLE;

    MESSAGE

     

    QSM-01150: 未重写查询

    QSM-01029: 实体化视图 MV_T 在 ENFORCED 完整性模式中已过时

    SQL> ALTER SESSION SET QUERY_REWRITE_INTEGRITY = STALE_TOLERATED;

    会话已更改。

    SQL> TRUNCATE TABLE REWRITE_TABLE;

    表被截断。

    SQL> EXEC DBMS_MVIEW.EXPLAIN_REWRITE('SELECT TYPE, COUNT(*) FROM T GROUP BY TYPE')

    PL/SQL 过程已成功完成。

    SQL> SELECT MESSAGE

    2 FROM REWRITE_TABLE;

    MESSAGE

     

    QSM-01151: 已重写查询

    QSM-01209: 已通过实体化视图 MV_T, 采用文本匹配算法进行了查询重写

    SQL> TRUNCATE TABLE REWRITE_TABLE;

    表被截断。

    SQL> ALTER SESSION SET QUERY_REWRITE_INTEGRITY = TRUSTED;

    会话已更改。

    SQL> EXEC DBMS_MVIEW.EXPLAIN_REWRITE('SELECT TYPE, COUNT(*) FROM T GROUP BY TYPE')

    PL/SQL 过程已成功完成。

    SQL> SELECT MESSAGE

    2 FROM REWRITE_TABLE;

    MESSAGE

     

    QSM-01150: 未重写查询

    QSM-01031: 实体化视图 MV_T 在 TRUSTED 完整性模式中已过时

    可以看到,和前面分析的一样,一旦物化视图的数据和基表中的最新的数据存在差异,这个物化视图在TRUSTED模式下无法被查询重写所使用。

    下面使用CONSIDER FRESH语句:

    SQL> TRUNCATE TABLE REWRITE_TABLE;

    表被截断。

    SQL> ALTER MATERIALIZED VIEW MV_T

    2 CONSIDER FRESH;

    实体化视图已更改。

    SQL> EXEC DBMS_MVIEW.EXPLAIN_REWRITE('SELECT TYPE, COUNT(*) FROM T GROUP BY TYPE')

    PL/SQL 过程已成功完成。

    SQL> SELECT MESSAGE

    2 FROM REWRITE_TABLE;

    MESSAGE

     

    <?xml version="1.0" encoding="utf-8"?>
    <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

    <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

    <PropertyGroup>
    <VName>{BranchName}_Release</VName>
    <WebAppOutput>..\WebAppPublished</WebAppOutput>
    <WebSiteOutput>..\WebSitePublished</WebSiteOutput>

    </PropertyGroup>

    <ItemGroup>
    <MySourceFiles Include="web\**\*.dll;web\**\*.aspx;web\**\*.js;web\**\*.css;web\**\*.jpg;web\**\*.config;web\**\*.gif;web\**\*.config;web\**\*.png;web\**\*.ascx;"/>
    </ItemGroup>

    <Target Name="build">
    <MsBuild Projects="{SlnName}" Targets="$(BuildCmd)" />
    </Target>

    </Project>
    调用winrar压缩打包部分代码
    代码会通过根据注册表里是否有winrar安装信息,然后找到路径进行调用。

    /// <summary>
    /// 生成Zip
    /// </summary>
    /// <param name="path">文件夹路径</param>
    /// <param name="rarPath">生成压缩文件的路径</param>
    /// <param name="rarName">生成压缩文件的文件名</param>
    /// <param name="ignore">忽略的文件</param>
    public static void CompressRar(String path,www.chenhaiyulp.cn String rarPath, String rarName,string ignore)
    {
    try
    {
    String winRarPath = null;
    if (!ExistsRar(out winRarPath)) return;//验证WinRar是否安装。

    //var pathInfo = String.Format("a -afzip -m0 -ep1 \"{0}\" \"{1}\"", rarName, path);
    var pathInfo = String.Format(www.baihuidengLu.com"a {2} -k -r -s -ep1 \"{0}\" \"{1}\"", rarName, path,ignore);

    #region WinRar 用到的命令注释

    //[a] 添加到压缩文件
    //afzip 执行zip压缩方式,方便用户在不同环境下使用。(取消该参数则执行rar压缩)
    //-m0 存储 添加到压缩文件时不压缩文件。共6个级别【0-5】,值越大效果越好,也越慢
    //ep1 依名称排除主目录(生成的压缩文件不会出现不必要的层级)
    //r 修复压缩档案
    //t 测试压缩档案内的文件
    //as 同步压缩档案内容
    //-p 给压缩文件加密码方式为:-p123456

    #endregion

    //打包文件存放目录
    var process = new Process
    {
    StartInfo = new ProcessStartInfo
    {
    FileName = winRarPath,//执行的文件名
    Arguments = pathInfo,//需要执行的命令
    UseShellExecute www.yunyouuyL.com= false,//使用Shell执行
    WindowStyle = ProcessWindowStyle.Hidden,//隐藏窗体
    WorkingDirectory = rarPath,//rar 存放位置
    CreateNoWindow = true,//不显示窗体
    },
    };
    process.Start();//开始执行
    process.WaitForExit();//等待完成并退出
    process.Close(www.tianscpt.com);//关闭调用 cmd 的什么什么
    }
    catch (Exception ex)
    {
    throw ex;
    }

     

    QSM-01151: 已重写查询

    QSM-01209: 已通过实体化视图 MV_T, 采用文本匹配算法进行了查询重写

    通过使用CONSIDER FRESH,数据库重新认为物化视图已经和基表的数据保持一致,因此TRUSTED模式下,物化视图重新可以被查询重写机制所使用。

    转载于:https://www.cnblogs.com/qwangxiao/p/10809910.html

    展开全文
  • Create materialized view log on F_... ----tecam01为表名 ----注:(tecam01为表名或者视图名,关于视图上建立物化视图,见基于视图的物化视图 ----创建物化视图语句:  /*删除日志和视图*/  DROP materialized v

    Create materialized view log on F_RPT_TASK
    TABLESPACE CISAISY 
    WITH PRIMARY KEY 
     ----tecam01为表名 ----注:(tecam01为表名或者视图名,关于视图上建立物化视图,见基于视图的物化视图 ----创建物化视图语句:
     /*删除日志和视图*/
      DROP materialized view log on  F_RPT_TASK
      drop materialized view MV_F_RPT_TASK


     
      Create materialized view MV_F_RPT_TASK
      TABLESPACE CISAISY
      BUILD DEFERRED
      refresh force
     on demand
     start with  to_date('02-01-2014 12:00:10', 'dd-mm-yyyy hh24:mi:ss') 
     next  sysdate+5/(24*60)
       As
      SELECT * FROM F_RPT_TASK
     WHERE  to_number(RPT_PERIOD)  >= to_number(to_char((sysdate),'yyyy' ) -2);
     
     

    ===================自动增量刷新========== /*删除日志和视图*/ DROP materialized view log on F_RPT_TASK drop materialized view MV_F_RPT_TASKCreate materialized view log on F_RPT_TASK TABLESPACE CISAISY WITH PRIMARY KEY Create materialized view MV_F_RPT_TASK ----MVTEST为物化视图名 Build immediate ----创建时生成数据对应的是build deferred Refresh fast ----增量刷新 On commit ----在基表有更新时提交,这里该句对视图无效 With PRIMARY KEY ----这里创建基于primary key 的物化视图,要与日志中对应的是 primary key ;若日志为 rowid 则此处必须为rowid As Select * from F_RPT_TASK where RPT_PERIOD='2013' or RPT_PERIOD ='2012';
    展开全文
  • clickhouse创建物化视图SQL语句

    千次阅读 2019-12-31 14:49:21
    1.上半部分是创建物化视图的建表语句,下半部分是将哪些数据更新到物化视图中; 如果是创建普通视图只需将下半部分中的 MATERIALIZED 字段去掉即可; CREATE TABLE south.alarm_daily_statistics ( `alarm_time` ...

    1.上半部分是创建物化视图的建表语句,下半部分是将哪些数据更新到物化视图中;

    1. 如果是创建普通视图只需将下半部分中的 MATERIALIZED 字段去掉即可;
    CREATE TABLE south.alarm_daily_statistics (
     `alarm_time` DateTime DEFAULT CAST('1970-01-01 00:00:01',
     'DateTime'),
     `vehicle_no` String,
     `owers_id` Int16,
     `owers_name` String,
     `alarmNumber` Int16
    ) ENGINE = MergeTree() PARTITION BY toYYYYMM(alarm_time) ORDER BY (alarm_time, owers_id) SETTINGS index_granularity = 8192;
    CREATE MATERIALIZED VIEW south.alarm_daily_statistics_vim TO south.alarm_daily_statistics AS SELECT
    		toDate( a.alarm_time ) AS alarm_time,
            a.device_id as vehicle_no,
            max(owers_id) as owers_id,
    		max(owers_name) as owers_name,
            count((CASE WHEN ( `a`.`alarm_source` = 2 ) THEN 1 END )) AS `alarmNumber`
            FROM
            alarm_info a
            GROUP BY
            alarm_time,
            device_id
            ORDER BY
            alarm_time,
            device_id;
    
    展开全文
  • 物化视图建立的时候可以定义刷新方式,一般有: refresh fast 和 refresh complete之分,前者是只更新主表中变化的记录(主表必须建立materialized view log),而后者是把MV里面的数据全部更新。此外,更新方式还可以...
  • 概述物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的。普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实际上转换为视图SQL语句的查询。这样对整体查询性能的提高,并...
  • Oracle物化视图物化视图日志

    万次阅读 多人点赞 2019-04-02 21:43:30
    文章目录物化视图物化视图与普通视图的区别创建一个存放person的表创建一个存放person的address的表初始化数据创建物化视图语句1.build [immediate|deferred]2.refresh [fast|complete|force] 视图刷新的方式:3.MV...
  • 然后就遇到怎么查看物化视图定义语句的问题了 分享下,祝顺利! DBA权限下执行: select dbms_metadata.get_ddl('MATERIALIZED_VIEW','<TAB_NAME>','<Schema_name>') from dual; enjoy :P ...
  • 修改物化视图刷新时间: ALTER MATERIALIZED VIEW sales_by_month_by_state REFRESH NEXT SYSDATE+7; 修改刷新模式: ALTER MATERIALIZED VIEW sales_by_month_by_state REFRESH FAST; 修改物化视图...
  • ORACLE物化视图是包括一个查询结果的数据库对像,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表。物化视图存储基于远程表的数据,也可以称为快照。通常情况下,物化视图被称为主表(在复制期间)或...
  • 物化视图

    2019-10-13 12:30:47
    Oracle物化视图   Oracle的物化视图是包括一个查询结果的数据库对像。将一些大的耗时的表连接用物化视图实现,会提高查询的效率。   物化视图在某种意义上说就是一个 物理表,物化视图会占用数据库磁盘空间,...
  • 物化视图是相对于视图而言的,但是两者实际上并没有什么关系就如java/javaScript一样 首先mysql的视图不是一种物化视图,他相当于一个虚拟表,本身并不存储数据,当sql在操作视图时所有数据都是从其他表中查询出来的...
  • 物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的。普通视图是虚拟表,应用的局限性大,任何对视图的查询,oracle都实际上转换为视图SQL语句的查询。这样对整体查询性能的提高,并没有...
  • Oracle 物化视图之--复杂物化视图创建 ...(1)包含物化视图查询语句中的所有列,包括SELECT列表中的列和WHERE语句中的列; (2)必须指明ROWID和INCLUDING NEW VALUES; (3)如果对基本的操作同时包括
  • 物化视图概念及创建语句

    千次阅读 2014-04-03 23:54:57
    Oracle的物化视图是包括一个查询结果的数据库对像,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表。 物化视图存储基于远程表的数据,也可以称为快照。 物化视图是一种特殊的物理表,“物化”...
  • 物化视图物化视图与普通视图的区别创建一个存放person的表创建一个存放person的address的表初始化数据创建物化视图语句1.build [immediate|deferred]2.refresh [fast|complete|force] 视图刷新的方式:3.MV数据...
  • 1、使用物化视图中遇到的问题 一般在创建物化视图的时候,在数据量不大的时候,刷新的方式都是采用完全刷新的。 随着系统的使用一些物化视图的源表的数据量在不断的增长,原本采用完全方式几秒就能刷新完成的物化...
  • 物化视图是将查询预先定义在结构中,并手动或者定期刷新将结果存储在物化视图段中,也就是说跟普通视图不同,它是需要存储空间的,从而不需要重新或者反复的执行sql语句,支持增量刷新,快速获取结果,提高数据获取...
  • 物化视图的状态等信息进行查询,监控和管理时,需要对系统视图进行查询,以下列出了常用的物化视图状态、依赖关联,批量维护时能用到的查询语句,根据具体情况进行适当修改
  • 物化视图创建 及 刷新机制修改

    千次阅读 2016-01-20 16:48:01
    Oracle物化视图语法2010-05-21 09:58 物化视图对于前台数据库使用者来说如同一个实际的表,具有和一般表相同的如select等操作,而其实际上是一个视图,一个由系统实现定期刷新其数据的视图(具体刷新时间在定义物化视图...
  • Oracle物化视图

    2019-11-05 19:54:45
    物化视图 物化视图与普通视图的区别 物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的。普通视图是虚拟表,应用的局限性大,任何对视图的查询, Oracle 都实际上转换为视图SQL语句的...
  • 简介物化视图在数据仓库中常用,将结果预先计算好并存储在物化视图中,Oracle数据库通过Query Rewrite访问物化视图。可以提高SQL反应速度,改善用户体验。整个过程对用户是透明的。对于每个物化视图,Oracle会自动...
  • 几分钟前一网友问我如何删除一个实体化视图, 当然不是什么语法不会的问题了, 是发了Drop命令后一直挂着, 几个小时都没有结束, 你可以想想为什么? 先看一下创建的语法.create materialized viewuser_order_mavibuild ...
  • 不少人大概和我一样在创建物化视图的时候会犯头痛,怎样合理的改写SQL语句以及添加物化视图日志需要经过慎重精密的考虑。有了DBMS_ADVISOR.TUNE_MVIEW存储过程这个帮手后,极大地方便了DBA或应用设计人员创建和优化...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,260
精华内容 3,704
关键字:

修改物化视图语句