请教C/S信息管理系统如何避免死锁?
c/s,sql server 2005,30多个表。访问最频繁的任务表有50多个字段,40多万记录。
以前就偶尔出现死锁错误,近期由于用户增多,死锁更是频繁的出现。 =。=
我跟踪sql,发现死锁几乎都与上述的任务表有关(select、update)。
这个表是系统的核心,几乎所有的操作都会涉及到它,肯定是无法避免多人同时对它进行访问的。
请教这情况下如何避免死锁呢?撇开这套有设计缺陷的系统,设计逻辑复杂、数据量巨大的信息系统时应如何避免死锁呢?
是deadlock还是block?
deadlock
过多的使用事务是不是容易造成死锁?
有无枪狙击手的 BLOG 上的详细介绍在前,不再(敢)重复了。
只补充一点,在实际运行中,由于不可能更改设计和实现,SQL Server 2005 可以考虑使用“快照读已提交”事务隔离级别(ALTER DATABASE SET READ_COMMITTED_SNAPSHOT ON)。
SEE SEE
http://blog.csdn.net/fredrickhu/archive/2009/09/21/4574867.aspx
各个业务处理对表的操作顺序要一致。
1 使用事务时,尽量缩短事务的逻辑处理过程,及早提交或回滚事务; (细化处理逻辑,执行一段逻辑后便回滚或者提交,然后再执行其它逻辑,直到事物执行完毕提交)
2 设置死锁超时参数为合理范围,如:3分钟-10分种;超过时间,自动放弃本次操作,避免进程悬挂;
3 优化程序,检查并避免死锁现象出现;
4 .对所有的脚本和SP都要
相关问答:
请问各位高手如何用C/C++获得系统未安装补丁
好像很专业的东西。。。
查注册表
每个补丁如果安装了都会在注册表里面登记
请问能不能更清晰些,我想用c\c++查出来,不好意思,我是新手。还望指教。谢
分值 ......
#include "stdio.h"
int main()
{
char *ch(char *, char *);
char str1[]="I am glad to meet you!";
char str2[]="Welcom to study C!";
&nb ......