Вложенные транзакционные.атомарные циклы с блокировками
При настройке Django 5.0.2 и PostgreSQL 14 (Azure Database Flexible Server) у меня есть этот кусок кода, который, в основном, переводится так:
with transaction.atomic():
objects = ObjectModel.objects.all():
for object in objects:
with transaction.atomic():
another_object = AnotherObjectModel.objects.select_for_update().get(id=1000)
# ...
У меня было довольно много сбоев в моей базе данных, и это оказалось тем местом, где возникает узкое место. Поскольку это унаследованный код (и простите меня за обвинения), и я не могу найти никакой документации или свидетельств того, почему он был реализован именно так, может ли кто-нибудь высказать мнение о том, как это может или не может быть причиной сбоя?
Прошу простить меня, если это не слишком понятно или не соответствует правилам форума, я буду более чем счастлив попытаться рассказать подробнее.
Боюсь, я пока ничего не пробовал.