CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

事务的问题

楼主kendison(loving Ayumi!!!)2004-11-01 11:52:59 在 MS-SQL Server / 基础类 提问

假如我执行了begin   tran,但不执行commit或rollback,对服务器有没有影响? 问题点数:100、回复次数:18Top

1 楼pbsql(风云)回复于 2004-11-01 11:55:01 得分 1

那就是资源一直被占用着,并且别的相关访问也要一直等到该事务commit或rollback为止Top

2 楼kendison(loving Ayumi!!!)回复于 2004-11-01 12:05:55 得分 0

这个begin   tran是在外部程序调用的,用事件查看器查看程序执行完后会显示audit   logout,audit   logout之后是否会把这个tran自动释放?Top

3 楼netcoder(朱二)回复于 2004-11-01 12:32:58 得分 1

这问题有意思,以前还没有想过呢  
  去试试看Top

4 楼liweiswin(▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲)回复于 2004-11-01 13:57:50 得分 1

那样的话begin   tran后面的语句起不到预期的目的,因为你并没有提交事务Top

5 楼zjcxc(邹建)回复于 2004-11-01 14:02:02 得分 1

看你的begin   tran后面跟了什么内容Top

6 楼hdhai9451(☆新人类☆)回复于 2004-11-01 14:02:14 得分 1

//begin   tran,但不执行commit或rollback  
   
  運行時會產生語法錯誤。begin   tran后面至少要帶commit或rollback的其中一個Top

7 楼heibai520(Crazy Java)回复于 2004-11-01 14:02:19 得分 1

是一直都是占的内存的!  
  一直到提交OR回滚!而你所执行的操作是没有效的!Top

8 楼heibai520(Crazy Java)回复于 2004-11-01 14:02:27 得分 1

是一直都是占的内存的!  
  一直到提交OR回滚!而你所执行的操作是没有效的!Top

9 楼zjcxc(邹建)回复于 2004-11-01 14:03:13 得分 1

如果没有任何内容,则只会有一个挂起的事务,不会有影响Top

10 楼kendison(loving Ayumi!!!)回复于 2004-11-01 15:10:21 得分 0

这个挂起的事务假如没有命名的话,可以找出来吗?我用sp_who查看过,没有该连接的任何信息,是否意味着它没有占用服务器资源?  
   
  我的语句是这样的  
  begin   tran  
  insert   into   xx(zz)   values('zz')  
  .  
  .  
  .  
  几十句,其中有一句insert插入了重复值,因为我用php的,错误处理机制后就不执行下面的操作了,所以出现了我说的这种情况Top

11 楼zjcxc(邹建)回复于 2004-11-01 15:20:04 得分 1

这样会导致     xx   这个表被锁住,你用   select   *   from   xx   就会立即有反应了.Top

12 楼kendison(loving Ayumi!!!)回复于 2004-11-01 15:31:17 得分 0

select   *   from   xx   是正常的Top

13 楼zjcxc(邹建)回复于 2004-11-01 15:36:17 得分 1

不可能吧?   应该你的事务已经提交或者回滚了(处理程序退出的话,如果有未提交的事务,SQL会自动回滚事务),否则不可能可以执行下去的  
   
   
  不信的话,楼主在查询分析器中做如下测试:  
   
  --查询分析器开一个窗口,执行下面的语句:  
  create   table   xx(a   int)  
  go  
   
  begin   tran  
  insert   xx   values(100)  
   
   
   
  --再开一个窗口(注意这个不能和上面的在同一窗口中执行),执行下面的语句:  
  select   *   from   xx  
   
  --则这个执行会挂起Top

14 楼kendison(loving Ayumi!!!)回复于 2004-11-01 16:18:55 得分 0

哦,我先试试:PTop

15 楼kendison(loving Ayumi!!!)回复于 2004-11-01 16:27:21 得分 0

在查询分析器里开两个窗口  
  第一个窗口:  
  begin   tran  
  insert   into   Pub_User(sName)   values('hoho')  
   
  第二个窗口:  
  select   *   from   Pub_User  
   
  这样执行确实出现你说的死锁情况  
   
  当我用php程序执行  
  begin   tran  
  insert   into   Pub_User(sName)   values('hoho')  
   
  后,在查询分析器执行  
  select   *   from   Pub_User  
  不会出现死锁情况,以下是我在事件跟踪器里跟踪到的结果,php我是用sa1用户登录的,查询分析器我是用sa用户登录的  
   
  1.   SQL:BatchCompleted insert   into   Pub_User(sName1)   values('haha') PHP   5 SYSTEM sa1 0 9 0 0 656 55 2004-11-01   16:18:02.030  
  2.   Audit   Logout PHP   5 SYSTEM sa1 0 40 0 16 656 55 2004-11-01   16:18:02.013  
  3.   SQL:BatchCompleted select   *   from   Pub_User  
  SQL   查询分析器 Administrator Administrator 0 2 0 0 3336 53 2004-11-01   16:18:06.233  
   
  是否用select查询不死锁就说明了该事条已被释放呢?Top

16 楼kendison(loving Ayumi!!!)回复于 2004-11-01 16:29:49 得分 0

跟踪的结果是下面这个才对,我复制少了两行  
  1.SQL:BatchCompleted begin   tran PHP   5 SYSTEM sa1 0 0 0 0 656 55 2004-11-01   16:18:02.030  
  2.SQL:BatchCompleted insert   into   Pub_User(sName)   values('haha') PHP   5 SYSTEM sa1 0 2 0 0 656 55 2004-11-01   16:18:02.030  
  3.SQL:BatchCompleted insert   into   Pub_User(sName1)   values('haha') PHP   5 SYSTEM sa1 0 9 0 0 656 55 2004-11-01   16:18:02.030  
  4.Audit   Logout PHP   5 SYSTEM sa1 0 40 0 16 656 55 2004-11-01   16:18:02.013  
  5.SQL:BatchCompleted select   *   from   Pub_User  
  SQL   查询分析器 Administrator Administrator 0 2 0 0 3336 53 2004-11-01   16:18:06.233 Top

17 楼zjcxc(邹建)回复于 2004-11-01 16:46:42 得分 90

4.Audit   Logout --注意到这个了吗?   你的PHP处理已经退出了,这时SQL已经自动回滚了事务(因为你的事务没有提交),所以不会锁后面的表,因为根本没有挂起的事务.Top

18 楼kendison(loving Ayumi!!!)回复于 2004-11-01 16:50:50 得分 0

哦,thanks,我也再看了一下sp_lock,果然锁被释放了,yes!!原来这个不用写程序来处理,谢谢大家了Top

相关问题

  • 事务?
  • 事务
  • 事务问题
  • 事务问题
  • 关于事务
  • 事务问题!
  • 事务处理
  • 事务日志
  • 事务问题
  • 关于事务

关键词

  • 执行
  • 分析器
  • 语句
  • 查询
  • php
  • sql
  • 事务
  • systemsa
  • traninsert
  • 提交

得分解答快速导航

  • 帖主:kendison
  • pbsql
  • netcoder
  • liweiswin
  • zjcxc
  • hdhai9451
  • heibai520
  • heibai520
  • zjcxc
  • zjcxc
  • zjcxc
  • zjcxc

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo