`
teachertina
  • 浏览: 12498 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

oracle多版本控制/读一致性和非阻塞读(1)

 
阅读更多

SCN:system Change Number /system commit number : 系统修改号/系统提交号,scn是oracle内部时钟,每次发生提交的时候,这个时钟(scn)都会自动滴答(递增更新),这个scn很容易得到:

declare
v_scn number;
begin
exec v_scn:= dbms_flashback.get_system_change_number;
dbms_put.put_line('scn:' || v_scn);
end;

 

有了scn,我们就可以告诉oracle我们要查询的时间点,以后查询的时候,就可以只看这个时间点上的数据:

select count(0) from t_name;
count(0)
--------------
       100

 

然后我们把这个表的数据给删掉,并且进行提交:

delete from t_name;
commit;
select count(0) from t_name;
count(0)
--------------
       0

 

不过使用闪回查询(as of scn /as of timestamp)可以让oracle告诉我们,这个时间点上的数据:

 select  count(*), :v_scn then_scn,dbms_flashback.get_system_change_number now_scn from t_name as of scn :v_scn;

count(*)   then_scn  now_scn
-------------------------------------
  100             65465     65466

 通过scn时间点的查询,能获取到那个时间点上版本的数据 count=100;

 

分享到:
评论

相关推荐

    mysql和oracle的区别

    ### MySQL与Oracle数据库的主要区别 #### 一、并发性 **MySQL**的并发处理主要依赖于不同的存储引擎。...总体而言,MySQL在SQL语句的便捷性和灵活性方面更具优势,而Oracle则在数据一致性、并发处理等方面更为强大。

    《Oracle9i&10g编程艺术》学习心得

    Oracle数据库通过多种机制保证读一致性的同时,还能实现非阻塞读。 **1. 读一致性:** 读一致性是指查询过程中看到的数据状态始终如一。Oracle通过多版本并发控制(MVCC)机制来实现这一特性,即每个事务都能看到其...

    Oracle9i&10g编程艺术:深入数据库体系结构.pdf

    7. **并发与多版本**:研究了并发控制机制和多版本读一致性。 - **事务隔离级别**:详细介绍了不同级别的隔离性和其应用场景。 - **多版本读一致性**:解析了Oracle如何处理多版本数据的一致性问题。 - **写一致...

    Oracle Concepts 10g R2 pdf 中英文对照版

    - **一致性读**:Oracle提供了一种称为“一致性读”的特性,使得用户可以在不阻塞其他事务的情况下读取数据。 #### 14. 可管理性 - **自动管理**:Oracle通过自动诊断资源管理器(ADDM)等工具提供了自动化管理的...

    Oracle 9i&10g编程艺术

    Oracle数据库采用多版本读一致性(Multi-Version Read Consistency)机制,允许不同事务同时读取同一数据的不同版本。这避免了读取操作对写入操作的阻塞,提升了并发处理能力。具体而言,当一个事务开始时,它可以看到...

    ORACLE学习心得

    多版本并发控制是Oracle的核心,保证了事务的一致性和并发性。游标管理与数据量无关,它在打开时确定了获取的数据,不受后续数据变化的影响。 总的来说,Oracle数据库的学习和优化是一个持续的过程,需要深入理解...

    事物处理与并发控制

    - Oracle通过锁和多版本并发控制来平衡并发性和数据一致性。锁机制防止数据冲突,而MVCC允许非阻塞读取,提高了并发性能。 - SET TRANSACTION语句允许设置事务的隔离级别,以适应不同的应用需求。例如,READ ONLY...

    Expert one on one Oracle.pdf

    - **分布式事务**:探讨了跨多个数据库或资源管理器的事务处理机制,以及Oracle如何支持这类复杂场景下的事务一致性。 ### 5. 重做与回滚 - **重做日志**:阐述了重做日志在事务提交过程中的作用,以及它是如何...

    oracle 内存分析

    9. **锁信息**:非进程控制的锁信息,例如用于保护数据一致性的一些内部锁。 ##### SGA的重要参数: - **DB_CACHE_SIZE**:设置数据缓冲区的大小。 - **LOG_BUFFER**:设置重做日志缓冲区的大小。 - **SHARED_POOL...

    Oracle Locking Survival Guide

    4. **多版本并发控制(MVCC)**:Oracle的Read Committed和Read Repeatable Read隔离级别利用MVCC实现非阻塞读操作,从而提高并发性能。 为了优化锁定性能,可以考虑以下策略: 1. **适当设计事务**:尽量减少事务...

    oracle与sql_server的区别

    Oracle通过使用回退段有效地避免了此类阻塞,确保事务间的独立性和一致性。 ### 外键约束 在处理外键约束时,SQL Server允许级联删除和级联更新,而Oracle仅支持级联删除。这意味着在SQL Server中,当主表中的记录...

    oralce编程艺术

    - 讨论事务的特性,包括原子性、一致性、隔离性和持久性,以及多版本并发控制(MVCC)如何支持非阻塞读操作。 #### 分区与并行 - 阐释分区技术如何提高大型数据集的管理效率,以及并行处理如何加速数据处理速度。 #...

    Oracle数据库面试题.pdf

    40. **读一致性和多版本并发控制**: - **读一致性**:保证不同事务读取的数据一致性。 - **多版本并发控制**:通过保留旧数据版本支持并发操作。 #### 三、高级知识(41-60) 41. **实例的启动与关闭过程**: ...

    Oracle--vb代码.rar

    9. 异步操作:在VB.NET版本中,可以利用异步编程模型(如`Async`和`Await`关键字)实现非阻塞的数据库操作,提高用户体验。 10. Oracle特有函数:Oracle数据库提供了一些特有的函数,如TO_DATE、TO_CHAR等,VB代码...

    ORACLE数据库应用中死锁的分析及改进.pdf

    - 锁:ORACLE使用锁来实现并发控制,确保数据的一致性。锁可以分为共享锁(读锁)和独占锁(写锁),防止多个事务同时修改同一数据。 3. 解决死锁的策略 - 预防死锁:通过合理设计事务的资源请求顺序,避免循环...

Global site tag (gtag.js) - Google Analytics