易截截图软件、单文件、免安装、纯绿色、仅160KB

关于SQL Server死锁

transaction 1:
------------------------------------------------------
 begin transaction
  update table1 set cola = 'str1'
  Waitfor time '10:12:00'
  update table2 set colb = 'str2'
 rollback transaction
 
transaction 2:
------------------------------------------------------
 begin transaction
  update table2 set colb = 'str2'
  Waitfor time '10:12:00'
  update table1 set cola = 'str1'
 rollback transaction
 
同时运行这两个事务,将导致死锁。(先创建table1和table2,并插入一些值;waitfor time 适当修改)
SQL Server本身会处理死锁,通过选择一个死锁牺牲品,回滚死锁牺牲品的事务,来避免死锁。
SQL Server在上面这两个事务中自动选择一个作为死锁牺牲品,该事务将收到如下消息:
------------------------------------------------------
 Msg 1205, Level 13, State 56, Line 7
 事务(进程 ID 52)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务。
SQL Server选择死锁牺牲品根据的是代价最小原则,用户也可以通过设置DEADLOCK_PRIORITY选项进行干预。
例如,在事务1 set DEADLOCK_PRIORITY low,在事务2 set DEADLOCK_PRIORITY high,则发生死锁时SQL Server将选择事务1作为死锁牺牲品。
如何避免死锁:
1. 多个并发事务按照同样的顺序访问对象
2. 在事务中避免用户交互
3. 尽量缩短事务的执行时间,客户端不应把一个事务分成多次发送。
4. 设置更低的隔离级别
5. 使用捆绑连接


相关文档:

今天装了Oracle SQL developer

下载后解压缩就能直接使用了,但是是中文的,字体显示的不是很好,于是找到了换英文的办法:
由于1.5包含了多语言界面的支持,但是它是通过JVM来辨认系统语言的,所以当你的系统语言为中文的时候,它会使用中文界面。不过它的中文翻译并不完整,加上默认界面字体太小,使用中文会看着非常难受。如果想使用英文界面,需要修 ......

SQL SERVER获取表的空间分布情况

/********************************
功能:获取表的空间分布情况
**********************************/
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tablespaceinfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
create table  tablespaceinfo      ......

修改sql server 的连接数

 如何修改SQL Server的连接数
我把SQL   Server   7.0的用户连接数设为1后,数据库就再也连不上了,所以也没办法修改连接数  
  请问有什么办法能修改连接数?
在server   的属性里面有个connetctions     的  
   
  maximun     concurr ......

同一个交叉表的动态SQL实现

DECLARE
 TYPE list IS TABLE OF t_stu.project%TYPE INDEX BY BINARY_INTEGER;
 project_list list;
 v_pro_num NUMBER;
 sql_str VARCHAR(255);
 
t_stu
SID SUBJECT SCORE
1        数学       &n ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号