Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
(Оптимизация) Пакетная вставка с помощью DBI? (Sergey) 22/06/2003 - 01:30:06
      Re: (Оптимизация) Пакетная вставка с помощью DBI? (walrus) 23/06/2003 - 02:20:33
      Re: Я понимаю что это дико выглядит.. (Sergey) 23/06/2003 - 10:26:23
      Re: проблема не в дби.. (Sergey) 23/06/2003 - 13:12:16

> Original message text:
> From: Sergey - 22/06/2003 - 01:30:06
> Subject:(Оптимизация) Пакетная вставка с помощью DBI?
> -----------------
> Есть примитивная таблица (4 поля), в нее за раз надо перенести существенный объем данных - около 6000 записей вставить в нее..
>
> можно формировать для каждой записи свой запрси выполнять его в цикле, подобный подход меня не устраивает тем, что занимает не менее часа.
>
> while($case) {
> $sql="insert into mt1 (a,b,c,d) values ('$a','$b','$c','$d')";
> $sth=$dbh->prepare($sql);
> $sth->execute();
> ....
> }
>
> Как оптимизировать данный процесс? можно ли в цикле сгенирировать список запросов, а потом выполнить его за раз?
>
> Спасибо.
>


From: Sergey - 23/06/2003 - 10:26:23
Subject:Я понимаю что это дико выглядит..
-----------------
Особенно Если учесть, что машина п3-1000. Но я не знаю почему так.. (Спасибо за ответ "2)". Это то что я хотел узнать.)

Вот цикл который работает час:

foreach $port (@srvcs) {
foreach $target (@sites) {
foreach $time (@times) {
foreach $user (@clients) {
$sz=$ipfw_sort{"$time-$user-$target-$port"};
if($sz) {
$time=~/(.+)-(\d+)/;
$sql="insert into ipfw_sort values ('$1','$2','$user','$target','$port','$sz')";
$sth = $dbh->prepare($sql);
$sth->execute();
$status=sprintf("%02.0f",100*$qryctr/keys(%ipfw_sort));
if($prev_st ne $status) {print "\r$status \%";$prev_st=$status;}
$qryctr++;
}
}
}
}
}


Из всех операций в цикле, по идее, самые медленные это prepare() и execute(). Т.е. мне видятся два варианта:
1) Я некорректно использую DBI. - и все тормозит именно из-за него.
2) Столь существенное влияние оказывает работа с регэкспом и хешами (но это, мне кажется, маловероятным.






[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
9216



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |