O okmwq Unregistered / Unconfirmed GUEST, unregistred user! 1999-04-27 #1 在DELPHI 下编程,如何避免MSSQLSERVER死锁,如 死锁,如何解锁.
M Marlowe Unregistered / Unconfirmed GUEST, unregistred user! 1999-04-29 #2 死锁大多数情况是Update锁和其他锁死锁。 如果系统对数据实时性要求不高,可以在Select 后面加Nolock,即允许脏读。 我在一个100多人用的系统里使过,效果非常不错。
W wgzhang Unregistered / Unconfirmed GUEST, unregistred user! 1999-04-30 #3 如果发生死锁,可以用EnterPrise Manager杀死锁的进程。
N NetAnts Unregistered / Unconfirmed GUEST, unregistred user! 1999-04-30 #4 1、尽量少用Table,多用Query; 2、Table用完以后及时Close; 3、SQl Server 的最大进程默认为15个,可以改大!(好象要向MS购买) ................
S SeaSky Unregistered / Unconfirmed GUEST, unregistred user! 1999-04-30 #5 Marlowe 的办法是最有效的. 减少因使用Select查询,而锁定表. 在MS SQL server 中用Nolock , Sybase SQL server 中用 NoHoldLock. 例子: Select A.AAA, A.BBB from TableA A nolock where BBB > 0
Marlowe 的办法是最有效的. 减少因使用Select查询,而锁定表. 在MS SQL server 中用Nolock , Sybase SQL server 中用 NoHoldLock. 例子: Select A.AAA, A.BBB from TableA A nolock where BBB > 0
王 王寒松 Unregistered / Unconfirmed GUEST, unregistred user! 1999-06-09 #7 SQL SERVER避免死锁的办法 1。使用存储过程,提高存取效率 2。查询不要用 TTABLE, 而是使用QUERY,tTable使用SELECT * 的方式查找数据 容易导致网络流量过大,和SERVER端的锁升级(升级到表锁就惨) 3。 尽量不用DBGIRD 和一些数据敏感性的控件, 这样在查询完后,将查找结果 显示到一些非数据控件里,查询完后立刻关闭QUERY 4, 更新数据的过程使用database的显式事务控制, try database1.starttransaction; ... database1.commit; except database1.rollback; showMessage('error'); end; 这样保证在更新主从表的时候不至于因为更新错误导致 关联不正确 5. 上面提到的事务执行周期要短,如需更新多条数据 最好不要将更新多条放在一个事务里,而应为每条记录的更新 建立一个事务。 缩小事务规模,减小锁定时间 6。 查询使用脏读 NOLOCK选项 Seasky 的SQL 写的有误 Select A.aaa, A.bbb from TableA A (nolock) where bbb>0 nolock 两边该加上括号,否则的话,出现异常
SQL SERVER避免死锁的办法 1。使用存储过程,提高存取效率 2。查询不要用 TTABLE, 而是使用QUERY,tTable使用SELECT * 的方式查找数据 容易导致网络流量过大,和SERVER端的锁升级(升级到表锁就惨) 3。 尽量不用DBGIRD 和一些数据敏感性的控件, 这样在查询完后,将查找结果 显示到一些非数据控件里,查询完后立刻关闭QUERY 4, 更新数据的过程使用database的显式事务控制, try database1.starttransaction; ... database1.commit; except database1.rollback; showMessage('error'); end; 这样保证在更新主从表的时候不至于因为更新错误导致 关联不正确 5. 上面提到的事务执行周期要短,如需更新多条数据 最好不要将更新多条放在一个事务里,而应为每条记录的更新 建立一个事务。 缩小事务规模,减小锁定时间 6。 查询使用脏读 NOLOCK选项 Seasky 的SQL 写的有误 Select A.aaa, A.bbb from TableA A (nolock) where bbb>0 nolock 两边该加上括号,否则的话,出现异常
J JAYLV Unregistered / Unconfirmed GUEST, unregistred user! 1999-06-09 #8 可以使用三层结构,由于三层结构使用同一个应用服务器连接数据库,而多个客户 端只是访问同一个应用服务器,应该可以解决死锁问题
王 王寒松 Unregistered / Unconfirmed GUEST, unregistred user! 1999-06-09 #9 to Jaylv: 锁与多人有关系,但不是只有多人时才会有锁, 单人一样会有锁, 也就是说即使你用三层结构,一样会在 SERVER端被不同的表 加锁, 单机连的SERVER的时候甚至有自己的程序把自己锁死了的情况。
to Jaylv: 锁与多人有关系,但不是只有多人时才会有锁, 单人一样会有锁, 也就是说即使你用三层结构,一样会在 SERVER端被不同的表 加锁, 单机连的SERVER的时候甚至有自己的程序把自己锁死了的情况。
W wgzhang Unregistered / Unconfirmed GUEST, unregistred user! 1999-06-11 #10 尽可能提高服务器的配置,加强处理能力,缩短事务处理时间,减少冲突发生。
B barton Unregistered / Unconfirmed GUEST, unregistred user! 1999-06-12 #11 将相对独立的问题分成多个数据库设备,安装在不同的服务器上
W wavestar Unregistered / Unconfirmed GUEST, unregistred user! 1999-06-13 #12 我们当时是使用了MSSQLSERVER的创建中间表的功能,可直接在SQLSERVER上实现, 效果非常明显,希望对你能有帮助。
王 王寒松 Unregistered / Unconfirmed GUEST, unregistred user! 1999-06-14 #14 这位老兄怎么还不来分配分数哦 你的问题: >在DELPHI 下编程,如何避免MSSQLSERVER死锁,如 >死锁,如何解锁. 避免死锁说过了, 解锁嘛,呵呵, MS SQL SERVER在处理死锁 时会自动断开其中的一个,同时给被断开的一方发出1205错误信息
这位老兄怎么还不来分配分数哦 你的问题: >在DELPHI 下编程,如何避免MSSQLSERVER死锁,如 >死锁,如何解锁. 避免死锁说过了, 解锁嘛,呵呵, MS SQL SERVER在处理死锁 时会自动断开其中的一个,同时给被断开的一方发出1205错误信息