|
|
|
агрегация в bytea
|
|||
|---|---|---|---|
|
#18+
Не нашёл встроенной функции, которая смогла бы агрегировать например набор целых чисел в бинарный шматок. (Зачем надо, вопрос отдельный, вкратце - тотальная оптимизация обмена К-С). Написал свою, но, возможно, есть лучшее решение в плане быстродействия? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2015, 07:49 |
|
||
|
агрегация в bytea
|
|||
|---|---|---|---|
|
#18+
_avzНе нашёл встроенной функции, которая смогла бы агрегировать например набор целых чисел в бинарный шматок. (Зачем надо, вопрос отдельный, вкратце - тотальная оптимизация обмена К-С). Написал свою, но, возможно, есть лучшее решение в плане быстродействия? Прежде чем начинать это делать надо 1)понять ваш клиент по какому протоколу работает с базой (текстовому или бинарному) Если по текстовому то учитывая что в bytea с хорошими шансами каждый байт bytea передается в протоколе текстом вида \\xxx (т.е. 5ть байтами) то вы вряд ли на этом получите какой то разумный выйгрыш на старых версиях базы. На новых версиях базы можно попробовать bytea_output=escape и тогда каждый байт будет всего 2мя байтами передаваться, что тоже не думаю что вас порадует. Такие вещи стоит тестировать перед тем как начинать делать. В случае бинарного протокола как там передается bytea между клиентом и сервером вопрос открытый. Скорее всего заметного выйгрыша вы не пролучите. PS: для передачи набора чисел есть массивы. -- Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2015, 08:54 |
|
||
|
агрегация в bytea
|
|||
|---|---|---|---|
|
#18+
Maxim BogukПрежде чем начинать это делать надо 1)понять ваш клиент по какому протоколу работает с базой (текстовому или бинарному) клиент на Delphi, компоненты pgDAC.Maxim BogukЕсли по текстовому то учитывая что в bytea с хорошими шансами каждый байт bytea передается в протоколе текстом вида \\xxx (т.е. 5ть байтами) то вы вряд ли на этом получите какой то разумный выйгрыш на старых версиях базы. На новых версиях базы можно попробовать bytea_output=escape и тогда каждый байт будет всего 2мя байтами передаваться, что тоже не думаю что вас порадует. Такие вещи стоит тестировать перед тем как начинать делать. В случае бинарного протокола как там передается bytea между клиентом и сервером вопрос открытый. Скорее всего заметного выйгрыша вы не пролучите. СпасибоMaxim BogukPS: для передачи набора чисел есть массивы.Сейчас на них и работает. Однако компоненты pgDAC интерпретируют массивы как текстовый тип (ftMemo) и приходится на клиенте парсить строки из тысяч элементов, здесь-то и требуется максимальное быстродействие. Из бинарного куска оптимальней числа вычитывать было б. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2015, 09:38 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=38952328&tid=1998007]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
174ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 492ms |

| 0 / 0 |
