Bene, è possibile generare il Guid
a mano. Tuttavia, uno dei vantaggi di un Guid
è che non è da indovinare - cioè determinato record 0000-...-0005
, di solito c'è poco senso (da un attaccante) controllando per registrare 0000-....-0004
ecc
Inoltre - re la frammentazione? Finché si dispone di un indice non cluster su questi dati, non sono sicuro che questo sia un problema. Normalmente non si inserisce un indice cluster su un Guid
, quindi la tabella sarà un heap (a meno che non si disponga di un indice cluster separato, ad esempio un IDENTITY
int). In tal caso, verrà aggiunto alla fine e inserito il nuovo Guid
nell'indice non cluster. Nessun vero dolore.
(modifica) Un problema di utilizzare il tempo direttamente è che si introduce un rischio molto maggiore di collisioni; dovresti preoccuparti della creazione a ciclo stretto Guid
(ovvero evitare la ripetizione durante la creazione di alcuni in sequenza), il che significa sincronizzazione, ecc. e diventa ancora più problematico se più macchine lavorano in modo intensivo in parallelo - è probabile che otterrai duplicati.
fonte
2009-03-20 09:40:10
Ho provato tutti questi esempi di guida COMB e tutti generano un'elevata frammentazione con righe da 10.000. la versione di arul - frammentazione del 98%.
NHibernate - frammentazione del 53%.
rpcrt4.dll - 98% frammentazione
bigint - 6% frammentazione
Quanto bene ci si aspetta che le merci della COMB si esibiscano? – Shaun
@Shaun dipende dalla velocità di inserimento, se hai solo pochi inserti al secondo non ci dovrebbe essere frammentazione. – Peter