1.对一个表执行ddl(新增字段)会不会阻塞表,影响读写? 在一次项目升级之前需要执行一个新增字段的脚本(alter table...),表的数据量是260多万,执行时间是72秒,感觉略长,不知道会不会影响项目对数据库的操作,故连百度带问一番,得出一些结果. 结论是:执行alter table...会影响读写 2.MySQL官方文档alter table的解释 ALTER TABLE operations that use the COPY algorithm wait for other op…
一.前言 在联机事务处理(OLTP)的数据库应用系统中,多用户.多任务的并发性是系统最重要的技术指标之一.为了提高并发性,目前大部分RDBMS都采用加锁技术.然而由于现实环境的复杂性,使用加锁技术又不可避免地产生了死锁问题.因此如何合理有效地使用加锁技术,最小化死锁是开发联机事务处理系统的关键. 二.死锁产生的原因 在联机事务处理系统中,造成死机主要有两方面原因. 一方面,由于多用户.多任务的并发性和事务的完整性要求,当多个事务处理对多个资源同时访问时,若双方已锁定一部分资源但也都需要对方已锁定…
--查询数据库锁表记录 select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode from v$locked_object lo, dba_objects ao, v$session sess, v$process p where ao.object_id = lo.object_id and lo.session_id = sess.sid -- and…
1.SQL对数据库进行操作: 创建数据库: 语法: create database 数据库名称 [character set 字符集 collate 字符集校对规则];字符集校对规则即所用字符集的数据库中的数据值是否区分大小写.排列顺序等规则. 查看数据库: 查看数据库服务器中所有的数据库:show databases; 查看某个数据库的定义信息:show create database 数据库名称; 修改数据库: 语法:alter database 数据库名称 character set 字符…
昨天晚上7点左右,对一张表进行加字段,大概200多万条记录,字段90多个的大表,结果造成mysql锁表,进而导致服务不可用.执行语句如下: ALTER TABLE `sc_stockout_order` ADD `route_remarks` VARCHAR(1024)  CHARACTER SET utf8mb4  NULL  DEFAULT mysql配置如下: 打开服务期日志,发现有如下报错: Cause: org.springframework.jdbc.CannotGetJdbcCon…
先用这条命令查询数据库阻塞的进程 SELECT * FROM information_schema.innodb_trx 找到后在根据下图这个字段:try_mysql_thread_id 作为这条数据的主键id执行这个sql进行删除: kill id ;(杀死对应id的进程).假设这里try_mysql_thread_id=277 的这条数据是锁了.我们执行 kill 277 删除就不在锁表了…
下午代码迁移,更新数据库记录时for update语句无法执行,数据库被锁,KILL掉几个进程搞定. Oracle数据库操作中,我们有时会用到锁表查询以及解锁和kill进程等操作,那么这些操作是怎么实现的呢?简要介绍一下. 锁表查询的代码有以下的形式: select count(*) from v$locked_object; select * from v$locked_object; 查看哪个表被锁 select b.owner,b.object_name,a.session_id,a.lo…
在团队开发一个项目的时候,避免不了两个或两个以上的人同时操作某一数据库中的同一张表,这时候,如果一个用户没有提交事务,或者忘记提交事务,那么其他用户就不能对这张表进行操作了,这是很烦人的事情,下面是查询是哪个用户将表锁住了,并且生成解表语句的sql: Select O.OWNER, O.OBJECT_NAME, O.OBJECT_TYPE, (SELECT C.MACHINE FROM V$SESSION C WHERE C.SID = S.SID), (SELECT C.PROGRAM FRO…
--查看数据库最大连接数 select value from v$parameter where name = 'processes'; --更改数据库连接数 alter system scope = spfile; --查看被锁的表 select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id; --查看当前…
1,锁表语句简单查询方法   select t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id=t2.sid order by t2.logon_time 2,对于上面查询的结果来解锁,如下所示 alter system kill session '382,1125'   3,锁表详细信息查询   select dba_objects.object…