powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Многопоточность
13 сообщений из 13, страница 1 из 1
Многопоточность
    #34556054
GreyCardinal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно ли в постгрессе написать многопоточный запрос?
задача такая
есть объекты учета
есть записи в регистрах
в принципе каждому объекту своя партия записей - и медъобъектные записи не зависимы (относительно)

как пример хочется создать процедурку на встроенном языке, которая создает заданное количество записей в регистрах для каждого объекта
и соотв кажется очевидно что это отдельные потоки
реально реализовать?
...
Рейтинг: 0 / 0
Многопоточность
    #34556134
Andrey Daeron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GreyCardinalможно ли в постгрессе написать многопоточный запрос?
задача такая
есть объекты учета
есть записи в регистрах
в принципе каждому объекту своя партия записей - и медъобъектные записи не зависимы (относительно)

как пример хочется создать процедурку на встроенном языке, которая создает заданное количество записей в регистрах для каждого объекта
и соотв кажется очевидно что это отдельные потоки
реально реализовать?
Нет. Постгрес не поддерживает такую фичу. Можно порыться в контрибах на свой страх и риск.
...
Рейтинг: 0 / 0
Многопоточность
    #34560252
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GreyCardinal...которая создает заданное количество записей в регистрах для каждого объекта ...

потоки нет, как ут уже прозвучало..Но в постгрессе есь циклы, в которых каждый проход ядро вызывает последовательно само. В принцепе Вы можете делать кучу работы на каждом вызове из ядра, пока не скажите - усё... При этом клиент есесвенно будет ожидать... Насколько это хорошо или плохо - хз...


с уважением
(круглый)
...
Рейтинг: 0 / 0
Многопоточность
    #34561076
GreyCardinal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поподробнее можно?

пример
есть тригер, котрый срабатывает на сохранение шапки документа -конкретно установка флага "провести"
и он в цикле начинает проводить каждую строку документа
в каждая строке - происходит вызов процедуры проведения строки
и хочется чтобы он повызывал для каждой, дождался пока все они параллельно отработают, и в конце сделал окончательную обработочку (если все ок -то статус документа сменил и тп)
...
Рейтинг: 0 / 0
Многопоточность
    #34561110
Serik Akhmetov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вас беспокоит производительность ? Или в чем смысл такого усложнения ?
...
Рейтинг: 0 / 0
Многопоточность
    #34561930
GreyCardinal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да
ну и эффективное использование сервера
просто задача из нашей жизни -накладная с 400 позиций основных средств
по каждому надо сделать как минимум 4 проводки, и данные до этого расчитать
по каждой позиции независимо от других

или другая - сальдо по контаргентам
с суммами просрочек, пенями и тп
тоже по каждому считается независимо, а запускает один человек (отчет)

просто когда данных мало - это не критично
а когда много и видишь что многопроцессорный(многоядерный) сервер загружен явно на 1 проц... (например у меня на двухядерном загрузка 45-47% ;)
...
Рейтинг: 0 / 0
Многопоточность
    #34562281
SilverSpyder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В принципе... можно но програмными средствами.
По видимости надо открывать два конекта складывать данные в разные темповые таблицы а потом сливать...

НО я думаю это достаточно сложновато я думаю заметно укорит использование Prepare и Execute.
...
Рейтинг: 0 / 0
Многопоточность
    #34562478
domanix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Через задницу возможно все - бесспорно.
Но не забудем,что все заявленные действия - которые неплохо бы проводить паралельно-должны выполнятся в одной транзакции. Если паралельность разводить со стороны клиента то управление транзакциями становится черезвычайно сложным или даже невозможным.
Короче не стоит овчинка выделки.(IMHO)
Я так считаю, что в данном случае нужно совершенствовать механизм проводки.Улачшая сам алгоритм.
Других путей не вижу..
...
Рейтинг: 0 / 0
Многопоточность
    #34563051
Serik Akhmetov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не вижу ничего страшного, в том, что документ на 400 строк будет проводиться несколько минут. Сколько времени этот документ вводили ? Пара минут на проведение ничего не изменит :)
Если пользователю совсем не хочется ждать, можно эту операцию запускать параллельно на клиенте, сохраняя при этом пользователю возможность работать с другими документами.
...
Рейтинг: 0 / 0
Многопоточность
    #34563227
GreyCardinal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"страшное" в долгом проведении - это что в это время работают и другие - и следовательно вероятность конфликтов возрастает, по сравнению с проведением за пару секунд....

...НО я думаю это достаточно сложновато я думаю заметно укорит использование Prepare и Execute....

Как я написал что обработка -в тригере
в нем самое "тормозящее" это цикл

for trow in select * from cis.cis_gl
where cis.cis_gl.cis_object = new.cis_object and cis.cis_gl.post_date > new.post_date
order by cis.cis_gl.post_date
loop
update cis.cis_gl set comment='updated', skt_s= new.kt_s + trow.skt_s, sdt_s= new.dt_s + trow.sdt_s where cis_gl.gl_id = trow.gl_id;
end loop;

раз он в тригере -не означает что он уже прекомпилирован?
...
Рейтинг: 0 / 0
Многопоточность
    #34563364
st_serg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну так уберите его, перепишите одним SQL запросом, судя по коду это не трудно
...
Рейтинг: 0 / 0
Многопоточность
    #34563425
GreyCardinal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как?
в апдейте нельзя сделать чтобы он обновлялся по определенному порядку
в мне надо чтобы следующая по дате запись обновлялась значением предыдущей + изменение текущей записи
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Многопоточность
    #35391927
Robert Ayrapetyan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все-таки, если PQisthreadsafe() возвращает 1, можно ли использовать объект Pgconn из нескольких потоков одновременно? Где про это можно почитать? Тут все очень размыто - http://www.postgresql.org/docs/8.3/interactive/libpq-threading.html . С одной стороны,

авторlibpq is reentrant and thread-safe if the configure command-line option --enable-thread-safety was used when the PostgreSQL distribution was built

С другой -

авторOne thread restriction is that no two threads attempt to manipulate the same PGconn object at the same time.

Исключают ли они друг друга, или второе всегда верно, непонятно. Дайте ссылку или растолкуйте.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Многопоточность
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]