我有一个SQL表和VB.NET应用程序。 应用程序将sql表加载到数据表然后通过获取某些网站开始将数据更新到记录,平均需要1.4秒才能用新数据填充数据表行。
现在我想知道是否可以使用sql update命令更新sql表中的单个记录并在每次更新记录时运行它,这意味着每1.4秒运行一次记录的更新命令
问题是其他应用程序在同一时间使用此表,其中一个写入同一个表但其他列,在此过程中该表是否会被其他应用程序锁定?
答案 0 :(得分:1)
您需要找出更新单条记录需要1.4秒的原因。有可能是因为VB.NET需要进行一些处理(而fetching some websites
)。例如,执行必要的计算(客户端时间)可能需要1.3秒,更新单个记录(服务器时间)需要0.1秒。在这种情况下,您可以批量执行更新,以最大限度地减少数据库访问时间。
表格会被锁定,但只有很短的时间,所以一般情况下你不需要担心。
答案 1 :(得分:1)
默认情况下,SQL不会锁定表,但您可能应该在更新表时锁定表,以防止数据损坏,如果这些应用程序正在进行更改。性能会受到一点打击,是的,但比重建它更好,因为它搞砸了。这是锁定的一个很好的解释
http://www.developerfusion.com/article/84509/managing-database-locks-in-sql-server/
如果其他应用程序只是在您更新时查询表,则应该没有任何影响但是如果他们在更新中查询它们可能会得到一些奇怪的结果。锁定主要是指两个人同时修改同一记录的风险。