|
|
|
(Perl) Параллельное выполнение функций
|
|||
|---|---|---|---|
|
#18+
Доброго дня. Не нашел рецепта, может тут кто подскажет. Ситуация такая: перловый скрипт формирует отчет. При этом исполняется последовательно около десятка разных запросов к БД. Длительность каждого запроса колеблется от 5 секунд до полутора минут. Есть ли какой-то способ запустить все десять запросов из одного скрипта, потом дождаться выполнения всез запросов и сформировать отчет? Имеется ввиду, что сервер БД имеет много памяти и много процессоров и мне выгоднее дать ему сильную кратковременную нагрузку, чем теребить мелкими запросами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2006, 12:00:05 |
|
||
|
(Perl) Параллельное выполнение функций
|
|||
|---|---|---|---|
|
#18+
Pavel KilevatyhДоброго дня. Не нашел рецепта, может тут кто подскажет. Ситуация такая: перловый скрипт формирует отчет. При этом исполняется последовательно около десятка разных запросов к БД. Длительность каждого запроса колеблется от 5 секунд до полутора минут. Есть ли какой-то способ запустить все десять запросов из одного скрипта, потом дождаться выполнения всез запросов и сформировать отчет? есть треды, есть форк. В купе с шаред-мемори решить можно. Имеется ввиду, что сервер БД имеет много памяти и много процессоров и мне выгоднее дать ему сильную кратковременную нагрузку, чем теребить мелкими запросами. ...напиши хранимую процедуру на сервере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2006, 12:13:26 |
|
||
|
(Perl) Параллельное выполнение функций
|
|||
|---|---|---|---|
|
#18+
За треды надо почитать, а форк запускает копию себя. Мне кажется не лучшее решение. По поводу ХП на сервере, используется Firebird . Я не знаю способа как распараллелить запросы в ХП. Разве что УДФ написать. Но вернусь к той же задаче что что и стоит в перле, чтолько придется ее решать на С. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2006, 12:36:03 |
|
||
|
(Perl) Параллельное выполнение функций
|
|||
|---|---|---|---|
|
#18+
Можно еще все запросы объединить посредством UNION А потом средствами perl разгребать кому - чего. PS кол-во полей во всех запросах должны быть одинаковы. В качестве разделителя, для формирования отчетов, можно использовать первое поле, например для первого запроса-отчета - '1', для второго - '2' и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2006, 12:39:17 |
|
||
|
(Perl) Параллельное выполнение функций
|
|||
|---|---|---|---|
|
#18+
Кстати, чем нравится перл, так это СПАНом. Похоже, сам себе ответил. Вот УРЛа: search.cpan.org/~nilsonsfj/subs-parallel-0.07/lib/subs/parallel.pm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2006, 12:51:22 |
|
||
|
(Perl) Параллельное выполнение функций
|
|||
|---|---|---|---|
|
#18+
orawebМожно еще все запросы объединить посредством UNION А потом средствами perl разгребать кому - чего. PS кол-во полей во всех запросах должны быть одинаковы. В качестве разделителя, для формирования отчетов, можно использовать первое поле, например для первого запроса-отчета - '1', для второго - '2' и т.д. Не издевательства ради, а в качестве здоровой критики. Если сапросы чуть больше трех строк, то их объединение будет совсем не маленьким. Представляю что скажут обо мне мои последователи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2006, 12:54:38 |
|
||
|
(Perl) Параллельное выполнение функций
|
|||
|---|---|---|---|
|
#18+
Если бы Вас попросили написать выписку за период с промежуточными итогами и входящим - исходящим остатком, как бы Вы реализовали эту задачу? Я бы все написал в одном запросе и кол-во строк меня бы не волновала. А кто-то писал бы кучу запросов: для входящего остатка - один запрос для дебета - другой и т.д. Ваш вопрос из той же оперы. Так что это дело вкуса. Теперь свой собственный internet-ресторан может открыть любой желающий! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2006, 13:44:56 |
|
||
|
|

start [/forum/topic.php?fid=23&fpage=428&tid=1476427]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 349ms |

| 0 / 0 |
