Domanda

Ho una tabella, che contiene molte colonne di tipo di dati float con precisione 15 cifre. Ogni colonna consuma 8 byte di archiviazione. La maggior parte del tempo i dati non richiede questa quantità di precisione e potrebbero essere immagazzinate come un vero e proprio tipo di dati. In molti casi, il valore può essere 0, nel qual caso potrebbe sfuggire a memorizzare un singolo byte.

Il mio obiettivo è quello di ottimizzare i requisiti di storage di spazio, che è un problema che sto affrontando a lavorare con un limite di dimensione del database SQL Express 4GB.

Se i tipi di dati byte, reali e galleggiante sono memorizzati in una colonna sql_variant è evidente una testa coinvolto nella memorizzazione di questi valori. Qual è il costo di questo sovraccarico?

sarebbe quindi necessario valutare se mi sarebbe effettivamente finire in un significativo risparmio di spazio (o meno) di commutazione di tipi di dati di colonna sql_variant.

Grazie, Elan

È stato utile?

Soluzione 2

Ho trovato l'articolo folowing molto utile nel mettere in luce il costo di archiviazione per quanto sql_variant concerne:

http://msdn.microsoft.com/en-us/library /ms178085.aspx

Altri suggerimenti

Non sarà risparmiare spazio utilizzando sql_variant e sarà sufficiente introdurre un intero livello di complessità

Ogni colonna deve avere il tipo di dati corretto per memorizzare tutti i valori possibili in questo campo. Avete bisogno di galleggiare su tutta la linea? Potreste usare tinyint? etc etc

Se siete preoccupati per il limite di 4 GB quindi l'aggiornamento alle nuove versioni Express (10GB) o spostarsi verso l'alto un'edizione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top