急急急,最近远程链接数据库本来是行锁的,现在变成了表锁。好容易造成堵塞。

失败是妈妈 2011-12-10 12:16:17
现在有本地视图,视图里基表是远程表
这个视图主要是用来操作那个基表的,
现在假如有如下的更新
本地视图的定义

create view 本地视图
as
select * from 远程数据库服链接别名.远程数据库.dbo.远程表

列a 是远程表的聚集索引。
当我在本地执行下面的语句的存储过程时

update 远程表 set b ='dfsdfsd' where a = 7508

原本应该是锁定表的某一行,可我在监测到远程数据库服上却是表锁。或者页锁。

监测到的结果如下。
declare @P1 int
set @P1=1
declare @P2 bigint
set @P2=87010106428922621
exec sp_getschemalock @P1 output, @P2 output, N'"远程数据库"."dbo"."远程表"'
select @P1, @P2
然后下一条语句是
declare @P1 int
set @P1=180150000
declare @P2 int
set @P2=1
declare @P3 int
set @P3=16388
declare @P4 int
set @P4=1010612
exec sp_cursoropen @P1 output, N'select * from "远程数据库"."dbo"."远程表"', @P2 output, @P3 output, @P4 output
select @P1, @P2, @P3, @P4
接下来是一些提交事务,释放锁的一些语句。

请问大虾们这是怎么回事?寻求解决方法。
...全文
177 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
失败是妈妈 2011-12-10
  • 打赏
  • 举报
回复
但是它更新的时候自动加锁 了。还有,本地传过去远程服务器上SQL语句它都将锁升级了。这是咱回事。如何可以解决。
快溜 2011-12-10
  • 打赏
  • 举报
回复
有一次,我加的表锁产生了死锁,怎么解都解不开,最后还是丢失一些数据,从此我不在用锁。
失败是妈妈 2011-12-10
  • 打赏
  • 举报
回复
加上也不行。exec sp_getschemalock @P1 output, @P2 output, N'"库1"."dbo"."表1"'
select @P1, @P2
go
declare @P1 int
set @P1=2
declare @P2 bigint
set @P2=84248088931770238
exec sp_getschemalock @P1 output, @P2 output, N'""库1"."dbo"."表1"'

请问sp_getschemalock这是什么语句。
  • 打赏
  • 举报
回复
这个应该是sql控制的,你加上 with rowlock试试
失败是妈妈 2011-12-10
  • 打赏
  • 举报
回复
在远程的服务器上的本地执行就不会.但一传过去就会了.
--小F-- 2011-12-10
  • 打赏
  • 举报
回复
锁升级是将众多细粒度锁转换为较少的粗粒度的锁的过程,以削减系统开销。当事务超过它的升级极限时,Microsoft® SQL Server™ 2000 自动将行锁和页锁升级为表锁。   例如,当事务从表中请求行时,SQL Server 自动获取受影响的行上的锁,并在包含这些行的页和表或者索引上放置更高级别的意向锁。当事务控制的锁数量超过了它的极限时,SQL Server 会试图将表上的意向锁更改为更强的锁(例如,将意向排它 (IX) 锁更改为排它 (X) 锁)。获取更强的锁后,表事务持有的所有页级锁和行级锁都被释放,从而削减锁的开销。   SQL Server 可以为同一查询选择行和页锁定,例如,在索引上放置页锁(如果在非聚集的索引节点中选定了足够的邻接键来满足查询)及在数据上放置行锁。以减少必须进行锁升级的可能性。   锁升级极限是由 SQL Server 动态确定的,无须进行配置。   SQL Server 可以动态升级或降级锁粒度或锁类型。例如,如果更新获取大量行锁而阻塞了表的大部分,将行锁升级到表锁。如果获取了表锁,将释放行锁。SQL Server 2000 很少需要升级锁;查询优化器在编译执行计划时通常选择正确的锁粒度。
失败是妈妈 2011-12-10
  • 打赏
  • 举报
回复
它传到远程服务器上面执行的是表锁了。
baiynije 2011-12-10
  • 打赏
  • 举报
回复
不能修改成行鎖嗎?

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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