From 78d77d771aef671903f673658f55cc7c936e61a9 Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Mon, 28 May 2018 20:05:52 +0200 Subject: [PATCH] SONAR-10430 speed-up DB migration Signed-off-by: Simon Brandhof --- .../migration/version/v72/PopulateFileSourceLineCount.java | 7 +++++-- 1 file 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); } -- 2.39.5