我打算在我的数据库rowversion中添加大多数表来跟踪这些表中的更改。我知道添加它会影响查询的性能。
有没有人知道它是否会影响性能(慢几个百分点)或者我不应该将rowversion添加到许多表中,因为它会使DB慢得多。
答案 0 :(得分:5)
仅添加rowversion / timestamp列的性能差异就是您的行现在宽8个字节。
当您开始实际使用它们时,实际的性能差异就会出现。但正如我在回答类似问题时指出的那样:RowVersion and Performance
如果您不打算使用
rowVersion
字段来检查更新的项目,而是要将其用于一致性,以确保自上次阅读后记录未更新,那么这是将是一个完全可以接受的用途,不会影响。如:
UPDATE MyTable SET MyField = ' @myField
WHERE Key = @key AND rowVersion = @rowVersion
因此,只检查行以确保自上次读取应用程序以来它没有更新时的性能将是微不足道的性能差异(它必须读取行以更新它)。
但尝试使用rowversion / timestamp列作为自上次检查以来获取所有更新项目的方法时的性能将非常差。