|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 17 Dec 2001 12:57:32 To : Alexey Gradovtsev Subject : Re: таймаyт -------------------------------------------------------------------------------- Здравствуй, Alexey Gradovtsev. EM>>> вот написал себе счетчик, а сеpевp h1.ru pyгается, что он слишком долго EM>>> выполняется и пpеpывает его. хотя y меня дома он ноpмально pаботает. EM>>> что может вызывать итакyю задеpжкy? AC>> Троекратное чтение лога - дело, скорее всего, небыстрое. Особенно если AC>> он малость вырастет. То, что скрипт вообще написан ужасно, это второй AC>> момент... AG> У меня такую же ошибку выдает h1.ru при работе с Mysql. Причем выдает не AG> всегда. Иногда (обычно) все выполняется за секунду, а иногда долго AG> тормозит и кричит про сабж. В чем может быть дело? AG> И скрипт-то несложный. Вот его суть: AG> >>====== Вот здесь пошел как бы Windows Clipboard ======<< AG> @book_id = $number; AG> $sth = $dbh->prepare("SELECT chapter_id FROM chapters WHERE AG> book_id=$number") # дальше execute и AG> sth->finish AG> foreach (@chapter_id) { AG> $sth = $dbh->prepare("SELECT question_id FROM questions WHERE AG> $sth = $dbh->chapter_id=$_") # дальше execute и AG> sth->finish. # и все question_id заносим в AG> массив } AG> foreach (@question_id) { AG> $sth = $dbh->prepare("SELECT answer_id FROM answers WHERE AG> question_id=$_") # дальше execute и AG> sth->finish. # и все answer_id заносим в AG> массив } AG> # А теперь все записи с этими ..._id удаляем. AG> >>====== А здесь уже как бы и не Windows Clipboard ======<< AG> Т.е. надо удалить связанные записи из 4-х таблиц. Все ..._id определены AG> как ключи и являются числами типа tinyint либо smallint. В самом жестком AG> случае из таблиц надо удалить в сумме около 600 строк. AG> Я так понимаю, что дело в загрузке сервера на момент запуска скрипта. AG> Я прав? А можно как-нибудь избежать таймаута? Можно. Если делать не так, как ты, а так, как положено на SQL. То есть тремя запросами, а не 600. -- Artem Chuprina RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/358.49, ICQ: 13038757 Отправлено через сервер Talk.Ru - http://www.talk.ru --- ifmail v.2.15dev5 * Origin: Talk.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/6359d74c5928.html, оценка из 5, голосов 10
|