由于pagelatch_ex,SQL插入被暂停

时间:2015-05-04 17:08:34

标签: sql-server sql-server-2008-r2

我有一个包含几千条记录的MS SQL 2008数据库。突然其中一个表无法接受新行插入。编辑和删除仍然没问题。在Activity Monitor中,它显示为:

任务状态:暂停 命令:插入 等待类型:Pagelatch_ex

等待几分钟后什么也没发生。如果我删除该表中最新(底部)200(估计)行之一,我只能插入一个新行。插入第二行再次暂停。如果我删除最近200行中的3行,我只能插入3个新行。但如果我删除的行不在最近的200内,我就无法插入任何行。

插入新行后,新ID将在SSMS结果视图中显示在顶部,而不是底部(不进行排序)。例如:100,101,102,95,96,97,98,99其中100和以上是新插入的数据。

现在该表只有2列,ID(主列,标识种子)和InvoiceID列。删除了所有索引视图,表和约束,但存在同样的问题。

我刚刚发现删除ID列的主键并重新设置它可以解决问题。但是,ID的排序仍然搞砸了。新行位于上部,旧行被按下。

导致此问题的原因以及如何预防?感谢。

1 个答案:

答案 0 :(得分:0)

当请求页面需要修改时,会发生Pagelatch_ex。通常,闩锁是短暂的&不会影响性能。但是,如果I / O子系统较慢或存在其他资源瓶颈,则可能会遇到问题。您需要首先确定涉及哪个数据库/表。从那里开始。

troubleshooting performance problems whitepaper开始。它描述了解决各种性能问题的步骤 - 如何使用DMV,性能计数器等。