在SQL Server上插入/更新表锁

时间:2011-10-16 19:00:52

标签: sql sql-server stored-procedures partitioning

我在SQL Server 2008中有一个包含大约70列的大表。多线程.NET应用程序在数据库上调用存储过程以插入/更新表。频率约为每秒3次。

我已经在桌面上制作了每周分区,因为几乎每个查询都有一个datetime约束。

有时插入/更新表需要很长时间。我怀疑有时INSERTION让UPDATE等待;有时UPDATE使INSERTION等待。有可能吗?

如何设计表格以避免此类锁定?性能是这里的主要问题。

1 个答案:

答案 0 :(得分:-1)

你是对的,你可能会遇到导致等待的死锁。首先要检查几件事情;

  1. 您的索引是否正确?
  2. 如果您的数据库处于“完全”恢复模式,您是否需要它?简单恢复确实可以加快插入/更新速度,但是您可以放松备份的时间点恢复。
  3. 您是否可能有多个线程写同一条记录?如果没有,NOLOCK可能会在这里成为你的朋友,但这意味着你的数据有时候可能会有一两次不一致。