Лучший подход состоит в том, чтобы использовать преимущества основанной на множестве природы SQL и избегать курсоров всякий раз, когда это возможно. Если вы можете переписать запрос с помощью курсора на тот, который использует JOIN
, вы всегда должны делать это.
Если вы обнаружите ситуацию, в которой вы должны выполнить итерацию, обычно лучше сделать это на сервере базы данных. Это сделано для того, чтобы избежать накладных расходов на повторные обращения к базе данных, которые будут происходить, если вы делаете это на прикладном уровне.
Обновление: Относительно того, следует ли выполнять итерацию во внешнем интерфейсе, все зависит от того, что вы хотите сделать в цикле. Показать данные? Тогда, конечно, вы, вероятно, захотите перебрать интерфейс. Однако, если вы выполняете итерацию по данным, чтобы найти что-то еще в базе данных, выполнить вычисления и т. Д., Возможно, вам лучше сделать это на сервере БД. Нам нужно больше подробностей, чтобы давать подробные рекомендации, сейчас мы можем говорить только в общих чертах с предоставленной вами информацией.