|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : InSAn \(Panchuk Andrey\) 2:5020/400 18 Jun 2002 16:24:25 To : Nurlan Mukhanov Subject : Re: DO || EXECUTE -------------------------------------------------------------------------------- > есть код такого плана: > > $std=$db1->prepare("update posts set author_id=?, author_name=? where > author_name=?"); > $sth=$db2->prepare("select distinct q.id,q.name,q.misc from members q, > posts w where q.misc = w.author_name"); > $sth->execute or &error($DBI::errstr); > > while (@qqq = $sth->fetchrow) { > $std->execute(@qqq) or &error($DBI::errstr); > } > > то есть делаю prepare, а результат селекта подставляю в execute > > будет ли быстрее работать следующий код? > > $sth=$db1->prepare("select distinct q.id,q.name,q.misc from members q, > posts w where q.misc = w.author_name"); > $sth->execute or &error($DBI::errstr); > > while (@qqq = $sth->fetchrow) { > $db2->do("update posts set author_id='$qqq[0'], author_name='$qqq[0]' > where author_name='$qqq[0]'"); > } > > то есть делать сразу do без prepare и execute > > Если так поразмыслить, то что делает do - сразу сует запрос в базу, > > ну а prepare & execute сперва джоинит переданные значение, проверят > количество переданных данных и необходимых данных, формирует запрос и потом > только отдает базе... > > Hо просто хочу спросить мнение.. так ли это. не ошибаюсь ли я в своих > предположениях. Ошибаешься! Если использовать $db2->do в цикле, то для каждой вставляемой (обновляемой) строки создается новый дескриптор команды, команда подготавливается, выполняется и дескриптор уничтожается. В первом случае разбор команды происходит один раз, а затем команда используется из совместно используемого хеша SQL. В результате - выполнение первого кода присходит значительо быстрее. - --- Best regards, InSAn http://www.PROext.com --- ifmail v.2.15dev5 * Origin: PROext (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/91042eac74e5.html, оценка из 5, голосов 10
|