Il motore del database e in grado di capire quando una subquery non dipende 
dalla riga dell'update ed eseguirla una volta sola anche in casi molto ma molto 
più complessi di questo.

Ovviamente puoi cercare di sostituirti all'ottimizzatore scrivendo delle stored 
procedure ogni volta che la query si complica ma raramente è una buona idea. 
Nel 99% dei casi l'ottimizzatore produce i risultati più velocemente. (Sempre 
che il database sotto non sia una caccola tipo MySQL.)

federico


Il 29 aprile 2017 15:02:14 CEST, Giuliano Curti <giulian...@gmail.com> ha 
scritto:
>On 4/29/17, Federico Di Gregorio <f...@dndg.it> wrote:
>> Puoi fare:
>>
>> UPDATE mee SET r_co = (SELECT max(r_co) FROM mee) + r_to - r_fr WHERE
>r_id =
>> ...
>
>domanda x capire, non per obiettare :-)
>la funzione UPDATE itera su tutti i record, la funzione SELECT
>nidificata, che anch'essa itera su tutti i record, non risulta
>penalizzante? si avrebbe un algoritmo di complessità N**2;
>
>non è possibile memorizzare MAX(r_co) in una variabile temporanea e
>poi usarla nel ciclo UPDATE in modo da avere un algoritmo di
>complessita N? la domanda deriva dal fatto che non conosco se in SQL è
>possibile farlo (in uno script python non avrei dubbi);
>
>
>> Ciao,
>> Federico
>
>grazie, ciao,
>giuliano

-- 
Inviato dal mio dispositivo Android con K-9 Mail. Perdonate la brevità.

Rispondere a