java - 选择更新之前是一个好方法还是反之亦然?

标签 java sql sql-server jakarta-ee jdbc

我正在使用普通 JDBC 连接开发一个应用程序。该应用程序是使用Java-Java EE SpringsMVC 3.0和SQL Server 08作为数据库开发的。我需要更新基于非主键列的表。

现在,在更新表之前,我们必须决定更新表的方法,因为表可能包含大量数据。更新查询将批量执行,我们需要以不占用系统资源的方式设计应用程序。
现在,我们必须在这两种方法之间做出选择,
1.更新之前选择数据
2.更新数据,然后选择丢失的数据。

  1. 仅当失败的可能性最大时,更新前选择数据才有用,即如果执行批量 100 条查询更新,并且其中只有 20 行更新成功,则应采用此方法
  2. 只有当故障记录少得多时,更新数据然后检查丢失的数据才有用。通过这种方法,可以避免一个数据库选择调用,即在批量更新之后,可以获取更新的记录计数,并且当且仅当存在与查询不匹配的计数时,才应执行选择查询。

我们完全不知道生产环境中的系统,但我们想要应对所有可能性并想要一个更快的系统。我需要您的意见,因为这是更好的方法。

最佳答案

由于成功更新或更快选择的几率为 50:50,因此很难从当前提到的场景中看出。您可能需要一种模糊逻辑方法,不断获得一段时间内成功更新次数的反馈,然后根据该数据决定是在选择之前进行更新还是在更新之前进行选择。

关于java - 选择更新之前是一个好方法还是反之亦然?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14373752/

相关文章:

java - Java Swing 中 GIF ImageIcon 不断闪烁

java - 如何在不使用Maven的情况下在JavaFx项目中部署log4j version2

java - Java 类构造函数中尖括号的用途是什么?

mysql - 列名不明确

java - FTPConnectionClosedException : Connection closed without indication in BPXBATCH

c# - 什么时候使用存储过程优于硬编码查询?

android - 计算多个值出现的次数

sql-server - SQL 2008 SQL Server 代理作业,如何填充通知电子邮件

sql-server - Docker-compose 覆盖不覆盖连接字符串

sql - 从表 SQL 中查找 Maximum(table.column1,table.column2,table.column3,...) 为 'MaximumValue'