Re: Statistical Analysis

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Statistical Analysis
Дата
Msg-id 2089.964484308@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: Statistical Analysis  ("Timothy H. Keitt" <keitt@nceas.ucsb.edu>)
Ответы Re: Statistical Analysis  (Steve Heaven <steve@thornet.co.uk>)
Список pgsql-general
"Timothy H. Keitt" <keitt@nceas.ucsb.edu> writes:
> Oops.  Just tried that; the random() call only get evaluated once.

Sigh, forgot to mention the solution.  There's an undocumented function:

 * bool oidrand (oid o, int4 X)-
 *      takes in an oid and a int4 X, and will return 'true'
 *    about 1/X of the time.

typically used like this:

-- select roughly 1/10 of the tuples
SELECT * FROM onek WHERE oidrand(onek.oid, 10);

This doesn't get collapsed by the overly aggressive constant-qual
recognizer because it takes a table column as input.  (The function
doesn't actually *use* the OID, mind you, but the planner doesn't
know that.  What a kluge... but it gets the job done.)

Note that this isn't necessarily going to fix your performance problem,
since a scan of the whole input table is still going to be required.
But if the expensive processing was somewhere downstream of that basic
scan, it should help.

            regards, tom lane

В списке pgsql-general по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Statistical Analysis
Следующее
От: Joseph Shraibman
Дата:
Сообщение: Re: 4 billion record limit?