Tipos de dados numéricos exatos
Use tipos de dados numéricos para armazenar números. A tabela a seguir descreve os tipos numéricos de número inteiro em vários intervalos. Quanto maior o intervalo, mais armazenamento ele requer.
Escolha tipos de dados de número inteiro para colunas de distribuição
e de junção. Sempre que possível, use tipos de dados de número inteiro para se beneficiar do desempenho adicional de mapas de zona.
| Tipo | Valor | Uso de disco |
|---|---|---|
| byteint (alias int1) | Valores de 8 bits no intervalo de -128 a 127 | 1 byte |
| smallint (alias int2) | Valores de 16 bits no intervalo de -32.768 a 32.767 | 2 bytes |
| integer (alias int e int4) | Valores de 32 bits no intervalo de -2.147.483.648 a 2.147.483.647 | 4 bytes |
| bigint (alias int8) | Valores de 64 bits no intervalo de -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807 | 8 bytes |
Use o tipo de dados numéricos de ponto fixo para definir o arredondamento numérico para uma casa decimal específica. A tabela a seguir descreve os tipos de dados numéricos de ponto fixo.
| Tipo | Valor | Uso de disco |
|---|---|---|
| numeric(p, s) | Numérico com precisão p e escala s. A precisão pode variar de 1 a 38, com escala de 0 até a precisão. | Precisão de 9 ou menos (4 bytes) Precisão de 10 - 18 (8 bytes) Precisão de 19 - 38 (16 bytes) |
| numeric(p) | Equivalente a numeric(p, 0). | |
| numérico | Equivalente a numeric(18, 0). | 8 bytes |
| decimal | Embora o decimal seja, às vezes, um tipo de dados SQL distinto, o SQL Netezza Performance Server o trata como um alias para numérico. | 4 bytes a 16 bytes |
Sempre use o menor número inteiro ou tipo de dados numéricos de ponto fixo sempre que possível. Quando estiver convertendo dados de origem para o sistema Netezza Performance Server, talvez seja necessário analisar os dados para determinar o menor tipo de dados que pode ser usado.
Para determinar o menor tamanho que pode ser usado para numéricos de ponto fixo e número inteiro digite o
seguinte comando SQL:
SELECT MIN(column_name), MAX(column_name) FROM table_name;