lunedì 12 dicembre 2011

E 'possibile corto di valori bigint?

Domanda: Mi è stato detto che è possibile eseguire dei valori di quando si utilizza il tipo di dati bigint e che avrei dovuto usare GUID invece, a prescindere dei problemi che può causare. È vero?
Risposta: Questo è simile a quella domanda ho risposto l'anno scorso se è possibile a corto di numeri virtuali di log file di sequenza - in cui la risposta è sì, ma ci vorrebbero 240 milioni anno per farlo. Vedi questo post per la discussione VLF.
Allo stesso modo, sì, è possibile eseguire fuori bigints ma non è pratico che si.
Bigint ti permette di avere + / - 2 ^ 63 (o + / - 9.223.372.036.854.775.808). Dire per amore della discussione che si è in grado di elaborare 100 mila pezzi di dati al secondo, e si assegna un sempre crescente valore bigint per ognuno di essi. Dovreste essere lavorazione continuamente per 2 ^ 63 / 100.000 / 3.600 ore - che funziona da 2925 mila anni.
Ora che è solo con il bigints - se si voleva conservare anche loro, che ci si esaurisce lo spazio di archiviazione prima a corto di numeri.
Facendo un rapido test di un heap con una sola colonna di identità bigint mi dimostra che posso ottenere 453 righe per pagina 8KB file di dati (non dimenticare l'overhead di registrazione, array di slot in testa, e che le pagine heap non sarà riempito completamente a causa del modo lo spazio libero di caching e la ricerca di lavori). Un terabyte di dati sarebbe memorizzare circa 61 miliardi righe.
Di questo passo, in realtà a corto di bigints E immagazzinarli avrebbe preso circa 150 mila petabyte. Questo è chiaramente impraticabile - soprattutto se si considera che la semplice memorizzazione di un bigint è abbastanza inutile - saresti la memorizzazione di un bigint e altri dati anche - probabilmente raddoppiando l'archiviazione, almeno.
Quindi sì, mentre è teoricamente forse a corto di valori bigint, in realtà non succederà.

Nessun commento:

Posta un commento

Nota. Solo i membri di questo blog possono postare un commento.