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

start [/forum/topic.php?fid=53&mobile=1&tid=1998007]: |
0ms |
get settings: |
7ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 204ms |
| total: | 357ms |

| 0 / 0 |
