c# - 每次从数据库中检索数据库记录时更新数据库记录 - 这是一个好习惯吗?

标签 c# sql database

我正在使用一个 sql server,我有一个特定的表,最多可以包含 ~100 万到 1000 万条记录。

在我检索的每条记录中,我都做了一些检查(我运行了几行简单的代码),然后我想在 DateTime.Now 中标记记录已被检查; 所以我要做的是检索记录,检查一些东西,运行“更​​新”查询以将“last_checked_time”字段设置为 DateTime.Now,然后移动到下一条记录。 然后我可以获得按“last_checked_time”字段(升序)排序的所有记录,然后我可以遍历按检查时间排序的记录。

这是一个好的做法吗?只要该表上的记录不超过 1000 万条,它还能保持快速吗?

我在某处读到,每个“更新”查询实际上都是删除和创建新记录。

我还想提一下,我的 ASP.net 网站会经常检索这些记录..

我正在考虑在本地 txt 文件/二进制文件上写下“last_checked_time”,但我猜这意味着实现数据库已经可以为您做的事情。

最佳答案

如果您需要“上次检查时间”值,那么保存它的最佳、最有效的位置就是表中的行。无论表中有多少行,每次更新都只会影响您更新的行。

如何实现更新取决于 DBMS,但通常不会通过删除和重新插入行来完成。

关于c# - 每次从数据库中检索数据库记录时更新数据库记录 - 这是一个好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7122035/

相关文章:

c# - 如何从 C# 中的资源字典 (XAML) 获取值

php - MySQL将select与其他表的sum结合起来

c# - 将文本添加到视频中并保存输出

c# - 动态创建的游戏对象与数据(作为类实例)之间的关系

sql - 计算雪花中的警报洪水

mysql - SQL 查询帮助 - 按数字序列分组

database - 如何删除 Openshift 应用程序上的数据库盒式磁带?

database - 在加载 Express 4.x 之前启动数据库连接

sql - 在Oracle SQL中,如何查询某个值的记录所占的比例?

c# - 获取显示受影响的方法(名称)的代码文件版本差异