The histogram examples for frequency cells in this section
use a relatively small number of highly duplicated values, so the
resulting histograms require less than 20 steps, which is the default
number of steps for **create index **or **update
statistics**.

If your table contains a large number of highly duplicated values for a column, and the distribution of keys in the column is not uniform, increasing the number of steps in the histogram can allow the optimizer to produce more accurate cost estimates for queries with search arguments on the column.

For columns with dense frequency counts, the number of steps should be at least one greater than the number of values, to allow a step for the cell representing null values.

For columns with sparse frequency counts, use at least twice
as many steps as there are distinct values. This allows for the
intervening cells with zero weights, plus the cell to represent
the null value. For example, if the *titles* table
in the *pubtune* database has 30 distinct prices,
this **update statistics** command creates a histogram
with 60 steps:

update statistics titles using 60 values

This **create index **command specifies 60
steps:

create index price_ix on titles(price) with statistics using 60 values

If a column contains some values that match very few rows,
these may still be represented as range cells, and the resulting
number of histogram steps will be smaller than the requested number.
For example, requesting 100 steps for a *state* column
may generate some range cells for those states represented by a
small percentage of the number of rows.