我正在使用带有PL / SQL插件的Sonar LTS 5.6。 我运行了一些方案来确定某些扫描需要很长时间才能完成的原因。
我有一个包含大约5,000行代码的现有包源文件。
在下面的场景中,我将生成强制Sonar扫描程序在DB中提交的问题
我在第40行更改了where子句以复制条件。
原始代码:#id
新代码:where no_cli = p_no_cli
结果:扫描在6秒内完成。 (源文件行数不变)
我在第40行更改了相同的where子句以复制条件。
原始代码:where no_cli = p_no_cli and no_cli = p_no_cli
新代码:where no_cli = p_no_cli
结果:扫描在2分钟内完成!!添加了一行新条件。
我在第4976行更改了文件末尾的where子句以复制条件。
原始代码:where no_cli = p_no_cli
and no_cli = p_no_cli
新代码:where no_cli = p_no_cli
结果:扫描在6秒内完成。添加了一行新条件。
我的结论是当出现新问题并且当代码行数发生变化时,如果SonarQube需要重新索引由于新问题导致的所有问题(在文件开头添加新问题),扫描需要很长时间才能完成。
我想知道这是否可能是由于PL / SQL插件3.0的新功能提供了精确的问题位置。