[Db] stored function per generare stringa unica

Domenico L. domenico.lorusso a pleiade.it
Mer 22 Ago 2007 12:18:56 CEST


Marcello Vezzelli ha scritto:
> Domenico L. ha scritto:
>   
>> In ogni caso sia con una procedura che con due istruzioni in 
>> tranasazione ti serve un lock di tipo write, o un semaforo affinché la 
>> procedura che genera l'identificativo non venga utilizzata 2 volte 
>> contempoaranemante....
>>   
>>     
>
> Ma il lock non è garantito dalla transazione?
>   
Sì ma dipende da che tipo di isolation levle applichi se usi lo 
standard, se ben ricordo, utlizzi un lock di tipo read.
Questo implica che che una insert fallisce, ma una procedura che legge 
tutta la tabelal no
quindi:

SF del dml 1 -> lock table read -> get code "AAAAA"
SF del dml 2 -> lock table read -> get code "AAAAA"
insert dml 1 -> Ok
insert dml 2 -> failed

ma potrebbe capitare anche:

SF del dml 1 -> lock table read -> get code "AAAAA"
SF del dml 2 -> lock table read -> get code "AAAAA"
insert dml 2 -> Ok
insert dml 1 -> Failed


> Poniamo che in due transazioni venga generato lo stesso id... succederà 
> che la prima insert ha successo e la seconda fallisce...
> non posso semplicemente ripetere la seconda insert?
>   
sì... certo..
> Se il codice è tutto dentro a una sp, riprovo finché la insert non ha 
> successo, generando un nuovo id ad ogni tentativo.
>   
Sì... dipende dalle performance che vuoi ottenre e dal traffico 
(moltiplicato *10) che prevedi di avere

Se ti aspetti una transazione all'ora puoi supporne una ogni 6 minuti 
quindi ok

Se tene aspetti una al minuto puoi suppoer una ogni 6 secondi... e via 
web diventa già rischioso

Se ti aspetti una al secondo è una follia!


Poi quanto tempo ci impiega a leggersi la tabella???


Non puoi generaer un codice alfanumerico partendo da un codice numerico? 
(vedi anche risposta di Cris)

ciao

-- 
Domenico L.        	 icq: 645 44 861 - msn: strahd a jumpy.it

per stupire mezz'ora basta un libro di storia,
io cercai di imparare la Treccani a memoria... [F.d.A.]



Maggiori informazioni sulla lista Db