执行存储过程后多了很多锁???

BearRui 2007-09-13 04:14:11
我有个存储过程,功能如下:

先从1个EXCEL文档中导入数据到1个临时表,然后用游标循环该临时表进行一些操作,然后关闭游标,显示临时表中的数据,删除临时表。

为什么每次在执行了这个存储过程后,执行sp_lock会看到多了很多记录,

这个时候在查询分析器执行很简单的select都会要很久,基本上是一直等待,需要重启SQLserver才能继续,请问这是什么原因,是哪里会自动加锁的?
...全文
187 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
welove1983 2007-09-13
  • 打赏
  • 举报
回复
学习 ... 帮顶
BearRui 2007-09-13
  • 打赏
  • 举报
回复
51 12 0 0 DB S GRANT
51 1 85575343 0 TAB IS GRANT
52 12 5575058 0 TAB IX GRANT
52 12 0 0 DB S GRANT
52 12 5575058 2 KEY (6d018b3519c6) X GRANT
52 12 5575058 2 KEY (dd0032934a1f) X GRANT
52 12 1141579105 1 KEY (2b00dc0888a9) X GRANT
52 12 1141579105 1 PAG 1:151 IX GRANT
52 12 1141579105 0 TAB IX GRANT
52 12 5575058 2 PAG 1:167 IX GRANT
52 12 5575058 1 PAG 1:189 IX GRANT
52 12 5575058 1 KEY (d8004334cc30) X GRANT
52 12 5575058 1 PAG 1:206 IX GRANT
54 12 0 0 DB S GRANT
mengmou 2007-09-13
  • 打赏
  • 举报
回复
为什么每次在执行了这个存储过程后,执行sp_lock会看到多了很多记录
----------------------
把结果贴出来看看啊
BearRui 2007-09-13
  • 打赏
  • 举报
回复
使用游标后本来就会开很多很多很多锁,
----------------------
但我最后多关闭了这些游标啊
BearRui 2007-09-13
  • 打赏
  • 举报
回复
那请问临时表加上with (nolock)是值的那些锁?

sp_lock查询出来的是些什么锁了?

hb_gx 2007-09-13
  • 打赏
  • 举报
回复
使用游标后本来就会开很多很多很多锁,

既然LZ是用的临时表,那么在临时表加上一个IDENTITY用 while 循环也可以做
OracleRoob 2007-09-13
  • 打赏
  • 举报
回复
访问excel好像没有不加锁的选项
mengmou 2007-09-13
  • 打赏
  • 举报
回复
访问临时表应该不会影响别的吧。
sp_lock查出来的是什么锁?加锁的对象是什么?
BearRui 2007-09-13
  • 打赏
  • 举报
回复
to:wangtiecheng

我访问excel是用的OpenDataSource,请问访问excel加什么标可以让SQL不加锁,是hdr=no;吗

OracleRoob 2007-09-13
  • 打赏
  • 举报
回复
--访问excel文件
select * from openrowset('microsoft.jet.oledb.4.0','excel 5.0;hdr=no;imex=1;database=d:\test.xls',sheet1$)



--访问临时表加with (nolock)

select * from #t with (Nolock)

mengmou 2007-09-13
  • 打赏
  • 举报
回复
不懂
kelph 2007-09-13
  • 打赏
  • 举报
回复
游标

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧