首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

执行存储过程后多了很多锁?解决方案

2012-01-31 
执行存储过程后多了很多锁???我有个存储过程,功能如下:先从1个EXCEL文档中导入数据到1个临时表,然后用游标

执行存储过程后多了很多锁???
我有个存储过程,功能如下:

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

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

这个时候在查询分析器执行很简单的select都会要很久,基本上是一直等待,需要重启SQLserver才能继续,请问这是什么原因,是哪里会自动加锁的?

[解决办法]
游标
[解决办法]
不懂
[解决办法]
--访问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)


[解决办法]
访问临时表应该不会影响别的吧。
sp_lock查出来的是什么锁?加锁的对象是什么?
[解决办法]
访问excel好像没有不加锁的选项
[解决办法]
使用游标后本来就会开很多很多很多锁,

既然LZ是用的临时表,那么在临时表加上一个IDENTITY用 while 循环也可以做
[解决办法]
为什么每次在执行了这个存储过程后,执行sp_lock会看到多了很多记录
----------------------
把结果贴出来看看啊
[解决办法]
学习 ... 帮顶

热点排行