Thread: Query question

Query question

From
"Oleg Lebedev"
Date:
We have several tables each of which has an objectid field. These fields
contain id values, 99% of which are in a 0 to 1,000,000 range and 1% of
ids is randomly dispersed between 1,000,000 and 10,000,000,000 (these
are the identity values we imported from SQL Server when moving to
Postgres).
We started a new project and want to use id values > 10,000,000,000 for
it, so that they do not overlap with existing values.
1. Will this hit performance of queries involving this table?
2. Can I help the planner by providing stats about ranges of values in
this table? If yes then how?

Thanks.

Oleg


Re: Query question

From
Tom Lane
Date:
"Oleg Lebedev" <oleg.lebedev@waterford.org> writes:
> We have several tables each of which has an objectid field. These fields
> contain id values, 99% of which are in a 0 to 1,000,000 range and 1% of
> ids is randomly dispersed between 1,000,000 and 10,000,000,000 (these
> are the identity values we imported from SQL Server when moving to
> Postgres).
> We started a new project and want to use id values > 10,000,000,000 for
> it, so that they do not overlap with existing values.
> 1. Will this hit performance of queries involving this table?

Doesn't seem to be a big problem.

> 2. Can I help the planner by providing stats about ranges of values in
> this table? If yes then how?

Run ANALYZE ;-).

It might be worth pushing up the statistics target for the object ID
columns (see ALTER TABLE) to ensure that the planner has a pretty good
idea about the distribution of the IDs.  Offhand I think the default
target (10) would be okay, but it'd be worth your while to experiment.

            regards, tom lane