在高流量表

时间:2016-03-15 00:28:07

标签: sql-server

假设我有一个SQL Server表,它有数百万行,每分钟接收2000多个插入。一个单独的进程需要在此表上进行批量更新,让我们说一个将更新1000行的where子句。但它并不关心性能,可以选择使用主键运行1000次单行更新。

如果批量更新运行时间太长,它会阻止传入的插入,对吗?而单独更新行将允许插入通过裂缝发出吱吱声而不会阻塞?因此,从优化插入的性能的角度来看,我最好一次一行地运行更新吗?

1 个答案:

答案 0 :(得分:0)

更新不会阻止插入,但如果where条件的where条件未应用于新插入的行,则可能会出现意外行为。因此,最好先查看应用程序的逻辑确保更新中不需要新插入的行。 但总的来说,批量更新比单个更新要好得多。