Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Выборка большого количества записей
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Имеется Celeron 2.8GHz, 512Mb, HDD IDE 80Gb, Debian 3.1, Postgresql 8.0.3. Вопрос: выборка из таблицы большого числа записей (порядка 1 млн., "select * from table") выполняется порядка 15 минут и пользователю отдаются все данные после ПОЛНОГО выполнения запроса. Можно ли как-то (не используя курсоры и лимиты) ускорить вывод первых записей пользователю? Или можно как-то настроить postgres/оптимизатор на такое поведение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2005, 08:09 |
|
||
|
Выборка большого количества записей
|
|||
|---|---|---|---|
|
#18+
hellwing....select * from table..... простите, глупый вопрос... А что за задача, которая вот так вот.... усё фром таблицы....отображать - глупо... печатать - не катит... обрабатывать вне базы - кхм... как то загугылисто.... с уважением (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2005, 15:26 |
|
||
|
Выборка большого количества записей
|
|||
|---|---|---|---|
|
#18+
Два решения. первое - создание курсора и фетчинг на клиента записей порциями... Declare cursor - смотрите в документации... Второй вариант .. select * from table limit 1000; т.е. лимитировать выборку - при достижении конца выборки на клинте делать select * from table limit 1000 offset 1000; но это в том случае ечли вы просто выдаете список на клиента и на 99 процентов уверены что весь список клиенту не нужен . И третий способ - максимально ограничивать интерфейсно выборки - чтобы на клиента грузилось как можно меньше лишней инфы .. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2005, 15:32 |
|
||
|
Выборка большого количества записей
|
|||
|---|---|---|---|
|
#18+
>первое - создание курсора и >фетчинг на клиента записей порциями... В свое время реализовывал локальное хранилище содержимого таблицы и требовалось также выгружать все данные. Таблица содержала около 200тыс. Сначала сделал через курсор, но потом отказался, т.к. общее время получения всей таблицы оказалась меньше, чем при использовании обычного SELECT * FROM. Хотя, в случае когда курсором выгребалось не по одной записи, а сразу по много, то время прилично сокращалось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2005, 17:43 |
|
||
|
Выборка большого количества записей
|
|||
|---|---|---|---|
|
#18+
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 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2005, 17:51 |
|
||
|
|

start [/forum/topic.php?fid=53&tid=2006899]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
9ms |
get forum data: |
4ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 366ms |

| 0 / 0 |
