|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : vitus@ice.ru 2:5020/400 07 Jul 2000 15:48:26 To : Artem Chuprina Subject : Re: Session Management -------------------------------------------------------------------------------- Artem Chuprina <Artem.Chuprina@p32.f371.n5020.z2.fidonet.org> wrote: AT>> Вроде бы, при наличии mod_perl и постоянного соединения с базой, AT>> производительность должна быть достаточной для серьезного использования... AC>Я бы скорее пробовал так: для типичных запросов создаются stored procedures, AC>что даёт базе возможность избавиться от компиляции SQL-запроса. Даже если их AC>будет несколько десятков, это фигня по сравнению с несколькими тысячами views AC>или курсоров. Hетипичные запросы редки, а для типичных несколькими десятками AC>обойтись удастся. Держим постоянное соединение с базой и AC>$sth = $db->prepare("execute sp_smth ".join(", ",map($db->quote($_),@args))); AC>while (...) AC> $sth->fetch AC>} AC>$sth->finish А я делаю (реально) так - в запросах в нужные места ставлю placeholders (? которые). При старте апача для самых частых запросов, и при первом обращении - для более редких делаю prepare и запоминаю хэндл оператора в глобальном хеше. Далее $sth->execute(@args); while (@result=$sth->fetchrow_array) { ... } $sth->finish. Я, правда, не уверен, что во во всякой базе запрос компилируется при prepare, но в Oracle он точно это делает. -- Victor Wagner vitus@ice.ru Programmer Office:7-(095)-785-09-72 Communiware.Net Home: 7-(095)-135-46-61 http://www.communiware.net http://www.ice.ru/~vitus --- ifmail v.2.15dev5 * Origin: AG Telecom news2 server (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/134041103f289.html, оценка из 5, голосов 10
|