使用oracle数据库,多用户同时对一个表进行增加,删除,修改,查看等操作,会不会有影响?
使用oracle数据库,多用户同时对一个表进行增加,删除,修改,查看等操作,会不会有影响?
1.问题:各操作间或者性能上会不会有影响?
如果有该如何解决? 多用户操作的影响主要是回锁定记录,oracle数据库提供行级锁,也就是说用户操作数据时,oracle为记录行加锁,当然如果用户一次性操作的数据过多,oracle的锁资源过大,或者锁定数据长时间没有释放(例如几百万条记录更新移植没有提交)。oracle的资源不够,回升级为表锁。
至于性能,仍然跟锁定的资源大小有关系。
多用户操作的解决方法:
一次更新量不要太大,记得及时提交结果,养成sql语句后面立即commit或者rollback的习惯。(我们以前有个非常搞笑的同时,数据处理报错先在前台页面弹窗提示,等操作人员点了确认才提交或者回滚,结果操作人员一看见弹窗就打电话咨询去了,事务几个小时都没提交)
多人操作表是有加锁的 也就是表是共享的 行是独占的 你正在操作的行别人只能查 不能一起做修改的操作 你commit或rollback之后就会释放锁别人就可以操作了.
oracle并发可以解决这个问题,只要在增、删、改时记得及时commit或rollback就行了. 2.两个用户同时对一个表进行增加操作,是不是要等一个增加完之后另一个才可以执行增加操作啊?
一个用户加数据,如果加完数据立即做事务处理,另一个用户就不用太久等待,甚至可能没有感觉,再如果一个用户加数据加锁后不做事务处理,那另一个用户就会一直等待,直到第一个用户commit后才可以执行第二个用户的操作.
1 oracle的数据模式是:用户建在表空间上,表建在用户上
2 一个用户的表就象自己的私有财产一样,没有自己或管理员授权别的用户是不能查询或修改的;
3 对于不同用户下的同名表,都是独立的数据对象,如user1.table1和user2.table1是相互独立的,用户分别操作自己的表是不影响其他用户的;
4 对于同一用户下的同一个表,所有有权限的用户对其进行数据操作时,是会相互影响的,如对user1.table1来说,user1修改了它的一行,user2又对该表的该行进行了修改,那么该表的该行的实际内容是在user1修改后基础上user2修改的结果(注意,所有修改以最后成功提交修改请求的用户的内容为准),多个用户对同一个用户下的同一个表的同时修改和锁定会造成锁等待
使用oracle数据库,多用户同时对一个表进行增加,删除,修改,查看等操作,会不会有影响?的更多相关文章
- AutoCad 二次开发 .net 之层表的增加 删除 修改图层颜色 遍历 设置当前层
AutoCad 二次开发 .net 之层表的增加 删除 修改图层颜色 遍历 设置当前层 AutoCad 二次开发 .net 之层表的增加 删除 修改图层颜色 遍历 设置当前层我理解的图层的作用大概是把 ...
- 查看Oracle数据库被锁住的表,删除锁表的进程
锁表处理及查询 查看Oracle数据库被锁住的表,删除锁表的进程 1.查看被锁住的表 SELECT dob.object_name table_name, lo.locked_mode, lo. ...
- 查看oracle数据库下面的所有的表,执行某个sql脚本:
查看oracle数据库下面的所有的表: select * from user_tables;//user为用户名 执行某个sql脚本: SQL>@e 文件名.sql
- 在数据库里面有这么一个表:用m代表男,用f代表女,现在我要输出格式为中文的:男和女,sql语句该怎么写
在数据库里面有这么一个表:用m代表男,用f代表女,现在我要输出格式为中文的:男和女, sql语句该怎么写 select case sex when 'm' then '男' else '女' a ...
- 在mysql数据库中创建Oracle数据库中的scott用户表
在mysql数据库中创建Oracle数据库中的scott用户表 作者:Eric 微信:loveoracle11g create table DEPT ( DEPTNO int(2) not null, ...
- 何查询SQL Server数据库没有主键的表并增加主键
SQL Server数据库中,如果一个表没有主键,我们该如何查询呢?本文我们主要就介绍了如何查询数据库中没有主键的表名并为其增加主键的方法,希望能够对您有所帮助. 该功能的实现代码如下: declar ...
- 两种方法将oracle数据库中的一张表的数据导入到另外一个oracle数据库中
oracle数据库实现一张表的数据导入到另外一个数据库的表中的方法有很多,在这介绍两个. 第一种,把oracle查询的数据导出为sql文件,执行sql文件里的insert语句,如下: 第一步,导出sq ...
- 分享知识-快乐自己: Oracle数据库实例、用户、表、表空间之间关系
数据库: Oracle数据库是数据的物理存储.这就包括(数据文件ORA或者DBF.控制文件.联机日志.参数文件). 其实Oracle数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库 ...
- oracle数据库如何打印九九乘法表
对于九九乘法表,相信对于懂IT的人并不陌生,但是外行可能会有很多的不懂,c语言也同样需要了解,它是学习的入门课程,oracle数据库书写九九乘法表有好几种方式,下面就有我为大家介绍,一起来看看吧. 九 ...
随机推荐
- ThinkPhp学习11
原文:ThinkPhp学习11 一.模板的使用 (重点) a.规则 模板文件夹下[TPL]/[分组文件夹/][模板主题文件夹/]和模块名同名的文件夹[Index]/和方法名同名的文件[i ...
- gcc -D 传值给代码,默认值为1
gcc -D 传值给代码,默认值为1 -D 参数可以给代码中的宏打开一扇门.简单的代码#include <stdio.h> #ifdef WHO #define NAME "jo ...
- STM32学习笔记2-系统时钟知识及程序配置
一:基本知识 1. STM32F103ZE有5个时钟源:HSI.HSE.LSI.LSE.PLL. ①.HSI是快速内部时钟,RC振荡器,频率为8MHz,精度不高. ②.HSE是快速外部时钟, ...
- C++不确定行为
一个简单的程序引发了一块让人纠结的领域,也许强调编程规范的重要性也在这把.规范了就easy避免一些问题. 程序是这种 int Change(int& a) { a = 4; return a; ...
- php 简易验证码(GD库)
论坛中为了防止灌水,出现了非常多的验证码的插件.如今这里介绍一个非常easy的自己定义验证码函数,这个验证码实现的原理就是通过php扩展的gd库来实现的. 给出百度百科对验证码的定义"验证码 ...
- 设备管理 USB ID
发现个USB ID站点,对于做设备管理识别的小伙伴特别实用 http://www.linux-usb.org/usb.ids 附录: # # List of USB ID's # # Maintain ...
- Uva - 11419 - SAM I AM
题意:一个矩形——R*C的网格,在某些位置上有石头,在网格外开一炮可以打掉该行或者该列的石头,求打掉这些石头最少需要多少门大炮,位置分别设在哪行哪列(0<R<1001, 0 < C ...
- Android开发 更改返回button的图标
非常多的Android应用左上角都有返回button 在默认的情况下 ADT会默认给一个返回图标 而作为开发需求 非常多都要求定制一个新的图标 在Android的站点上 发现了2种能够更改的方法 1. ...
- 初尝Java序列化/反序列化对象
看个类: package com.wjy.bytes; import java.io.Serializable; public class ObjTest implements Serializabl ...
- TreeSet排序
TreeSet的排序能够通过两种方法来实现: 1.通过TreeSet(Comparator<? super E> comparator) 构造方法指定TreeSet的比較器进行排序. 2. ...