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.