aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-db-migration
diff options
context:
space:
mode:
authorSimon Brandhof <simon.brandhof@sonarsource.com>2018-05-28 20:05:52 +0200
committerSonarTech <sonartech@sonarsource.com>2018-05-28 20:20:45 +0200
commit78d77d771aef671903f673658f55cc7c936e61a9 (patch)
treec0e2c0a7130c402ca9dbeae317d196745cf1bb1a /server/sonar-db-migration
parentde048e14399224bab6e00bf70c68679987462b27 (diff)
downloadsonarqube-78d77d771aef671903f673658f55cc7c936e61a9.tar.gz
sonarqube-78d77d771aef671903f673658f55cc7c936e61a9.zip
SONAR-10430 speed-up DB migration
Signed-off-by: Simon Brandhof <simon.brandhof@sonarsource.com>
Diffstat (limited to 'server/sonar-db-migration')
-rw-r--r--server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v72/PopulateFileSourceLineCount.java7
1 files changed, 5 insertions, 2 deletions
diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v72/PopulateFileSourceLineCount.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v72/PopulateFileSourceLineCount.java
index 756f4d9c666..104842085a8 100644
--- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v72/PopulateFileSourceLineCount.java
+++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v72/PopulateFileSourceLineCount.java
@@ -47,8 +47,11 @@ public class PopulateFileSourceLineCount extends DataChange {
protected void execute(Context context) throws SQLException {
MassUpdate massUpdate = context.prepareMassUpdate();
massUpdate.select("select distinct project_uuid from file_sources where line_count is null");
- massUpdate.update("update file_sources set line_count = ? where project_uuid = ?");
- massUpdate.rowPluralName("file source line counts");
+ massUpdate.update("update file_sources set line_count = ? where project_uuid = ?")
+ // Having transactions involving many rows can be very slow and should be avoided.
+ // A project can have many file_sources, so transaction is committed after each project.
+ .setBatchSize(1);
+ massUpdate.rowPluralName("file sources");
massUpdate.execute(PopulateFileSourceLineCount::handle);
}