Skip to content

Commit e0eb5e4

Browse files
committed
Add a prefetch to try to optimize query performance
Signed-off-by: ziadhany <ziadhany2016@gmail.com>
1 parent ea013f9 commit e0eb5e4

2 files changed

Lines changed: 5 additions & 5 deletions

File tree

vulnerabilities/risk.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,8 @@ def calculate_vulnerability_risk(vulnerability: Vulnerability):
9797
9898
Risk = min(weighted severity * exploitability, 10)
9999
"""
100-
# TODO try to use a prefetch
101-
references = vulnerability.references.all()
102-
severities = vulnerability.severities.all()
100+
references = vulnerability.references.select_related("url", "reference_type")
101+
severities = vulnerability.severities.select_related("reference")
103102
exploits = Exploit.objects.filter(vulnerability=vulnerability)
104103

105104
weighted_severity = get_weighted_severity(severities)
@@ -114,7 +113,9 @@ def calculate_pkg_risk(package: Package):
114113
"""
115114

116115
result = []
117-
for pkg_related_vul in PackageRelatedVulnerability.objects.filter(package=package, fix=False):
116+
for pkg_related_vul in PackageRelatedVulnerability.objects.filter(
117+
package=package, fix=False
118+
).prefetch_related("vulnerability"):
118119
if pkg_related_vul:
119120
risk = calculate_vulnerability_risk(pkg_related_vul.vulnerability)
120121
result.append(risk)

vulnerabilities/views.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,6 @@ def get_context_data(self, **kwargs):
124124
context["package_search_form"] = PackageSearchForm(self.request.GET)
125125
context["fixed_package_details"] = package.fixed_package_details
126126
context["risk"] = calculate_pkg_risk(package)
127-
128127
context["history"] = list(package.history)
129128
return context
130129

0 commit comments

Comments
 (0)