From bad59c290eb92d5ca4a4b78931c123a1eb40ded8 Mon Sep 17 00:00:00 2001 From: Bruce Momjian <bruce@momjian.us> Date: Thu, 20 Jun 2002 04:34:31 +0000 Subject: [PATCH] Add new Russian FAQ. Viktor Vislobokov --- doc/FAQ_russian | 48 ++++++++++++++--------------- doc/src/FAQ/FAQ_russian.html | 59 +++++++++++++++++------------------- 2 files changed, 51 insertions(+), 56 deletions(-) diff --git a/doc/FAQ_russian b/doc/FAQ_russian index 5de01e27ce2..45d2ea6025d 100644 --- a/doc/FAQ_russian +++ b/doc/FAQ_russian @@ -1,7 +1,7 @@ Ответы на часто задаваемые вопросы по PostgreSQL - Дата последнего обновления: Вторник 26 Апреля 23:03:46 EDT 2002 + Дата последнего обновления: Четверг 11 Июня 06:36:10 EDT 2002 Английский вариант сопровождает: Брюс Момьян (Bruce Momjian) (pgman@candle.pha.pa.us) @@ -105,6 +105,8 @@ 4.23) Как выполнить внешнее связывание? 4.24) Как выполнять запросы, использующие несколько баз данных? 4.25) Как мне вернуть из функции несколько записей? + 4.26) Почему я не могу надежно создавать/удалять временные таблицы в + функциях PL/PgSQL? Расширения PostgreSQL @@ -356,34 +358,18 @@ для работы с содержимым блокировок. Производительность - PostgreSQL может работать в двух режима. В нормальном fsync - режиме, каждая завершенная транзакция сбрасывается на диск, - гарантируя, что если операционная система или питание рухнет в - следующие несколько секунд, все ваши данные безопасно - сохранятся на диске. В этом режиме, мы работаем медленее, чем - большинство коммерческих СУБД, отчасти потому, что некоторые из - них делают у себя по умолчанию такой консервативный сброс на - диск. В режиме no-fsync, мы обычно быстрее чем коммерческие - СУБД, но в этом режиме, падение операциооной системы может - привести к потере данных. Мы работаем над тем чтобы - предоставить промежуточный режим, который обеспечивал более - высокую производительность, чем fsync режим и позволял - сохранить целостность данных записанных в течении 30 секунд до - падения операционной системы. + PostgreSQL имеет производительность схожую с другими + коммерческими СУБД и с СУБД с открытым исходным кодом, в + каких-то аспектах работая быстрее чем они, в каких-то медленее. В сравнении с MySQL или линейными СУБД, мы медленее при - операциях вставки/обновления, потому что мы управляем + операциях вставки/обновления, потому что управляем транзакциями. И разумеется, MySQL не имеет каких-либо - возможностей из перечисленых в секции Возможности. Мы делаем - упор на удобстве и возможностях, но мы также продолжаем - увеличивать производительность путем профилирования и анализа - исходных текстов. Существует интересная страничка в Интернет, + возможностей из перечисленых выше, в секции Возможности. Мы + делаем упор на надежность и расширенные возможности, но мы + также продолжаем увеличивать производительность с каждым + выпуском. Существует интересная страничка в Интернет, сравнивающая PostgreSQL и MySQL на http://openacs.org/why-not-mysql.html - Мы управляем каждым пользовательским соединением, создавая Unix - backend процесс. Backend процессы разделяют буферы данных и - информацию о блокировках. При наличии нескольких процессоров, - несколько backend процессов легко могут быть запущены на разных - процессорах. Надежность Мы понимали, что наша СУБД должна быть надежной или она ничего @@ -1133,6 +1119,18 @@ SELECT * refcursors. Смотрите http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html, секцию 23.7.3.3. + + 4.26) Почему я не могу надежно создавать/удалять временные таблицы в + функциях PL/PgSQL? + + PL/PgSQL кэширует содержимое функции и один из негативных эффектов + этого состоит в том, что если функция PL/PgSQL обращается к временной + таблице и эта таблица позднее удаляется и пересоздается, а функция + затем вызывается снова, то ее вызов приведет к ошибке, потому что + скэшированное содержимое функции содержит указатель на старую + временную таблицу. Чтобы решить эту проблему, используйте EXECUTE для + доступа к временным таблицам в PL/PgSQL. Использование этого оператора + заставит запрос перегенерироваться каждый раз. _________________________________________________________________ Расширения PostgreSQL diff --git a/doc/src/FAQ/FAQ_russian.html b/doc/src/FAQ/FAQ_russian.html index 259a5b07e7d..de99068802b 100644 --- a/doc/src/FAQ/FAQ_russian.html +++ b/doc/src/FAQ/FAQ_russian.html @@ -14,7 +14,7 @@ alink="#0000ff"> <H1>Ответы на часто задаваемые вопросы по PostgreSQL</H1> - <P>Дата последнего обновления: Вторник 26 Апреля 23:03:46 EDT 2002</P> + <P>Дата последнего обновления: Четверг 11 Июня 06:36:10 EDT 2002</P> <P>Английский вариант сопровождает: Брюс Момьян (Bruce Momjian) (<A href= "mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR> @@ -138,7 +138,8 @@ <A href="#4.24">4.24</A>) Как выполнять запросы, использующие несколько баз данных?<BR> <A href="#4.25">4.25</A>) Как мне вернуть из функции несколько записей?<BR> - + <A href="#4.26">4.26</A>) Почему я не могу надежно создавать/удалять + временные таблицы в функциях PL/PgSQL?<BR> <H2 align="center">Расширения PostgreSQL</H2> <A href="#5.1">5.1</A>) Я написал функцию определяемую пользователем. @@ -432,34 +433,19 @@ <DT><B>Производительность</B></DT> - <DD>PostgreSQL может работать в двух режима. В нормальном <I>fsync</I> - режиме, каждая завершенная транзакция сбрасывается на диск, - гарантируя, что если операционная система или питание рухнет - в следующие несколько секунд, все ваши данные безопасно - сохранятся на диске. В этом режиме, мы работаем медленее, - чем большинство коммерческих СУБД, отчасти потому, что некоторые - из них делают у себя по умолчанию такой консервативный сброс на диск. - В режиме <I>no-fsync</I>, мы обычно быстрее чем коммерческие СУБД, - но в этом режиме, падение операциооной системы может привести к - потере данных. Мы работаем над тем чтобы предоставить промежуточный - режим, который обеспечивал более высокую производительность, - чем <I>fsync</I> режим и позволял сохранить целостность данных - записанных в течении 30 секунд до падения операционной системы.<BR> - <BR> - В сравнении с MySQL или линейными СУБД, мы медленее при операциях - вставки/обновления, потому что мы управляем транзакциями. И разумеется, - MySQL не имеет каких-либо возможностей из перечисленых в секции - <I>Возможности</I>. Мы делаем упор на удобстве и - возможностях, но мы также продолжаем увеличивать производительность - путем профилирования и анализа исходных текстов. Существует - интересная страничка в Интернет, сравнивающая PostgreSQL и MySQL на <A href= - "http://openacs.org/why-not-mysql.html">http://openacs.org/why-not-mysql.html</A><BR> + <DD>PostgreSQL имеет производительность схожую с другими коммерческими + СУБД и с СУБД с открытым исходным кодом, в каких-то аспектах работая + быстрее чем они, в каких-то медленее. В сравнении с MySQL или линейными + СУБД, мы медленее при операциях вставки/обновления, потому что управляем + транзакциями. И разумеется, MySQL не имеет каких-либо возможностей из + перечисленых выше, в секции <I>Возможности</I>. + Мы делаем упор на надежность и расширенные возможности, но мы также + продолжаем увеличивать производительность с каждым выпуском. Существует + интересная страничка в Интернет, сравнивающая PostgreSQL и MySQL на + <A href="http://openacs.org/why-not-mysql.html"> + + http://openacs.org/why-not-mysql.html</A><BR> - <BR> - Мы управляем каждым пользовательским соединением, создавая - Unix backend процесс. Backend процессы разделяют буферы данных и информацию - о блокировках. При наличии нескольких процессоров, несколько - backend процессов легко могут быть запущены на разных процессорах.<BR> <BR> </DD> @@ -1351,11 +1337,22 @@ BYTEA bytea <H4><A name="4.25">4.25</A>) Как мне вернуть из функции несколько записей?</H4> <P>Вы можете возвращать из функций PL/pgSQL списки результатов, используя - <i>refcursors</i>. Смотрите <a + <i>refcursors</i>. Смотрите <A href="http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html"> http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html,</a> секцию 23.7.3.3.</P> - <HR> + + <H4><A name="4.26">4.26</A>) Почему я не могу надежно создавать/удалять + временные таблицы в функциях PL/PgSQL?</H4> + PL/PgSQL кэширует содержимое функции и один из негативных эффектов этого + состоит в том, что если функция PL/PgSQL обращается к временной таблице + и эта таблица позднее удаляется и пересоздается, а функция затем вызывается + снова, то ее вызов приведет к ошибке, потому что скэшированное содержимое + функции содержит указатель на старую временную таблицу. Чтобы решить эту + проблему, используйте <SMALL>EXECUTE</SMALL> для доступа к временным + таблицам в PL/PgSQL. Использование этого оператора заставит запрос + перегенерироваться каждый раз. + <HR> <H2 align="center">Расширения PostgreSQL</H2> -- GitLab