• Oracle课程档案。第十一天


    读一致性:oracle通过多版本与闪回机制保证读一致性。保证从某个时间点开始查询是一致的。在Oracle中主要通过SCN版本号来控制系统修改的版本,典型的例子是我们可以通过在同一个查询中得到同一个对象在“两个时间点”上的结果:

    select * from (select count(*) from emp),(select count(*) from emp as of scn :scn)

    多个用户同时访问数据库

    consistency:一致性

    非阻塞查询:当修改数据时,Oracle只看数据是否改变,并不关心数据当前是否锁定,Oracle只从回滚段中取回原来的值,并继续处理下一个数据块


    1.读一致性:对于一个时间点(point in time),查询会产生一致的结果;

    2.非阻塞查询:查询不会被写入器阻塞,但在其他数据库中并非如此(SQL Server)


    读写冲突通过读一致性解决:
    sys准备工作:
    SQL> create user user01 identified by password;
    SQL> grant dba to user01;
    以下都用user01:
    SQL> conn user01/password
    Connected.
    SQL> create table t1(x int);
    SQL> insert into t1 values (1);
    SQL> commit;
    session1:
    SQL> update t1 set x=11 where x=1;
    SQL> select * from t1;
    session 2:
    SQL> select * from t1;
    session 1:
    SQL> commit;
    session 2:
    SQL> select * from t1;
    测试serializable:
    session1:
    SQL> alter session set isolation_level=serializable;
    重复上面的步骤

    写与写的冲突通过锁机制解决:
    session 1:
    SQL> update t1 set x=11 where x=1;
    浏览器中查看锁信息
    session 2:
    SQL> update t1 set x=111 where x=1; 被阻塞
    浏览器中查看锁信息
    session 1:
    SQL> rollback;
    浏览器中查看锁信息

  • 相关阅读:
    解决Struts中文乱码问题总结
    也谈创业企业CEO该拿多少工资
    Codeforces Round #242 (Div. 2) A. Squats
    设计模式之模板方法模式
    hdu2768Cat vs. Dog (反建法,最大独立集)
    Python
    kvm
    linux bin文件制作
    python
    pytho
  • 原文地址:https://www.cnblogs.com/awdsjk/p/7352454.html
Copyright © 2020-2023  润新知