Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
 select * в PostgreSQL и Oracle  [new]
Алексей Филиппов
Member

Откуда: Херсон, Украина
Сообщений: 279
Доброе время суток.

Есть таблица в полтора миллиона записей.
Крутится на Oracle. Когда делаешь select * from table_name - отрабатывает в момент.
После переноса на PostgreSQL тот же select * from table_name работает 2 минуты.
Железо одинаковое. Oracle 9.2.0.6, Postgres 8.3.1

Вот postgresql.conf:

listen_addresses = '*'
max_connections = 100
superuser_reserved_connections = 5
max_fsm_pages = 153600
max_stack_depth = 2MB
shared_buffers = 300MB
temp_buffers = 20MB
work_mem = 2MB
fsync = off
constraint_exclusion = on
enable_seqscan = off
log_line_prefix = '%s %h %u '
log_min_duration_statement = 60000
log_min_error_statement = warning
log_statement = 'ddl'
datestyle = 'iso, dmy'
lc_messages = 'ru_RU.UTF-8'
lc_monetary = 'ru_RU.UTF-8'
lc_numeric = 'ru_RU.UTF-8'
lc_time = 'ru_RU.UTF-8'

vacuum full, vacuum analyze выполнены.

Как заставить PostgreSQL с той же скоростью выгребать данные, как и oracle???
1 апр 08, 17:00    [5488236]     Ответить | Цитировать Сообщить модератору
 Re: select * в PostgreSQL и Oracle  [new]
tru55
Member

Откуда: СПб
Сообщений: 19788
Если Oracle делает FTS (Full Table Scan), он читает не по 1 блоку, а куски блоков, определяемые параметром db_file_multiblock_read_count (разумеется, мы не учитываем, что некоторые нужные блоки уже могут находиться в buffer cache).
Возможно, в PostgreSQL есть что-то аналогичное...
1 апр 08, 17:19    [5488396]     Ответить | Цитировать Сообщить модератору
 Re: select * в PostgreSQL и Oracle  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
обращайтесь в соответствующий форум
1 апр 08, 17:19    [5488402]     Ответить | Цитировать Сообщить модератору
 Re: select * в PostgreSQL и Oracle  [new]
Yo.!
Guest
совсем как в оракле не получится. оракл когда делает фул-скан применяет многоблочное чтение, постгрес еще так не умеет. как вариант увеличить кеш (shared_buffers наверно, 300Mb совсем мало) и запихнуть (как-то) эту табличку полностью в кеш.
1 апр 08, 17:19    [5488403]     Ответить | Цитировать Сообщить модератору
Все форумы / Сравнение СУБД Ответить