1。上锁以后,如果中途return了,就要另想办法解锁。否则就会发生死锁2. 按钮按下后,要第一时间上锁(如果无法取得锁,则宁愿等待),然后解锁。有一种做法是,先判断,情况合适了再开始上锁。不好意思,有可能在电光火华之间,判断的时候是对的,执行下一句上锁之前,情况就已经不对了(比如资源被别的线程抢走...
                            
                            
                                分类:
其他好文   时间:
2015-01-17 06:23:38   
                                阅读次数:
101
                             
                         
                    
                        
                            
                            
                                一 背景 客户数据库经常出现死锁、超时、查询慢等问题,数据库mssql,数据量主要表大概上千W。二 收集信息 首先是要找出IO大、查询慢、使用频率高的脚本。直接用Profiler加上限制条件在生产环境收集了。三 辅助脚本 DMV动态管理视图是必不可少的。还有其他一些命令用来如 1set ...
                            
                            
                                分类:
数据库   时间:
2015-01-11 16:06:05   
                                阅读次数:
186
                             
                         
                    
                        
                            
                            
                                1.目前我只是在sql 2008上实验成功:在数据库开启跟踪标识:DBCC TRACEON(1204,-1)DBCC TRACEON(1222,-1)这两个跟踪标记都是将死锁写到错误日志中,不过1204是以文本格式进行,而1222是以XML格式保存。开启后通过查看数据库日志文件就可以找到是那个语句引...
                            
                            
                                分类:
数据库   时间:
2015-01-08 19:27:24   
                                阅读次数:
284
                             
                         
                    
                        
                            
                            
                                1.先模拟一个死锁: 1 CREATE TABLE Lock1(C1 int default(0)); 2 CREATE TABLE Lock2(C1 int default(0)); 3 INSERT INTO Lock1 VALUES(1); 4 INSERT INTO Lock2 VALUES...
                            
                            
                                分类:
数据库   时间:
2015-01-08 17:28:08   
                                阅读次数:
240
                             
                         
                    
                        
                            
                            
                                SQLServer扩展事件(ExtendedEvents)--使用扩展事件跟踪监控死锁脚本实现--Createaneweventsession(itisbettertocreateanewsessionandnotmodifythesystem’sbuilt-insession“system_health”):
CREATEEVENTSESSION[Deadlock_Monitor]ONSERVER
ADDEVENTsqlserver.xml_deadlock..
                            
                            
                                分类:
数据库   时间:
2015-01-08 11:32:50   
                                阅读次数:
211
                             
                         
                    
                        
                            
                            
                                SQLServer扩展事件(ExtendedEvents)--使用扩展事件跟踪监控死锁我们通过SQLServer2012图形界面来部署一个扩展事件跟踪会话。然后可以生成SQL脚本,在2008或2008R2版本下运行类似的跟踪。步骤1:通过“ObjectExplorer”连接到实例,展开“Management”、“ExtendedEvents”、..
                            
                            
                                分类:
数据库   时间:
2015-01-08 07:17:00   
                                阅读次数:
288
                             
                         
                    
                        
                            
                            
                                银行家算法是一种最有代表性的避免死锁的算法。在避免死锁方法中允许进程动态地申请资源,但系统在进行资源分配之前,应先计算此次分配资源的安全性,若分配不会导致系统进入不安全状态,则分配,否则等待。package com.zc.manythread;import javax.swing.JOptionPa...
                            
                            
                                分类:
编程语言   时间:
2015-01-07 21:59:24   
                                阅读次数:
366
                             
                         
                    
                        
                            
                            
                                SQLServer扩展事件(ExtendedEvents)--使用system_health默认跟踪会话监控死锁自SQLServer2008以后,提供了扩展事件(ExtendedEvents)来跟踪系统分析定位问题。默认的system_health会话一直在运行,可以帮助你更快的定位问题。运行如下脚本可以看到system_health扩展事件会话..
                            
                            
                                分类:
数据库   时间:
2015-01-07 19:00:34   
                                阅读次数:
707
                             
                         
                    
                        
                            
                            
                                SQLServer中如何监控死锁(Deadlock)什么是死锁?所谓死锁:是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进..
                            
                            
                                分类:
数据库   时间:
2015-01-07 18:59:27   
                                阅读次数:
222
                             
                         
                    
                        
                            
                            
                                一 基础知识在分析之前,先上一张图:从上面可以看到,这个w3wp进程占用了376M内存,启动了54个线程。在使用windbg查看之前,看到的进程含有 *32 字样,意思是在64位机器上已32位方式运行w3wp进程。这个可以通过查看IIS Application Pool 的高级选项进行设置:好了,接...
                            
                            
                                分类:
Web程序   时间:
2015-01-06 17:50:36   
                                阅读次数:
210