事务和锁--查看数据库中的锁

数据库加锁是修改哪一条加锁,还是在页上加锁,还是在表上加锁,数据库来决定

如果你更改的是两条记录,就在两条记录上加锁,如果你更改的是很多条,这个时候数据库一看一条一条加锁太麻烦,给整个页加锁更省事,或者给整个表加锁更加省事

加锁的级别越大,数据库越省事,数据库越省事,并发性越差,修改一条记录如果给表加上独占锁,那么想查询别的记录都查询不了了

加锁的对象越小,并发性越好

加的锁对象越大,并发性越差

刚开始就这几个锁

1、开启事务修改学生的名字,给学号为0000000001的学生姓名加个‘_01’,事务不提交

2、看到给Student表上的这1行加了独占锁
ObjId:2105058535表示是Student这张表
Type:RID表示是行标识
Resource:1:567:0,表示是第1个数据文件的第576页的第1行
Mode:X表示独占锁

3、开启事务修改学生的名字,给学号对2取余等于0的这1批学生姓名加个_01,事务不提交

4、看到给Student表加了独占锁
ObjId:2105058535表示是Student这张表
Type:TAB表示是表
Mode:X表示独占锁

原文地址:https://www.cnblogs.com/menglin2010/p/11847868.html

时间: 2024-10-26 14:19:30

事务和锁--查看数据库中的锁的相关文章

DB2查看数据库中的锁信息

利用"db2 connect to <db name>"连接到数据库后,执行相关指令 查询锁快照信息 db2 get snapshot for locks on <db name> 查询目前存在的锁 db2 SELECT AGENT_ID, LOCK_OBJECT_TYPE, LOCK_MODE, LOCK_STATUS FROM SYSIBMADM.SNAPLOCK 某一个用户的锁的情况 get snapshot for locks for applicati

查看数据库中那些表被锁了,那些阻塞了 并且如何杀死该进程

原文地址:http://topic.csdn.net/u/20100520/14/0570ec45-a1da-4067-8940-8f5eed42f4ab.html?32933 --检测死锁 --如果发生死锁了,我们怎么去检测具体发生死锁的是哪条SQL语句或存储过程? --这时我们可以使用以下存储过程来检测,就可以查出引起死锁的进程和SQL语句.SQL Server自带的系统存储过程sp_who和sp_lock也可以用来查找阻塞和死锁, 但没有这里介绍的方法好用. use mastergocre

数据库的隔离级别对应的就就是数据库中的锁

------------------------------------------------------ 数据库中的几种隔离级别 read uncommited--读未提交 该隔离级别指即使一个事务的更新语句没有提交,但是别的事务可以读到这个改变,几种异常情况都可能出现.极易出错,没有安全性可言,基本不会使用. read committed --读已提交 该隔离级别指一个事务只能看到其他事务的已经提交的更新,看不到未提交的更新,消除了脏读和第一类丢失更新,这是大多数数据库的默认隔离级别,如O

关系型数据库(五),数据库中的锁

目录 1.锁的分类 2.共享锁和排斥锁 3.乐观锁与悲观锁 五.数据库中的锁 1.锁的分类 2.共享锁和排斥锁 共享锁(读锁) 排斥锁(写锁) 3.乐观锁与悲观锁 (1)悲观锁 总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程).传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁.Java中sy

事务代码SE16N查看数据库可以使用命令激活编辑功能

&sap_edit命令可以激活SE16N编辑功能,维护数据表,但是是除了主键不能维护外都可以修改 事务代码SE16N查看数据库可以使用命令激活编辑功能,布布扣,bubuko.com

如何快速查看数据库中的表大小

exec sp_spaceused 以上语法可以查看数据库大小 以下可以查看数据库中每个表的数据条数 SELECT   a.name, b.rows FROM      sysobjects AS a INNER JOIN sysindexes AS b ON a.id = b.id WHERE   (a.type = 'u') AND (b.indid IN (0, 1)) ORDER BY b.rows DESC

MYSQL 查看数据库中所有用户及拥有权限

查看MYSQL数据库中所有用户 mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;+---------------------------------------+| query                                 |+---------------------------------------+| User: 'cactiuser'@

mysql查看数据库中所有表的行数,并进行排序

mysql查看数据库中所有表的行数,并进行排序: 进行数据库迁移或还原后,可以通过比较行数,检查数据是否正确. mysql> use information_schema; mysql> select table_name,table_rows from tables where TABLE_SCHEMA= 'kpsumi' order by table_rows desc; 原文地址:http://blog.51cto.com/9285090/2119096

Spring中的事务与数据库中的锁关系

本文只先简单的介绍下Spring中的事务与DB中锁的关系. 首先总结:Spring事务的实现本质上是使用的DB中的事务,而DB中的事务实现又主要依靠DB中的锁.所以spring事务本质上使用数据库锁,开启spring事务意味着使用数据库锁. 所以大家一定要厘清DB事务与DB各种锁的原理与概念.后续我也研究一下DB锁,并结合具体的生产环境监控数据来谈谈. <以下是转载部分内容.主要是Spring事务的使用方式.隔离级别之类的> 那么事务的隔离级别与锁有什么关系呢?本人认为事务的隔离级别是通过锁的