Entrambi NEWID()
e NEWSEQUENTIALID()
fornire valori univoci a livello globale di tipo uniqueidentifier
.
NEWID()
implica un'attività casuale, quindi il valore successivo è imprevedibile ed è più lento da eseguire.
NEWSEQUENTIALID()
non comporta attività casuali, quindi è possibile prevedere il prossimo valore generato
(non facilmente!) ed è più veloce di NEWID()
.
Quindi, se non sei preoccupato per il prossimo valore previsto (per motivi di sicurezza), puoi utilizzare NEWSEQUENTIALID()
. Se sei preoccupato per la prevedibilità o non ti dispiace la piccola penalizzazione delle prestazioni, puoi utilizzare NEWID()
.
Tuttavia, in senso stretto, ci sono ancora possibilità trascurabili che i GUID generati da macchine diverse abbiano lo stesso valore. In pratica, è considerato impossibile.
Se desideri ulteriori informazioni, leggi questo:Quale metodo per generare i GUID è il migliore per garantire che il GUID sia davvero unico?
Nota NEWID()
conforme a RFC 4122
. E l'altra funzione utilizza un algoritmo di Microsoft per generare il valore.