Load Performance During Database Definition

Database, table, and index definitions impact load performance.

Distinct Values

IQ UNIQUE defines the expected cardinality of a column and determines whether the column loads as Flat FP or NBit. An IQ UNIQUE(n) value explicitly set to 0 loads the column as Flat FP. Columns without an IQ UNIQUE constraint implicitly load as NBit up to the limits defined by the FP_NBIT_AUTOSIZE_LIMIT and FP_NBIT_LOOKUP_MB options:
  • FP_NBIT_AUTOSIZE_LIMIT limits the number of distinct values that load as NBit
  • FP_NBIT_LOOKUP_MB sets a threshold for the total NBit dictionary size
  • FP_NBIT_ROLLOVER_MAX_MB sets the dictionary size for implicit NBit rollovers from NBit to Flat FP
  • FP_NBIT_ENFORCE_LIMITS enforces NBit dictionary sizing limits. This option is OFF by default
Using IQ UNIQUE with an n value less than the FP_NBIT_AUTOSIZE_LIMIT is not necessary. Auto-size functionality automatically sizes all low or medium cardinality columns as NBit. Use IQ UNIQUE in cases where you want to load the column as Flat FP or when you want to load a column as NBit when the number of distinct values exceeds the FP_NBIT_AUTOSIZE_LIMIT.

Indexes

Create all of the indexes you need before loading data. While you can always add new indexes later, it is much faster to load all indexes at once.

Related concepts
Load Time Environment Adjustments
Thread Use During Loads