多用户并发访问

事务:作用于某些数据的一个不可分割的操作
 
锁:写锁、互斥锁(仅能被一个进程使用)      读锁、共享锁(可被多个进程使用)
 
更新丢失
脏读
不可重复读
幻影读
 
隔离级别:
1 READ COMMITTED 每个语句得到完整的视图
2 SERIALIZABLE 事务级别实施串行化
 
Oracle并发特性
1 回滚段:存储“撤销”信息的数据结构
redo日志用来记录数据库的所有事务;回滚段用于提供事务回滚和读一致性
2 系统改变号 SCN:保证事务执行的顺序
3 数据块中的锁:每个锁只影响数据块的一行
 
冲突写过程:
1 A更新操作
2 获取SCN,读取目标数据块
3 记录行锁信息
4 修改写入redo日志缓存
5 写入回滚段
6 B更新操作
7 获取SCN,读取数据块
8 发现上锁,如果是READ COMMITTED 等待执行完成后继续;如果是SERIALIZABLE,返回错误
9 A提交事务
10 如果B READ COMMITTED,继续执行
 
工作空间:与数据的变动分离,创建特定时间版本的数据空间
 
 

在线事务处理 OLTP

 
原子性
一致性
隔离性
持久性
 
OLTP通用特性:
1 事务吞吐量大而且并发用户量大
2 明确的性能需求
3 高可用性
4 可扩展性
 
通用并发与性能:
1 非升级行锁技术:只对事务处理的行加锁,不将锁的级别升级到也级别或者表级别
2 多版本读操作一致性:在不加读锁的情况下保证语句级和事务级的数据一致性
3 共享SQL:将经过分析和优化的SQL存放在共享内存池中的共享SQL区 内
4 存储概要:支持执行计划的稳定性
 
可扩展性:
多线程服务器MTS
Oracle Net连接池:允许客户端共享一个物理网络连接池
Oracle Net连接管理器:为多个客户分配一条网络连接。没有“超时”
 
实时应用程序集群:
高速缓存熔合:将所有的数据存放在实时应用集群中的每台主机的每个缓存内,这些数据对于急群众的其他任意主机都是可用的。
 
高可用性:
1 备用数据库:
2 透明故障迁移TAF:主机实例失败时,自动连接到另一个oracle实例
3 oracle 流/高级队列 AQ:一种异步或者延期的系统间通信方法
4 Oracle流复制:利用内置的复制功能提供数据冗余

oracle多用户并发及事务处理的更多相关文章

  1. Oracle多用户对一个表进行并发插入数据行操作

    oracle数据库支持多用户间同时对同一个表进行操作,但是数据不一定同步,因为oracle数据库是支持脏数据的,比如A用户删除了表的数据但没有提交,B用户也能查询访问到,如果要避免这种情况只能加锁,A ...

  2. Sql优化(三) 关于oracle的并发

    Oracle的并发技术可以将一个大任务分解为多个小任务由多个进程共同完成.合理地使用并发可以充分利用系统资源,提高效率.一. 并发的种类Parallel queryParallel DML(PDML) ...

  3. C# ASP.NET B/S模式下,采用lock语法 实现多用户并发产生不重复递增单号的一种解决方法技术参考

    有时候也好奇,若是老外发个技术文章,会不会到处是有人骂街的?进行人身攻击的?中国人喜欢打击别人,不知道老外是不是也是这个性格?好奇的问一下大家. 往往我们在开发程序.调试程序时,无法模拟多用户同时操作 ...

  4. LoadRunner 多用户并发 登录,上传数据,登出的脚本教程

    这里记录 Web/Http  模式,模拟多用户并发进行  : 登录,上传数据,退出登录一整套流程.并发的用户量多少,可自定义.这里不介绍录屏的方式,是自己写脚本去执行的. 1.安装loadRunner ...

  5. 039.Python使用TCP实现多用户并发

    使用TCP实现多用户并发 在前面的实验中,TCP建立连接时,只能允许一个用户连接,当第二个用户建立连接时,发送的信息,服务端是没有办法接受,只有当第一个用户退出时,才能接受到第二个用户的请求,并实现通 ...

  6. Oracle RAC 并发与架构

    10g RAC进程总概 一. RAC 并发 RAC 的本质是一个数据库,运行在多台计算机上的数据库,它的主要任务是数据库就是事务处理,它通过 Distributed Lock Management(D ...

  7. Oracle与SQL Server事务处理的比较

    事务处理是所有大型数据库产品的一个关键问题,各数据库厂商都在这个方面花费了很大精力,不同的事务处理方式会导致数据库性能和功能上的巨大差异.事务处理也是数据库管理员与数据库应用程序开发人员必须深刻理解的 ...

  8. Windows性能查看器:系统的性能信息(I/O,IIS最大连接数,Sql) ,以及解决 asp.net IIS 一二百多用户并发

    在测试过程中,我们经常需要知道“系统的资源利用情况”来监测我们的测试执行情况,来查看测试环境是否有效,测试结果是否可信,或者是在无人值守时保存结果,等我们值班时再来分析. 1.在Windows环境下, ...

  9. 用jmeter进行多用户并发压力测试 [转]

    近日manager要求对项目进行压力测试,开始对jmeter进行了研究.jmeter是Apache一个开源项目,可对各种项目进行测试,甚至包括junit. 测试要求如下,多用户同时登陆web应用程序, ...

随机推荐

  1. mysql存储过程获取sqlstate message_text

    群里有人询问,在mysql的proc中如何获取错误信息.错误编号呢?我们知道在oracle.mssql中比较简单: oracle中sqlcode,sqlerrm ;mssql中ERROR_PROCED ...

  2. jackson 进行json与java对象转换 之一

    代码无真相,为了最简单的说明,我直接上代码. public class User { private String name; private Gender gender; private List& ...

  3. leetcode429

    这道题目是属于树的层次遍历,使用两层的队列非空判断. class Solution { public: vector<vector<int>> levelOrder(Node* ...

  4. Solr根据参考点的坐标来返回范围内的小区和距离

    @Test public void query() throws Exception{ SystemDefaultHttpClient httpClient = new SystemDefaultHt ...

  5. 下载Django

    Django下载教程以及学习教程https://code.ziqiangxuetang.com/django/django-queryset-api.html 或者直接搜索自强学堂

  6. tornado带签名的cookie原理

  7. JVM的内存管理、对象的生命周期、内存泄漏

    1 JVM内存 分为“堆”.“栈”和“方法区”三个区域,分别用于存储不同的数据 1.1 堆 JVM在其内存空间开辟一个称为”堆”的存储空间,这部分空间用于存储使用new关键字所创建的对象. 1.2 栈 ...

  8. 使用批处理替换windows系统中的hosts文件

    chcp 936 >nul@echo offmode con lines=30 cols=60%1 mshta vbscript:CreateObject("Shell.Applica ...

  9. Windows系统 安装 Qt 5.7.0

    Windows系统 安装 Qt 5.7.0 我们的电脑系统:Windows 10 64位 Qt5 软件:Qt 5. 7. 0 下载 Qt 5.7.0 软件 在这个网站里面,下载:Qt 5.7.0 fo ...

  10. c# ??和运算符先后的问题

    ; ; - not1??; Console.WriteLine(a); 输出结果为:10 问题因该是??运算符没有-的优先级高,实际这个 操作等于: ; ; - not1)??); 解决这个问题的办法 ...