Я пытаюсь проверить распределение чисел в столбце таблицы. Вместо того, чтобы вычислять всю таблицу (которая является большой - десятки гигабайт), я хочу оценить с помощью повторной выборки. Я думаю, что типичный метод Postgres для этогоЭффективная повторная выборка с заменой таблицы в PostgreSQL?
select COLUMN
from TABLE
order by RANDOM()
limit 1;
, но это медленно для повторной выборки, тем более, что (я подозреваю) манипулирует весь столбец каждый раз, когда я запускаю его.
Есть ли лучший способ?
EDIT: Просто чтобы убедиться, что я выразил это правильно, я хочу сделать следующее:
for(i in 1:numSamples)
draw 500 random rows
end
без Переупорядочьте Целые массивный стол каждый раз. Возможно, я мог бы получить все идентификаторы строк таблицы и образец из него в R или что-то еще, а затем просто запросить эти строки?
В SQL2003 положение о TABLESAMPLE, где введена (DB2 реализовала его, не уверен если есть другие). Это обсуждалось (https://wiki.postgresql.org/index.php?title=TABLESAMPLE_Implementation&action=history) для postgres, но я не знаю текущий статус. – Lennart