1
我在SQL Server 2008 R2中有一个表,主键为Guid
类型。经过几天的测试数据库,现在这个表有7000行。SQL Server 2008 R2:使用guid主键更新表时出现超时异常
我有一个查询,当数据约1000条记录的作品,但现在没有。
查询是:
update Ticket
set AlphaCode = "Hi"
where TicketId = 'fe0b840d-5688-4f38-a1fe-46eb6ff04296'
的AlphaCode
列的数据类型是nvarchar(1024)
。
上一个查询有时会在大约10秒内运行!但是,很多时候它失败
超时异常
有趣的是,下面的查询返回的记录,在不到一秒钟:
select *
from Ticket
where TicketId = 'fe0b840d-5688-4f38-a1fe-46eb6ff04296'
这意味着, DBMS引擎没有困难找到我的记录,但问题在于更新操作。
也许你在该表上有一个不好的索引需要修复。 – Kalpers 2013-03-17 01:44:29
是主键聚簇索引,以及guid如何生成,并且您是否设想该表超过10k行?碎片整理表并尝试它可能会有所帮助。 – 2013-03-17 04:28:48
Ticket表上是否有触发器?它们在更新中调用(并可能导致一些锁),而不是在select中。 – 2013-03-17 09:59:08