|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Artem Chuprina 2:5020/371.32 07 Jul 2000 19:12:45 To : vitus@ice.ru Subject : Re: Session Management -------------------------------------------------------------------------------- AT>>> Вроде бы, при наличии mod_perl и постоянного соединения с базой, AT>>> производительность должна быть достаточной для серьезного использования... AC>>Я бы скорее пробовал так: для типичных запросов создаются stored procedures, AC>>что даёт базе возможность избавиться от компиляции SQL-запроса. Даже если их AC>>будет несколько десятков, это фигня по сравнению с несколькими тысячами vir> views AC>>или курсоров. Hетипичные запросы редки, а для типичных несколькими десятками AC>>обойтись удастся. Держим постоянное соединение с базой и AC>>$sth = $db->prepare("execute sp_smth ".join(", vir> ",map($db->quote($_),@args))); AC>>while (...) AC>> $sth->fetch AC>>} AC>>$sth->finish vir> А я делаю (реально) так - в запросах в нужные места ставлю placeholders vir> (? которые). При старте апача для самых частых запросов, и при vir> первом обращении - для более редких делаю prepare и запоминаю хэндл vir> оператора в глобальном хеше. vir> Далее vir> $sth->execute(@args); vir> while (@result=$sth->fetchrow_array) { vir> ... vir> } vir> $sth->finish. vir> Я, правда, не уверен, что во во всякой базе запрос компилируется при vir> prepare, но в Oracle он точно это делает. В sybase, например, наличие placeholder'а приводит к созданию временной sp, так что там это может быть осмысленно, пока коннект висит, а в постгресе и мыскле - это просто текстовая подстановка. SP же компилируется заведомо. Там, где она есть... Так что приём зависит от базы. Кстати, это глобальный хэш чего? И он один на все процессы или у каждого апача? Можно мылом поподробнее. -- Счастливо! Ран. --- ifmail v.2.14.os-p7-tma3 * Origin: MemoNet (2:5020/371.32@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/34731a1536ef.html, оценка из 5, голосов 10
|