Tipi di dati numerici approssimativi

Utilizzare tipi di dati numerici approssimativi per memorizzare valori in virgola mobile.

Il sistema memorizza i numeri utilizzando 6 o 15 cifre di precisione. Il sistema memorizza la posizione della virgola decimale separatamente, in modo da poter rappresentare valori di grandi dimensioni. I tipi numerici approssimativi possono essere un'opzione per motivi di spazio, perché i tipi di dati numerici reali e a doppia precisione sono memorizzati in modo compatto, ma possono produrre arrotondamenti imprecisi durante i calcoli.

Fare attenzione quando si utilizzano numeri approssimativi. Non utilizzare numeri approssimativi per le colonne di distribuzione, le colonne di unione o le colonne che richiedono operazioni matematiche come SUM e AVG.

I tipi di dati in virgola mobile hanno anche implicazioni intrinseche sulle prestazioni. Ad esempio, il sistema non può eseguire un join hash veloce su un tipo di dati in virgola mobile, ma deve invece eseguire un sort e un merge join più lenti.

La tabella seguente descrive i tipi di dati numerici approssimativi.
Tabella 1. Tipi di dati numerici approssimativi
Tipo Valore Utilizzo disco
fluttuante(p) Numero in virgola mobile con precisione p, da 1 a 15. Una precisione inferiore a 6 equivale a 6. La precisione 7 - 15 equivale a 15. Precisione pari o inferiore a 6 (4 byte)

Precisione 7 - 15 (8 byte)

numero reale Equivalente a float(6). 4 byte
precisione doppia vengono memorizzate 14 cifre di precisione. 8 byte

Netezza Performance Server SQL preferisce i nomi di tipo real e double precision, mentre float(p) è più vicino a un alias per una delle forme preferite real o double precision.

La somma in virgola mobile non solo è approssimativa, ma soprattutto non è associativa, cioè il risultato dipende dall'ordine in cui vengono combinate le somme parziali. Questo risultato è diverso dalle somme intere e numeriche, che sono precise e producono sempre lo stesso risultato indipendentemente da qualsiasi riordino.

Nel Netezza Performance Server massivamente parallelo, le somme e le medie vengono valutate parzialmente sulle SPU e poi combinate nell'host per produrre il risultato finale. Poiché le SPU restituiscono i risultati all'host in modo asincrono, le sommatorie in virgola mobile potrebbero produrre risultati diversi per le varie esecuzioni. Questo effetto si nota se i valori coprono un'ampia gamma dinamica o se ci sono grandi valori di segno diverso che tendono ad annullarsi a vicenda.