首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >实例化视图与增量刷新的表的区别

实例化视图与增量刷新的表的区别
EN

Stack Overflow用户
提问于 2015-07-30 05:52:02
回答 3查看 910关注 0票数 2

有一个问题是我们为什么要创建物化视图。我有一个表,为了逐步刷新这个表,我有一个dbms作业,它将来自不同表的数据合并到这个表中。因此它等同于快速刷新物化视图。有什么不同吗?在上述两种情况下,哪种实现更好?

EN

回答 3

Stack Overflow用户

发布于 2015-07-30 06:12:16

可以按需刷新实体化视图,也可以按刷新频率刷新。它可以由两个或更多个表的联接组成。

创建实体化视图时,可以选择指定刷新是按需进行还是在提交时进行。在ON COMMIT的情况下,每次事务处理提交时,实体化视图都会更改,从而确保实体化视图始终包含最新数据。或者,您可以通过指定ON DEMAND来控制实体化视图的刷新时间。在按需实体化视图的情况下,可以使用DBMS_SYNC_REFRESH或DBMS_MVIEW程序包中提供的刷新方法执行刷新:

这是文档link

此外,可以增量地刷新实例化视图。

您的自定义解决方案

需要大量的代码,而且伸缩性不好。

票数 0
EN

Stack Overflow用户

发布于 2015-07-30 09:34:53

可以使用实体化视图日志对certain conventions之后的实体化视图进行快速刷新。这意味着Oracle只需处理实际更改即可刷新实体化视图,其中合并操作每次都必须比较所有行。因此,物化视图将允许更快、更频繁的刷新,尤其是对于较大的表。

票数 0
EN

Stack Overflow用户

发布于 2015-08-04 11:43:04

经过大量的搜索,我在物化视图上找到了一些我们在普通表上做不到的东西,那就是查询重写。下面是我的发现。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SQL> GRANT GLOBAL QUERY REWRITE to mydbdba;

SQL> CREATE MATERIALIZED VIEW customers_mw ENABLE QUERY REWRITE
AS
SELECT COUNT(*) c,state_id FROM sg.customers GROUP BY state_id;

SQL> alter session set QUERY_REWRITE_ENABLED=TRUE;

Session altered.

SQL> SELECT COUNT(*) c,state_id FROM sg.customers GROUP BY state_id;

Execution Plan

Plan hash value: 799451518


| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |

| 0 | SELECT STATEMENT | | 52 | 364 | 3 (0)| 00:00:01 |
| 1 | MAT_VIEW REWRITE ACCESS FULL| CUSTOMERS_MW | 52 | 364 | 3 (0)| 00:00:01 |

SQL> alter session set QUERY_REWRITE_ENABLED=FALSE;

Session altered.

SQL> SELECT COUNT(*) c,state_id FROM sg.customers GROUP BY state_id;

Execution Plan

Plan hash value: 1577413243


| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |

| 0 | SELECT STATEMENT | | 52 | 156 | 327 (1)| 00:00:01 |
| 1 | HASH GROUP BY | | 52 | 156 | 327 (1)| 00:00:01 |
| 2 | TABLE ACCESS FULL| CUSTOMERS | 50000 | 146K| 326 (1)| 00:00:01 |

您可以在上面的示例中看到如何使用实例化视图,而不是再次扫描整个表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31716063

复制
相关文章
shell脚本实际运用_shell脚本调用另一个脚本
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/168438.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/22
9980
在 Shell 脚本中调用另一个 Shell 脚本的三种方式
fork 是最普通的, 就是直接在脚本里面用 path/to/foo.sh 来调用 foo.sh 这个脚本,比如如果是 foo.sh 在当前目录下,就是 ./foo.sh。运行的时候 terminal 会新开一个子 Shell 执行脚本 foo.sh,子 Shell 执行的时候, 父 Shell 还在。子 Shell 执行完毕后返回父 Shell。 子 Shell 从父 Shell 继承环境变量,但是子 Shell 中的环境变量不会带回父 Shell。
用户1558438
2018/08/23
4.4K0
在 Shell 脚本中调用另一个 Shell 脚本的三种方式
fork 是最普通的, 就是直接在脚本里面用 path/to/foo.sh 来调用foo.sh 这个脚本,比如如果是 foo.sh 在当前目录下,就是 ./foo.sh。运行的时候 terminal 会新开一个子 Shell 执行脚本 foo.sh,子 Shell 执行的时候, 父 Shell 还在。子 Shell 执行完毕后返回父 Shell。子 Shell 从父 Shell 继承环境变量,但是子 Shell 中的环境变量不会带回父 Shell。
IT运维技术圈
2022/10/24
3.5K0
Shell脚本调用另一个脚本的三种方法
如何在其它Shell脚本中调用first.sh呢?主要有三种方法:source、点号以及sh命令。
恋喵大鲤鱼
2019/03/05
12.2K0
我可以在不source脚本的情况下将变量从Bash脚本导出到环境中吗
有没有一种方法可以通过只执行 export.bash 而不 source 它获取 $VAR?
程序熵
2023/09/25
1800
我可以在不source脚本的情况下将变量从Bash脚本导出到环境中吗
我可以在一个构造函数中调用另一个构造函数么
但在 C++11 版本之前是不可以的,不过你可以通过两种方式来模拟实现(可以参见 the C++ FAQ entry),
ClearSeve
2022/02/10
3K0
Python 制作按键触发Windows通知的脚本
对于键盘没有背光灯的同学而言,切换大小写或控制Num键开关的时候没有提示,经常需要试探性地输入一些字符来判断开关是否打开,体验非常糟糕。
abs_zero
2020/12/15
1.8K0
Python 制作按键触发Windows通知的脚本
Shell脚本——函数
调用 Shell 函数时可以给它传递参数,也可以不传递。如果不传递参数,直接给出函数名字即可:
栗筝i
2022/12/01
4280
shell脚本-函数
https://www.cnblogs.com/shenxm/category/1154724.html shell脚本-函数 函数介绍 函数function是由若干条shell命令组成的语句块,实现代码重用和模块化编程。 它与shell程序形式上是相似的,不同的是它不是一个单独的进程,不能独立运行,而是shell 程序的一部分。 函数和shell程序比较相似,区别在于: Shell 程序在子Shell中运行 而Shell函数在当前Shell中运行。因
菲宇
2022/12/21
5790
脚本接入钉钉Actions自动触发
最近出来实习一直在忙公司的事情。学校那边说,为了我们的安全让每天签到。那个app叫蘑菇丁。不知道大🔥用过没,貌似很小众。以前的脚本写的惨不忍睹,近期看到国光哥的 Python 实现 T00ls 自动签到脚本(邮件+钉钉通知)发现脚本可以用钉钉通知涨姿势了。还发现Github 自带的 Actions 可以定时执行脚本,正好vps要到期了。。。。所以就改造了下自己的脚本。 接入钉钉 点击头像进入详情,自定义机器人。这时候需要创建一个群组 创建后会得到一个webhook地址 https://oapi.di
用户2700375
2022/06/09
8980
脚本接入钉钉Actions自动触发
复制查到到的文件到另一个目录(shell脚本)
Test:find ../../res.bak/item/ -type f -name "*.jpg" |xargs -n1 -i echo {}."abc"
meteoric
2018/11/16
1.4K0
【shell脚本】$ 在shell脚本中的使用
注释:$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" ")包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数
码缘
2019/07/01
6.2K0
jenkins自动触发构建_jenkins调用bat脚本
跑自动化用例每次用手工点击jenkins出发自动化用例太麻烦了,我们希望能每天固定时间跑,这样就不用管了,坐等收测试报告结果就行。 jenkins的定时任务是用的crontab语法
全栈程序员站长
2022/09/19
1.2K0
jenkins自动触发构建_jenkins调用bat脚本
在ClickHouse中自定义脚本函数
在先前的一篇文章中我曾介绍过,如何在 ClickHouse 中用 SQL 创建 UDF 自定义函数 ,《传送门》在此。
Nauu
2022/03/29
4.3K0
Shell脚本,你会吗?
5)有两个命令能帮助我调试脚本:set -e 遇到执行非0时退出脚本,set-x 打印执行过程。
kubernetes中文社区
2019/07/23
7540
【Groovy】Groovy 脚本调用 ( Linux 中调用 Groovy 脚本 | Windows 中调用 Groovy 脚本 )
在 命令行 , Groovy 脚本 , Groovy 类 , Java 类中 , 可以调用 Groovy 脚本 ;
韩曙亮
2023/03/30
2K0
【Groovy】Groovy 脚本调用 ( Groovy 脚本中调用另外一个 Groovy 脚本 | 调用 evaluate 方法执行 Groovy 脚本 | 参数传递 )
在 【Groovy】Groovy 脚本调用 ( Groovy 脚本编译 | Groovy 脚本字节码文件分析 ) 博客中 , 已经分析了 Groovy 脚本的本质 , Groovy 脚本继承了 groovy.lang.Script 类 ;
韩曙亮
2023/03/30
1.9K0
【Groovy】Groovy 脚本调用 ( Groovy 脚本中调用另外一个 Groovy 脚本 | 调用 evaluate 方法执行 Groovy 脚本 | 参数传递 )
java构造函数调用另一个构造函数_java中的构造函数
* 构造方法是专门用来创建对象的方法,当我们通过关键字new来创建对象时,其实就是在调用构造方法
用户7886150
2021/04/29
4.5K0
python挖矿脚本代码_一个挖矿脚本
遇到一台机器偶尔cpu使用率达到80%,触发告警。登录查看后一个sshd2程序导致cpu负载高
全栈程序员站长
2022/09/14
2.3K0
[golang]写了一个可以用 go 来写脚本的工具:gosl
代码和使用说明可以看这里: http://github.com/daviddengcn/gosl
landv
2019/09/30
2K0

相似问题

我可以从另一个shell脚本调用shell脚本的函数吗?

76

可以在页面脚本之前触发扩展脚本吗?

11

可以从另一个脚本调用php脚本吗?

11

Python脚本触发另一个脚本中的方法

31

可以从另一个python脚本中运行python脚本吗?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文