|
ADO + Postgres - clUseClient или clUseServer?
|
|||
---|---|---|---|
#18+
Читается большой набор данных в Postgres посредством ADOQuery Код: pascal 1. 2. 3. 4. 5. 6.
Таких запросов 2, выполняются последовательно, на выходе 2 txt файла соответственно Вводные: 1. Задача выполняется ночью, одним клиентом, то есть набор данных точно не изменится, следовательно можно readonly 2. Клиент крутится на машине, физически близкой к серверу (ping = 0) В настоящий момент используется clUseClient и ctKeyset. Но вот что не могу понять. ADOQuery и ADOConnection используются одинаковые, но файлы заполняются с разной скоростью. Так, первый большой файл в 250 МБ формируется около 4 часов, в то время как второй около 50 МБ формируется около 15 минут. Хотя запросы очень отличаются и обращаются к разным полям хотя тех же самых таблиц БД. Как я понимаю второй файл формируется так быстро потому что данные уже были переданы сервера и кэшировались во время выполнения первого запроса и заполнения первого файла. Вот интересно - если поменяю местами запросы, будет ли первый файл (после изменения уже второй) заполнятся в 3 раза быстрее как сейчас второй В общем итоговый вопрос - для максимального быстродействия - какой лучше использовать CursorLocation - clUseClient или clUseServer? И далее какой CursorType в зависимости от выбранного CursorLocation? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 22:00 |
|
ADO + Postgres - clUseClient или clUseServer?
|
|||
---|---|---|---|
#18+
Хм...поменял местами формирование файлов - ничего не изменилось. Второй файл в очереди (сейчас первый) так и формируется быстро - за 10 минут. Другой файл (в 5 раз больше по размеру) должен по идее формироваться за час, но обычно формируется за 4 часа на том же adoquery и adoconnection. Проверим что будет сейчас ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 22:36 |
|
ADO + Postgres - clUseClient или clUseServer?
|
|||
---|---|---|---|
#18+
арт2010, Я так понимаю, что ты сравниваешь разные курсоры на разных запросах? И в чём смысл? я бы понял, если ты сравнивал производительность разных курсоров на одном и том же запросе... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 09:12 |
|
ADO + Postgres - clUseClient или clUseServer?
|
|||
---|---|---|---|
#18+
арт2010, не тянуть сову на глобус... https://coderoad.ru/29190632/Как-экспортировать-вывод-запроса-PostgreSQL-в-файл-csv Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 09:37 |
|
ADO + Postgres - clUseClient или clUseServer?
|
|||
---|---|---|---|
#18+
Cobalt747, нет - пока сравниваю один курсор (client) на разных запросах server пока вообще не пробовал - вот сейчас наверное проверю ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 09:52 |
|
ADO + Postgres - clUseClient или clUseServer?
|
|||
---|---|---|---|
#18+
Gerasimenko, не все так просто. поля полученного dataset определенным образом обрабатываются командами Delphi прежде чем кладутся в файл. Не уверен что получится то же самое делать непосредственно в запросе. Да и что это глобально даст? Неужели напрямую из запроса в текстовый файл будет сохраняться быстрее? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 09:54 |
|
ADO + Postgres - clUseClient или clUseServer?
|
|||
---|---|---|---|
#18+
Сейчас кстати новая проблема вылезла, которой раньше не было - большой файл (который около 250 МБ) не записывается до конца - то 150 МБ, то сейчас вообще 40 - похоже postgres сбрасывает соединение. Интересно, если поменять курсор на server - поможет ли решить хотя бы эту проблему ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 09:56 |
|
|
start [/forum/topic.php?fid=58&msg=40088490&tid=2037134]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 10ms |
total: | 148ms |
0 / 0 |