From: Simon Brandhof Date: Mon, 28 May 2018 18:05:52 +0000 (+0200) Subject: SONAR-10430 speed-up DB migration X-Git-Tag: 7.5~1120 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=78d77d771aef671903f673658f55cc7c936e61a9;p=sonarqube.git SONAR-10430 speed-up DB migration Signed-off-by: Simon Brandhof --- 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); }