Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Int Identity Overflow

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    27

    Int Identity Overflow

    Ciao a tutti,
    ho una tabella con una chiave primaria di tipo INT IDENTITY, che dovrà contenere un numero di righe teoricamente illimitato (trattasi di statistiche), di conseguenza, prima o poi il campo raggiungerà il valore massimo consentito e andrà in overflow.

    Quale è, secondo voi, la tecnica migliore per aggirare il problema?

    1) Trasformare il campo in BIGINT... andrà in overflow comunque
    2) Utilizzare GUID al posto di un INT...problemi di performance
    3) Utilizzare una chiave composita con 2 campi...pare la più ovvia ma non la posso utilizzare per altri motivi
    4) Utilizzare un char(10)...questa andrebbe bene ma come al solito problemi di performance
    5) Spostare regolarmente i dati considerati vecchi all'interno di una tabella di backup...

    Insomma, non mi viene in mente altro, forse qualcuno più esperto di me ha già avuto a che fare con questo problema e ha già in mente la soluzione?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,522

    Re: Int Identity Overflow

    Originariamente inviato da Elioz
    Ciao a tutti,
    ho una tabella con una chiave primaria di tipo INT IDENTITY, che dovrà contenere un numero di righe teoricamente illimitato (trattasi di statistiche), di conseguenza, prima o poi il campo raggiungerà il valore massimo consentito e andrà in overflow.

    Quale è, secondo voi, la tecnica migliore per aggirare il problema?

    1) Trasformare il campo in BIGINT... andrà in overflow comunque
    2) Utilizzare GUID al posto di un INT...problemi di performance
    3) Utilizzare una chiave composita con 2 campi...pare la più ovvia ma non la posso utilizzare per altri motivi
    4) Utilizzare un char(10)...questa andrebbe bene ma come al solito problemi di performance
    5) Spostare regolarmente i dati considerati vecchi all'interno di una tabella di backup...

    Insomma, non mi viene in mente altro, forse qualcuno più esperto di me ha già avuto a che fare con questo problema e ha già in mente la soluzione?

    Grazie
    Il valore massimo per un bigint è 9223372036854775807

    Vuol dire poter inserire 1.000.000 (un milione...) di record al secondo (al secondo...) per i prossimi 292 mila anni...
    Sicuro che avrai problemi di overflow ?

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    27

    Re: Re: Int Identity Overflow

    Originariamente inviato da comas17
    Il valore massimo per un bigint è 9223372036854775807

    Vuol dire poter inserire 1.000.000 (un milione...) di record al secondo (al secondo...) per i prossimi 292 mila anni...
    Sicuro che avrai problemi di overflow ?
    Diciamo che verranno inserite circa 50 righe al giorno per... TEORICAMENTE sempre
    La mia era semplice curiosità: se ipoteticamente dovesse verificarsi tale situazione quale sarebbe la tecnica migliore per ovviare al problema?

    Infatti ho già modificato la colonna da INT a DECIMAL(38,0) in quanto non posso utilizzare neanche BIGINT per altri motivi.

  4. #4
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,522
    La parola "sempre" informaticamente non ha molto senso; di fronte a possibili problemi di questo tipo si prova a fare due conti ...

    Il tipo di dato INT ha come massimo 2147483647, cioè puoi inserire 100 record al giorno per i prossimi 58000 anni... direi che avresti anche potuto lasciarlo INT...

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    27
    Originariamente inviato da comas17
    La parola "sempre" informaticamente non ha molto senso; di fronte a possibili problemi di questo tipo si prova a fare due conti ...

    Il tipo di dato INT ha come massimo 2147483647, cioè puoi inserire 100 record al giorno per i prossimi 58000 anni... direi che avresti anche potuto lasciarlo INT...
    Hai perfettamente ragione ma se ipteticamente dovesse essere necessario, come risolveresti?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.