Като цяло няма никакъв проблем с отварянето и затварянето на множество курсори последователно. Можете да мислите за курсора като основно за указател към набор от резултати от заявка (и той е набор от указатели към кеширани данни). Отварянето на курсор заделя указател, а затварянето освобождава паметта.
Като цяло смятам, че логическата чистота е най-добра тук, така че най-добрият начин е да имате един курсор на заявка.