我有一个包含几千条记录的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的排序仍然搞砸了。新行位于上部,旧行被按下。
导致此问题的原因以及如何预防?感谢。
答案 0 :(得分:0)
从troubleshooting performance problems whitepaper开始。它描述了解决各种性能问题的步骤 - 如何使用DMV,性能计数器等。