Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Выборка большого количества записей / 6 сообщений из 6, страница 1 из 1
31.10.2005, 08:09
    #33352089
hellwing
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка большого количества записей
Здравствуйте.
Имеется Celeron 2.8GHz, 512Mb, HDD IDE 80Gb, Debian 3.1, Postgresql 8.0.3.
Вопрос: выборка из таблицы большого числа записей (порядка 1 млн., "select * from table") выполняется порядка 15 минут и пользователю отдаются все данные после ПОЛНОГО выполнения запроса. Можно ли как-то (не используя курсоры и лимиты) ускорить вывод первых записей пользователю? Или можно как-то настроить postgres/оптимизатор на такое поведение?
...
Рейтинг: 0 / 0
31.10.2005, 15:26
    #33353325
kolobok0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка большого количества записей
hellwing....select * from table.....


простите, глупый вопрос... А что за задача, которая вот так вот.... усё фром таблицы....отображать - глупо... печатать - не катит... обрабатывать вне базы - кхм... как то загугылисто....


с уважением
(круглый)
...
Рейтинг: 0 / 0
31.10.2005, 15:32
    #33353349
domanix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка большого количества записей
Два решения.
первое - создание курсора и
фетчинг на клиента записей порциями...
Declare cursor - смотрите в документации...

Второй вариант ..
select * from table limit 1000;
т.е. лимитировать выборку - при достижении конца выборки на клинте
делать
select * from table limit 1000 offset 1000;

но это в том случае ечли вы просто выдаете список на клиента и на 99 процентов уверены что весь список клиенту не нужен .

И третий способ - максимально ограничивать интерфейсно выборки - чтобы на клиента грузилось как можно меньше лишней инфы ..
...
Рейтинг: 0 / 0
31.10.2005, 17:43
    #33353821
Hordi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка большого количества записей
>первое - создание курсора и
>фетчинг на клиента записей порциями...

В свое время реализовывал локальное хранилище содержимого таблицы и требовалось также выгружать все данные. Таблица содержала около 200тыс. Сначала сделал через курсор, но потом отказался, т.к. общее время получения всей таблицы оказалась меньше, чем при использовании обычного SELECT * FROM. Хотя, в случае когда курсором выгребалось не по одной записи, а сразу по много, то время прилично сокращалось.
...
Рейтинг: 0 / 0
31.10.2005, 17:51
    #33353847
Opilki_Inside
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка большого количества записей
hellwingЗдравствуйте.
Имеется Celeron 2.8GHz, 512Mb, HDD IDE 80Gb, Debian 3.1, Postgresql 8.0.3.
Вопрос: выборка из таблицы большого числа записей (порядка 1 млн., "select * from table") выполняется порядка 15 минут

А через что происходит соединение с базой? Через ODBC? На каком языке написана программа? Если на Delphi, то какие компоненты используются? Zeus?
Если на C++, может быть использовать libpq

Сколько времени занимает выборка данных тем же PGAdmin III ?
...
Рейтинг: 0 / 0
31.10.2005, 18:07
    #33353900
Opilki_Inside
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка большого количества записей
Opilki_Inside Zeus

Опечатка - Zeos
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Выборка большого количества записей / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]