After upgrade from Sonar developer edition 9.9 to 2025.3.1 the Sonar analysis has become extreme slow with an average of 8 minutes while I expect it to be under 1 minute.
This is what we use:
- SonarQube Server developer edition 2025.3.1 (109879)
- OS: Microsoft Windows Server 2019 Standard
- Database: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.23.0.0.0
- OJDBC Driver: 23.9.0.25.07
Memory usage and CPU usage on de SonarQube server are low. Extending memory setting for Sonar does not change that so it seems Sonar is not busy. The Database server is also not busy.
What we see is that this query takes an awfull lot of time:
executions time cost last_active_time SQL_fulltext
36 17051958493 9112 2025-08-14 23:54:10.000
select
rdi.rule_uuid as "rdi_ruleUuid",
rdi.software_quality as "rdi_softwareQuality",
rdi.severity as "rdi_severity",
CASE WHEN rt.is_system_tag = 1 THEN rt.value ELSE NULL END as rt_systemTags,
CASE WHEN rt.is_system_tag = 0 THEN rt.value ELSE NULL END as rt_tags,
rt.is_system_tag as "rt_isSystemTag",
rt.value as "rt_value",
rds.content as "rds_content",
rds.uuid as "rds_uuid",
rds.kee as "rds_kee",
rds.context_key as "rds_contextKey",
rds.context_display_name as "rds_contextDisplayName",
r.uuid as "r_uuid",
r.plugin_rule_key as "ruleKey",
r.plugin_name as "repositoryKey",
r.description_format as "descriptionFormat",
r.status,
r.name,
r.plugin_config_key as "configKey",
r.priority as "severity",
r.is_template as "isTemplate",
r.is_external as "isExternal",
r.is_ad_hoc as "isAdHoc",
r.language as "language",
r.template_uuid as "templateUuid",
r.def_remediation_function as "defRemediationFunction",
r.def_remediation_gap_mult as "defRemediationGapMultiplier",
r.def_remediation_base_effort as "defRemediationBaseEffort",
r.gap_description as "gapDescription",
r.security_standards as "securityStandardsField",
r.rule_type as "type",
r.plugin_key as "pluginKey",
r.scope,
r.created_at as "createdAt",
r.updated_at as "updatedAt",
r.note_data as "noteData",
r.note_user_uuid as "noteUserUuid",
r.note_created_at as "noteCreatedAt",
r.note_updated_at as "noteUpdatedAt",
r.remediation_function as "remediationFunction",
r.remediation_gap_mult as "remediationGapMultiplier",
r.remediation_base_effort as "remediationBaseEffort",
r.ad_hoc_name as "adHocName",
r.ad_hoc_description as "adHocDescription",
r.ad_hoc_severity as "adHocSeverity",
r.ad_hoc_type as "adHocType",
r.education_principles as "educationPrinciplesField",
r.clean_code_attribute as "cleanCodeAttribute"
from
rules r
left outer join rule_desc_sections rds on
rds.rule_uuid = r.uuid
left outer join rules_default_impacts rdi on
rdi.rule_uuid = r.uuid
left outer join rule_tags rt on
rt.rule_uuid = r.uuid
order by r.uuid
What can we do to solve the problem so that analyses gets at least under 1 minute?