我发现了一篇关于SonarQube数据库大小的文章:
How big is a sonar database?
在我们的案例中,我们有3584947个位置需要分析。如果每1000个loc存储350ko的数据空间,它应该使用约1.2gb,但我们发现,我们的sonarqube数据库实际上存储超过20gb…
官方文件(https://docs.sonarqube.org/display/SONAR/Requirements)说,对于拥有4年历史的3000万loc,它们使用的容量不足20gb……
在我们的常规设置>数据库清理程序中,除了将wich设置为360而不是260之外,我们拥有所有默认值
在我们的案例中,什么可以创建这么多数据???
我们使用SonarQube 6.7.1版本
编辑
正如@simonbrandhof所问,这是我们最大的桌子
| Table Name | # Records | Data (KB) |
|`dbo.project_measures` | 12'334'168 | 6'038'384 |
|`dbo.ce_scanner_context`| 116'401 | 12'258'560 |
|`dbo.issues` | 2'175'244 | 2'168'496 |
最佳答案
20GB的磁盘对于3.5米的代码来说太大了。为了进行比较,sonarsource的内部postgresql模式为2.1gb,代码行为1m。
我建议清理数据库以刷新统计数据并回收死机存储。postgresql上的命令是VACUUM FULL
。其他数据库上可能也有类似的命令。如果不是更好的话,请提供最大的桌子清单。
编辑
表ce_scanner_context
的意外大小是由https://jira.sonarsource.com/browse/SONAR-10658引起的。这个错误将在6.7.4和7.2中修复。