oracle中的保存点是啥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle中的保存点是啥相关的知识,希望对你有一定的参考价值。

用户在事务(transaction)内可以声明(declare)被称为保存点(savepoint)
的标记。保存点将一个大事务划分为较小的片断。
用户可以使用保存点(savepoint)在事务(transaction)内的任意位置作标
记。之后用户在对事务进行回滚操作(rolling back)时,就可以选择从当前
执行位置回滚到事务内的任意一个保存点。例如用户可以在一系列复杂的更
新(update)操作之间插入保存点,如果执行过程中一个语句出现错误,用
户 可以回滚到错误之前的某个保存点,而不必重新提交所有的语句。
在开发应用程序时也同样可以使用保存点(savepoint)。如果一个过程
(procedure)内包含多个函数(function),用户可以在每个函数的开始位置
创建一个保存点。当一个函数失败时, 就很容易将数据恢复到函数执行之前
的状态,回滚(roll back)后可以修改参数重新调用函数,或执行相关的错误
处理。
当事务(transaction)被回滚(rollback)到某个保存点(savepoint)后,
Oracle将释放由被回滚语句使用的锁。其他等待被锁资源的事务就可以继续
执行。需要更新(update)被锁数据行的事务也可以继续执行。
将事务(transaction)回滚(roll back)到某个保存点(savepoint)的过程如
下:
1. Oracle 回滚指定保存点之后的语句
2. Oracle 保留指定的保存点,但其后创建的保存点都将被清除
3. Oracle 释放此保存点后获得的表级锁(table lock)与行级锁(row
lock),但之前的数据锁依然保留。
被部分回滚的事务(transaction)依然处于活动状态,可以继续执行。
一个事务(transaction)在等待其他事务的过程中,进行回滚(roll back)到
某个保存点(savepoint)的操作不会释放行级锁(row lock)。为了避免事务
因为不能获得锁而被挂起,应在执行 UPDATE 或 DELETE 操作前使用 FOR
UPDATE ... NOWAIT 语句。(以上内容讲述的是回滚保存点之前所获得的
锁。而在保存点之后获得的行级锁是会被释放的,同时保存点之后执行的
SQL 语句也会被完全回滚)。
原文地址:http://blog.itpub.net/22034023/viewspace-667676
参考技术A savepoint 是oracle 事务处理的特色吧,相当于html语言中的锚点一样,可以让数据库回滚到当前指定的地方,但是一旦你使用了commit ,保存点就失效了。 DDL 语句属于commit 类型。本回答被提问者和网友采纳 参考技术B SCN是当Oracle数据库更新后,由DBMS自动维护去累积递增的一个数字。Oracle数据库中一共有4种SCN分别为 :
系统检查点SCN: 系统检查点SCN位于控制文件中,当检查点进程启动时(ckpt),Oracle就把系统检查点的SCN存储到控制文件中。该SCN是全局范围的,当发生文件级别的SCN时,例如将表空间置于只读状态,则不会更新系统检查点SCN。
数据文件scn:当ckpt进程启动时,包括全局范围的(比如日志切换)以及文件级别的检查点(将表空间置为只读、begin backup或将某个数据文件设置为offline等),这时会在控制文件中记录的scn。
数据文件头scn:不同于上述的SCN数据文件开始scn记录在每个数据文件中。当发生系统及文件级别的检查点后,不仅将这时的SCN号记录在控制文件中,同样也记录在数据文件中。
结束scn:每个数据文件都有一个结束scn,在数据库的正常运行中,只要数据文件在线且是可读写的,结束scn为null。否则则存在具体的scn值。结束scn也记录在控制文件中。

总体而言就是用于介质恢复和快速闪回的时候用到。
参考技术C 用于一个事物回滚到此保存点

图论中的点割集,割点是啥意思啊,看书上的定义看不懂,能不能通俗的讲解一下

在无向联通图 G=(V,E)中:若对于x∈V, 从图中删去节点x以及所有与x关联的边之后, G分裂成两个或两个以上不相连的子图, 则称x为G的割点。 简而言之, 割点是无向联通图中的一个特殊的点, 删去中这个点后, 此图不再联通, 而所以满足这个条件的点所构成的集合即为割点集合。

例如下图中,顶点u和v都是割点,其他顶点都不是割点。

对于铁路和公路等交通图,割点和桥在军事、经济上有重要的意义。而如果uv是桥且deg(u)≥2,则u是一个割点。

扩展资料: 

定理1:

每个非平凡的连通图中至少有两个顶点不是割点。

证明 每个非平凡的连通图必有生成树,非平凡的树至少有两个度数为1的顶点,它们就不是非平凡的连通图的割点。

定理2:

设x为连通图

的边,则下列命题等价:

(1)x是G的桥;

(2)x不在G的任一圈上;

(3)存在两个不同的顶点u和w,使得x在每一条u与w间的每条路上;

(4)存在V的一个2-划分

,使得

,x在u与w间的每条路上。

参考资料来源:百度百科-割点    

参考技术A

割集,也叫做截集或截止集,它是导致顶上事件发生的基本事件的集合。也就是说事故树中一组基本事件的发生,能够造成顶上事件发生,这组基本事件就叫割集。引起顶上事件发生的基本事件的最低限度的集合叫最小割集。

在一个无向图中,如果有一个顶点集合,删除这个顶点集合以及这个集合中所有顶点相关联的边以后,图的连通分量增多,就称这个点集为割点集合。

割集的性质:

树与割集的概念具有互补的性质。

树连通一个图的全部顶点的极小边集合,割集则是把某些顶点与其他顶点分离的极小边集合,因此它们之间存在着一定的联系是不难理解的。下面的定理将充分说明这一点。

定理: 连通图G的一个割集C至少包含G的任意生成树的一个树枝。如果把C移去而仍有一棵树T存在,则图是连通的,那么C将不是一个割集。

参考技术B 割点:对于连通图中的一个点,如果去掉这个点后,原来的图变成非连通图,那么这个点就称为原图的一个割点。
点割集:对与连通的的一个点集合A,如果去掉A中所有的点后,原来的图变成非连通图,那么这个点集合A就称为原图一个点割集。
有上面的定义可知,割点和点割集并不一定是唯一的。若点割集的任意真子集不是点割集的话,那么这个点割集就称为极小点割集。而所有点割集中含的点个数最少的点割集就称为最小点割集。极小点割集不一定是最小点割集,这是两个不同概念,容易混淆。
有不懂的再问我吧......追问

那一般怎么看一个点是不是割点呢,是不是只要去掉这点看原图还连不连通就可以了? 如果是点割集呢?要怎么找

追答

嗯,判断割点方法就是看去掉这个点后原图是否连通。
判断点割集也是一样的,就是看去掉这个点集合后原图是否连通。

追问

那如果让你找点割集咋办,那么多点分别组合来看去掉后是否连通吗

追答

是尝试着组合时的,因为点割集有很多的,所以要找一个点割集一般是不困难的,但要说一个有效算法的话,我目前还没有找到哈,估计它不是一个多项式算法。我给你说个我认为的简单直观的算法吧:给定一个图后,找出其度最大的点,把这个点去掉,并去掉其所有邻边,若此图不联通,那么去掉的那点就构成了一个割点。若联通,再在剩下的图中找最大度的点,去掉度最大点与其邻边,若剩下的图不联通,那么刚才去掉的两个点构成点割集。否则继续找剩下的图的最大度点...以此类推...这个方法是最简单直观的,但不一定是最好的方法了.......

本回答被提问者采纳
参考技术C 割点就是图中存在一个点,如果去掉这个点的话,原来的连通图变成非连通图
一个集合A是不是点割集,判别方法如下:
①去掉A里面的点,原来的连通图变成非连通图
②对任意A的真子集B,B不是点割集
参考技术D http://zhidao.baidu.com/question/237352434.html
你看看这个或许会懂了追问

我看过了 没懂。

以上是关于oracle中的保存点是啥的主要内容,如果未能解决你的问题,请参考以下文章

oracle数据库emp表 啥意思 里面保存的都是啥数据

Cloud保存时提示消息是否保存,点是保存,点否不保存。

ORACLE 数据库中在将date类型转换成varchar类型时出现问题。SQL如下:

C++,是啥导致引用保存在内存中的方式不同

postgresql 中的重启点是啥?

Python中的点是啥? [复制]