Автор Тема: Параллельные процессы  (Прочитано 3595 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DartSidius

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 309
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Параллельные процессы
« : 27 Июня 2007, 04:54:09 »
Есть бд: оракл
перл

запросы очень долгие...т.к. база содержит порядка 25миллионов записей...выборка примерно 7-15 минут

Можно ли в перле запустить несколько процессов выборки сразу?...

Я рассматриваю щяс такой вариант:

есть головной файл index.cgi

из него посредством system запускается второй файл в котором запрос и формируется и делается ответ

Так вот...если я запущу

system("/usr/bin/perl file2.cgi");

system("/usr/bin/perl file3.cgi");

то головной скрипт будет ждать ответа от file2.cgi а только потом запустит следующий system?...

Если есть другие варианты, предлагайте...буду рад помощи :)

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
Параллельные процессы
« Ответ #1 : 27 Июня 2007, 09:15:29 »
perldoc -f fork

но я бы оптимизировал запрос.
для небольшой базы 15 минут -- много.

Оффлайн ctax

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 22
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Параллельные процессы
« Ответ #2 : 27 Июня 2007, 09:18:13 »
>Можно ли в перле запустить несколько процессов выборки сразу?
В Греции все есть:) perldoc -f fork
>то головной скрипт будет ждать ответа...?
Да

PS если запросы однотипные можно иметь промежуточную таблицу в которой все заранее посчитано и работать с ней.

Оффлайн DartSidius

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 309
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Параллельные процессы
« Ответ #3 : 27 Июня 2007, 11:50:33 »
посмотрю

25 миллионов записей - эт не большая база :) ?...

причём это там ещё с другой вяжется и т.д...база операционная..телефонные междугородние переговоры

не...запрос оптимизированный...там всё ок

Оффлайн DartSidius

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 309
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Параллельные процессы
« Ответ #4 : 28 Июня 2007, 02:24:15 »
А есть где-нибудь нормальный пример работы fork?...а то что-то я не понял...или понял но не до конца


получается надо создать подпрограмму где запускается fork

sub start_fork {

my $pid = fork();

if($pid) {

}
else {

}

}

дальше что-то не думается :)

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28