Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
libpq-Получение данных в бинарном виде
|
|||
|---|---|---|---|
|
#18+
Поковырял сабж и выяснил такую штуку - скорость получения данных выросла почти в 2 раза (исключается лишняя конвертация в текст и обратно). Для типов int,short int, date, time, bool я формат и конвертацию разгреб. Остались timestamp, numeric, bitset. Может кто уже решил подобную проблему - поделитесь решениями... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2005, 21:18 |
|
||
|
libpq-Получение данных в бинарном виде
|
|||
|---|---|---|---|
|
#18+
HordiПоковырял сабж и выяснил такую штуку - скорость получения данных выросла почти в 2 раза (исключается лишняя конвертация в текст и обратно).Для типов int,short int, date, time, bool я формат и конвертацию разгреб.Остались timestamp, numeric, bitset.Может кто уже решил подобную проблему - поделитесь решениями... а что там её разгребать то ? типизация в ашниках, длина в байтах, не забывать перевернуть в зад всю пачку для чисел и иже, в рекурсии обработать массивы. Но думаю поповоду 2 раз - енто эээээээээээ, что то смахивает на хфантастику... скорее всего не все случаи убили... хотя - чего только не придумает горацио в этом мире(С)... с уважением (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2005, 14:38 |
|
||
|
libpq-Получение данных в бинарном виде
|
|||
|---|---|---|---|
|
#18+
kolobok0а что там её разгребать то ? Для numeric и для дат там есть чего разгребать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2005, 16:23 |
|
||
|
libpq-Получение данных в бинарном виде
|
|||
|---|---|---|---|
|
#18+
>Но думаю поповоду 2 раз - енто эээээээээээ, что то смахивает на хфантастику... скорее >всего не все случаи убили... Я написал "почти". Получение 100тыс записей (около 6 int, 4 date) текст: 0.62 с бинарный: 0.36 с Для меня это большая разница, т.к. бывает и по 3 миллиона выбирать приходиться. Но с разгребанием numeric невеселая конечно картина... В общем, сделаю - протестирую и о разнице в скорости сообщу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2005, 17:19 |
|
||
|
libpq-Получение данных в бинарном виде
|
|||
|---|---|---|---|
|
#18+
Узкое место сеть или CPU сервера? Если сеть - имеет смысл попробовать сжатие (например через SSH) и сравнить тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2005, 03:53 |
|
||
|
libpq-Получение данных в бинарном виде
|
|||
|---|---|---|---|
|
#18+
ффффУзкое место сеть или CPU сервера? Если сеть - имеет смысл попробовать сжатие (например через SSH) и сравнить тоже. Все запущено локально. Измерял именно получение данных, т.е. время выполнения запроса не учитывалось. Запускал несколько раз - результат практически одинаков. Если я не ошибаюсь, то в результате выполнения обычного запроса (не курсор) все полученные данные сразу передаются на сторону клиента, т.к. дальнейшее получение значений по столбцам-рядам происходит через обычный массив значений по указателю. Не пойму я чего они так геморно все сделали - все только через текст и все! Остальное на свой страх и риск. Вот Firebird берем - у них написаны функции конвертации данных из внутреннего формата хранения в обычные типы... И все просто, никаких проблем. А тут в коде приходиться лазить. И переносимость тут не при чем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2005, 10:39 |
|
||
|
libpq-Получение данных в бинарном виде
|
|||
|---|---|---|---|
|
#18+
Думаю, что так сделали потому ,что: 1. В постгресе ты можешь создавать свои типы и соответсвенно свои форматы их внутреннего хранения. Соответсвенно тебе придется переделывать всякий раз клиентскую либу каждый раз при такого рода изменениях. 2. На разных платформах на которых работает сервер - может быть разное внутренне представление хранения данных. 3. Данные могут передаваться через сложную систему шлюзов( например по инету) И не все шлюзы могут передавать бинарные данные. Во многих местах идет отсечение бинарного трафика. Т.е. клиентская либа получается не очень переносимой и расходы на поддержание ее в устойчивом состоянии становятся непомерно велики. Поэтому разработчики PG и делегировали сию функцию конечному пользователю системы. Мол ежели тебе нада- то делай сам и сам в таком случае неси отвественность за возможные ошибки и проблемы. Думаю такой подход вполне прагматичен и понятен... Тем более в опен сорц решении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2005, 10:55 |
|
||
|
libpq-Получение данных в бинарном виде
|
|||
|---|---|---|---|
|
#18+
>1. В постгресе ты можешь создавать свои типы и соответсвенно свои форматы их внутреннего хранения. Соответсвенно тебе придется переделывать всякий раз клиентскую либу каждый раз при такого рода изменениях. А как текстовое представление это может решить? >2. На разных платформах на которых работает сервер - может быть разное внутренне представление хранения данных. double, int и т.п. никто не отменял. >3. Данные могут передаваться через сложную систему шлюзов( например по инету) И не все шлюзы могут передавать бинарные данные. Во многих местах идет отсечение бинарного трафика. Ну что тут сказать... Открывать коннект к базе по инету... Ну не представляю я такого в реале... Особенно когда данных много. Да никакого ограничения тут нет, т.к. результаты могут возвращаться в бинарном виде простым указанием параметра в PQexecParam - никакого хака! А вот как этими данными воспользоваться - это в САД! >Т.е. клиентская либа получается не очень переносимой и расходы на поддержание ее в устойчивом состоянии становятся непомерно велики. Реально нужно 5 основных функций. Остальное можно и на откуп пользователям отдать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2005, 11:16 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=33452727&tid=2006772]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
25ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 262ms |
| total: | 395ms |

| 0 / 0 |
