数据库锁、阻塞与并发
mituan1234567
今天比昨天更好明天比今天更好为此不屈不挠地工作勤勤恳恳地经营孜孜不倦地修炼我们人生的目的和价值就是这样确确实实地存在着
展开
-
SQL Server数据库表锁定原理以及如何解除表的锁定
1. 数据库表锁定原理1.1 目前的C/S,B/S结构都是多用户访问数据库,每个时间点会有成千上万个user来访问DB,其中也会同时存取同一份数据,会造成数据的不一致性或者读脏数据. 1.2 事务的ACID原则 1.3 锁是关系数据库很重要的一部分, 数据库必须有锁的机制来确保数据的完整和一致性.1.3.1 SQL Server中可以锁定的资源: 1.3转载 2013-01-28 15:41:17 · 441 阅读 · 0 评论 -
SqlServer事务中的可重复读和序列化隔离界别
http://www.cnblogs.com/OpenCoder/archive/2010/03/23/1692666.html有表t_lock:ID是主键,表中有5行数据,1~2,4~6 可重复读:SET TRANSACTION ISOLATION LEVEL REPEATABLE READ begin transelect转载 2014-03-22 18:44:57 · 773 阅读 · 0 评论 -
sqlserver锁表、解锁、查看销表
http://www.111cn.net/database/Oracle/44460.htm锁定数据库的一个表 代码如下复制代码SELECT * FROM table WITH (HOLDLOCK)注意: 锁定数据库的一个表的区别 代码如下复制代码SELECT * FROM tabl转载 2014-03-22 18:36:31 · 475 阅读 · 0 评论 -
windows临界区
http://www.cnblogs.com/dsky/p/3155032.html临界区:临界区是一种轻量级机制,在某一时间内只允许一个线程执行某个给定代码段。通常在多线程修改全局数据时会使用临界区。事件、信号量也用于多线程同步,但临界区与它们不同,并不总是执行向内核模式的切换,这一转换成本昂贵。要获得一个未占用临界区,事实上只需要对内存做出很少的修改,其速度非常快。只有在尝转载 2014-03-23 20:53:17 · 710 阅读 · 1 评论 -
C#线程同步(3)- 互斥量 Mutex
http://www.blogbus.com/xxinside-logs/47162540.html什么是Mutex “mutex”是术语“互相排斥(mutually exclusive)”的简写形式,也就是互斥量。互斥量跟临界区中提到的Monitor很相似,只有拥有互斥对象的线程才具有访问资源的权限,由于互斥对象只有一个,因此就决定了任何情况下此共享资源都不会同时被多个线程转载 2014-03-23 22:07:44 · 568 阅读 · 0 评论 -
C#线程同步(2)- 临界区&Monitor
http://www.blogbus.com/xxinside-logs/46740731.html监视器(Monitor)的概念 可以在MSDN(http://msdn.microsoft.com/zh-cn/library/ms173179(VS.80).aspx)上找到下面一段话:与lock关键字类似,监视器防止多个线程同时执行代码块。Enter方法允许一个且仅转载 2014-03-23 21:47:53 · 611 阅读 · 0 评论 -
C#线程同步(1)- 临界区&Lock
http://www.blogbus.com/xxinside-logs/46441956.html预备知识:线程的相关概念和知识,有多线程编码的初步经验。 一个机会,索性把线程同步的问题在C#里面的东西都粗略看了下。 第一印象,C#关于线程同步的东西好多,保持了C#一贯的大杂烩和四不象风格(Java/Delphi)。临界区跟Java差不多只不过关键字用lock替代转载 2014-03-23 21:03:59 · 686 阅读 · 0 评论 -
sqlserver使用select加锁
http://www.cnblogs.com/micromouse/archive/2010/06/20/1761306.htmlsqlserver使用select加锁功能说明HOLDLOCK将共享锁保留到事务完成,而不是在相应的表、行或数据页不再需要时就立即释放锁。HOLDLOCK 等同于 SERIALIZABLE。 NOLOCK不要发出共享锁,转载 2014-04-04 10:32:26 · 782 阅读 · 0 评论 -
用锁实现SQLSERVER中并发控制--实现Oracle中select .... for update功能
http://blog.sina.com.cn/s/blog_548c08c80101aic8.html研究Oracle的同学都知道,Oracle的select语句中可以使用for update或者for update nowait来控制并发,这一功能可以使开发人员轻易的将锁定控制在会话级+行级,可以说是高度并发的利器。 而在SQLSERVER中却没有如此功能,但很多开转载 2014-04-04 10:30:32 · 859 阅读 · 0 评论 -
C#中的事务处理
http://blog.tianya.cn/blogger/post_show.asp?BlogID=66841&PostID=1888230[Web Applicaion in C#] SqlConnection myConnection = new SqlConnection("Data Source=localhost;Initial Catalog=Northwind;I转载 2014-04-04 13:52:39 · 697 阅读 · 0 评论 -
c# 互斥锁(Mutex)使用详解
http://zwkufo.blog.163.com/blog/static/258825120104297724292/互斥锁(Mutex)互斥锁是一个互斥的同步对象,意味着同一时间有且仅有一个线程可以获取它。互斥锁可适用于一个共享资源每次只能被一个线程访问的情况 函数://创建一个处于未获取状态的互斥锁Public Mutex();/转载 2014-03-24 22:47:42 · 24945 阅读 · 0 评论 -
SQL SERVER的锁机制(一)——概述(锁的种类与范围)
http://www.cnblogs.com/chillsrc/archive/2013/04/13/3018386.htmlSQL SERVER的锁机制系列: SQL SERVER的锁机制(一)——概述(锁的种类与范围) SQL SERVER的锁机制(二)——概述(锁的兼容性与可以锁定的资源) SQL SERVER的锁机制(三)——概述(锁与事务隔转载 2014-04-09 19:07:30 · 572 阅读 · 0 评论 -
利用redis + lua解决抢红包高并发的问题
http://blog.csdn.net/hengyunabc/article/details/19433779抢红包的需求分析抢红包的场景有点像秒杀,但是要比秒杀简单点。因为秒杀通常要和库存相关。而抢红包则可以允许有些红包没有被抢到,因为发红包的人不会有损失,没抢完的钱再退回给发红包的人即可。另外像小米这样的抢购也要比淘宝的要简单,也是因为像小米这样是一个公司的,如果转载 2014-12-25 10:29:27 · 837 阅读 · 0 评论 -
sumflower SqlServer查询语句中用到的锁
http://www.cnblogs.com/sumflower/archive/2012/03/13/2393346.html前段时间**公司DBA来我们这培训。讲了一大堆MYSQL的优化。 QA环节一程序员问 “SQL语句中的 with nolock 除了不锁表外 是否能读其他锁住的数据"讲课的人嘟嘟了半天没解释清楚(有可能是MYSQL里没有这个机制),公司的另一程转载 2014-03-22 18:43:51 · 597 阅读 · 0 评论 -
sql server中的锁 事务锁 更新锁 保持锁 共享锁
http://hi.baidu.com/xuy1990/item/f6b42b251a6c22dda517b65b锁定数据库的一个表 SELECT * FROM table WITH (HOLDLOCK)注意: 锁定数据库的一个表的区别SELECT * FROM table WITH (HOLDLOCK) 其他事务可以读取表,但不能更新删除SEL转载 2014-03-22 18:41:34 · 740 阅读 · 0 评论 -
查看sqlserver被锁的表以及如何解锁
http://blog.csdn.net/pengpegv5yaya/article/details/8643417查看sqlserver被锁的表以及如何解锁 查看被锁表: select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName转载 2014-03-22 18:37:14 · 482 阅读 · 0 评论 -
查看sqlserver被锁的表以及如何解锁
查看sqlserver被锁的表以及如何解锁 查看被锁表: select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tran_locks where resource_type='OBJECT' spid 锁表进程转载 2013-01-28 15:51:21 · 380 阅读 · 0 评论 -
数据库并发控制
数据库是一个共享资源,可以提供多个用户使用。这些用户程序可以一个一个地串行执行,每个时刻只有一个用户程序运行,执行对数据库的存取,其他用户程序必须等到这个用户程序结束以后方能对数据库存取。但是如果一个用户程序涉及大量数据的输入/输出交换,则数据库系统的大部分时间处于闲置状态。因此,为了充分利用数据库资源,发挥数据库共享资源的特点,应该允许多个用户并行地存取数据库。但这样就会产生多个用户程序并发存取转载 2013-02-19 16:34:38 · 464 阅读 · 0 评论 -
大数据量高并发的数据库优化
一、数据库结构的设计 如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能。所以,在一个系统开始实施之前,完备的数据库模型的设计是必须的。 在一个系统分析、设计阶段,因为数据量较小,负荷较低。我们往往只注意到功能的实现,而很难注意到性能的薄弱之处,等到系统投入实际运行一段时间后,才发现系统的性能在降低,这时再转载 2013-02-19 16:50:16 · 390 阅读 · 0 评论 -
如何在其他Session跳过被锁定的记录
链接:http://www.eygle.com/archives/2005/03/eciouaeeeusessi.html有人问到这样的问题:如果一个用户对记录加锁,如何使其他用户看不到这条记录。此前并未注意到这样一个用法(需要8.1.7.4.16以上的版本支持):[oracle@jumper oracle]$ sqlplus scott/tigerSQL*Pl转载 2013-02-19 16:58:03 · 373 阅读 · 0 评论 -
Oracle并发连接数的设置
http://www.cnblogs.com/yanchengrui/archive/2009/09/17/1568247.html不能连接Oracle数据库了,提示相关的错误OERR: ORA-12519 TNS:no appropriate service handler found客户端连接间歇性失败,报错ORA-12519 Cause: the listen转载 2013-02-26 13:55:42 · 462 阅读 · 0 评论 -
游标、事务并发和锁三者之间的那点事
http://blog.csdn.net/jiuqiyuliang/article/details/7852329对数据库学习的不断深入,对游标的认识也在逐渐加深,游标与事务、锁有着密不可分的关系。 无论是事务、锁还是游标相对于数据库来说最主要目的是保证数据的完整性。对事务并发、锁定的深入学习才能更加完善对游标的理解。少说废话,下面进入本篇文章的正题。 首先,我们讲解游标转载 2013-03-29 15:51:09 · 563 阅读 · 0 评论 -
记录集游标和锁定类型
http://club.topsage.com/thread-119484-1-1.html你可以用四种类型的游标打开一个记录集。游标决定了你可以对一个记录集进行什么操作。游标还决定了其他用户可以对一个记录集进行什么样的改变。下面列出了游标的不同类型和限制: adOpenFowardOnly。使用前向游标,你只能在记录集中向前移动。 adOpenKeyset。使用Keyset游转载 2013-03-29 16:03:43 · 918 阅读 · 0 评论 -
SQLSERVER 锁定记录,只允许单用户修改的例子
http://bbs.csdn.net/topics/300001895锁定记录,只允许单用户修改的例子 create table #锁表(编号 int) --代码:if exists(select 1 from 编号='你的编号') return insert #锁表 values('你的编号')转载 2014-04-29 15:25:54 · 927 阅读 · 0 评论 -
线程间同步之 Mutex(mutual exclusion 互斥量)
http://www.cnblogs.com/yuqilin/archive/2011/10/21/2218833.htmlMutex是提供同步访问多个进程的一个类。和Monitor极其类似。相同点:Mutex和Monitor都只能有一个线程拥有锁定。区别:Mutex可用于进程内的线程同步,也可用于进程同步,一般用于进程同步。Monitor则只能用于进程内的线程同步。当进行进程转载 2014-03-29 15:38:33 · 683 阅读 · 0 评论 -
c# lock (obj) 与 lock (this) 区别
http://www.cnblogs.com/yuqilin/archive/2011/10/15/2213766.htmllock(obj) 锁定 obj 对象lock(this) 锁定 当前实例对象,如果有多个类实例的话,lock锁定的只是当前类实例,对其它类实例无影响。直接上代码。主窗体代码如下:delegate void SetTextCal转载 2014-03-29 15:40:51 · 587 阅读 · 0 评论 -
C# WaitHandle 使用教程
http://hi.baidu.com/linrao/item/0a89b709945d8be1ff240df6程序的执行效果如下: WaitHandle WaitHandle类是一个抽线类,有多个类直接或者间接继承自WaitHandle类,类图如下: 在 WaitHandle类中SignalAndWait、WaitAll、WaitAny及转载 2014-03-20 21:56:06 · 6763 阅读 · 0 评论 -
C#给线程传递参数有3种方式
C#给线程传递参数有3种方式从《C#高级编程》了解到给线程传递参数有两种方式,一种方式是使用带ParameterizedThreadStart委托参数的Thread构造函数;另一种方式是创建一个自定义类,把线程的方法定义为实例的方法,这样就可以初始化实例的数据,之后启动线程。 方式一:使用ParameterizedThreadStart委托 如果使用了ParameterizedTh转载 2014-03-20 22:42:48 · 1685 阅读 · 0 评论 -
为什么Actor模型是高并发事务的终极解决方案?
http://www.jdon.com/45728首先看看道友提出的一个问题:用户甲的操作1.开始事务2.访问表A3.访问表B4.提交事务乙用户在操作1.开始事务2.访问表B3.访问表A4.提交事务 如果甲用户和乙用户的两个事务同时发生,甲事务锁住了表A未释放(因为整个事务未完成),正在准备访问B表,而乙事务锁住了表B未释放(因为整个事务转载 2015-02-27 18:42:29 · 851 阅读 · 0 评论