diff options
author | Simon Brandhof <simon.brandhof@sonarsource.com> | 2018-05-28 20:05:52 +0200 |
---|---|---|
committer | SonarTech <sonartech@sonarsource.com> | 2018-05-28 20:20:45 +0200 |
commit | 78d77d771aef671903f673658f55cc7c936e61a9 (patch) | |
tree | c0e2c0a7130c402ca9dbeae317d196745cf1bb1a /server/sonar-db-migration | |
parent | de048e14399224bab6e00bf70c68679987462b27 (diff) | |
download | sonarqube-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.java | 7 |
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); } |