Query question

Started by Oleg Lebedevover 23 years ago2 messagesgeneral
Jump to latest
#1Oleg Lebedev
oleg.lebedev@waterford.org

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

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Oleg Lebedev (#1)
Re: Query question

"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