diff options
author | Magnus Hagander | 2008-09-15 08:40:46 +0000 |
---|---|---|
committer | Magnus Hagander | 2008-09-15 08:40:46 +0000 |
commit | 3a58d2e172d45a681b4a936a97786e46a164dff3 (patch) | |
tree | da31c5d83784c16fb230e6ac4d1ec6b520001879 /doc/src/FAQ | |
parent | ffea8fd381a5738ee2cbc0ddea84dcee234e00de (diff) |
Convert Russian FAQ to UTF8, to make it render properly on the website.
Diffstat (limited to 'doc/src/FAQ')
-rw-r--r-- | doc/src/FAQ/FAQ_russian.html | 1512 |
1 files changed, 756 insertions, 756 deletions
diff --git a/doc/src/FAQ/FAQ_russian.html b/doc/src/FAQ/FAQ_russian.html index 7c9db560d5c..e92ce71c062 100644 --- a/doc/src/FAQ/FAQ_russian.html +++ b/doc/src/FAQ/FAQ_russian.html @@ -5,378 +5,378 @@ <HEAD> <META name="generator" content="HTML Tidy, see www.w3.org"> - <META http-equiv="Content-Type" content="text/html; charset=koi8-r"> + <META http-equiv="Content-Type" content="text/html; charset=utf8"> <TITLE>PostgreSQL FAQ</TITLE> </HEAD> <BODY bgcolor="#ffffff" text="#000000" link="#ff0000" vlink="#a00000" alink="#0000ff"> - <H1>������ �� ����� ���������� ������� �� PostgreSQL</H1> + <H1>Ответы на часто задаваемые вопросы по PostgreSQL</H1> - <P>���� ���������� ����������: ����� 25 ���� 23:54:14 EDT 2008</P> + <P>Дата последнего обновления: Среда 25 июня 23:54:14 EDT 2008</P> - <P>���������� ������� ������������: ���� ������ (Bruce Momjian) (<A href= + <P>Английский вариант сопровождает: Брюс Момьян (Bruce Momjian) (<A href= "mailto:bruce@momjian.us">bruce@monjian.us</A>) </P> - <P>����ף� �� �������: ������ ���������� (<A href= + <P>Перевёл на русский: Виктор Вислобоков (<A href= "mailto:admin@postgresql.ru.net">admin@postgresql.ru.net</A>)<BR> </P> - <P>����� ������ ���������� ������ ��������� ����� ����� �� + <P>Самую свежую английскую версию документа можно найти на <A href="http://www.postgresql.org/files/documentation/faqs/FAQ.html">http://www.postgresql.org/files/documentation/faqs/FAQ.html</A>.</P> - <P>����� ������ ������� ������ ��������� ����� ����� �� + <P>Самую свежую русскую версию документа можно найти на <A href="http://postgresql.ru.net/docs/FAQ_russian.html">http://postgresql.ru.net/docs/FAQ_russian.html</A>.</P> - <P>������ �� ������� ����������� ��� ���������� �������� ����� ����� �� + <P>Ответы на вопросы специфичные для конкретных платформ можно найти на <A href="http://www.postgresql.org/docs/faq/">http://www.postgresql.org/docs/faq/</A>.</P> <HR> - <H2 align="center">����� �������</H2> - <A href="#item1.1">1.1</A>) ��� ����� PostgreSQL? ��� ������������ ��� ��������? ��� ����� Postgres?<BR> - <A href="#item1.2">1.2</A>) ��� ��������� PostgreSQL?<BR> - <A href="#item1.3">1.3</A>) ������ ��������� ����� �� PostgreSQL?<BR> - <A href="#item1.4">1.4</A>) �� ����� ���������� �������� PostgreSQL?<BR> - <A href="#item1.5">1.5</A>) ��� ����� ����� PostgreSQL?<BR> - <A href="#item1.6">1.6</A>) ����� ������ �������� ������?<BR> - <A href="#item1.7">1.7</A>) ��� �������� ���������?<BR> - <A href="#item1.8">1.8</A>) ��� ��� �������� �� ������?<BR> - <A href="#item1.9">1.9</A>) ��� ����� ���������� �� ��������� ������� ��� ������������� - ������������?<BR> - <A href="#item1.10">1.10</A>) ����� ������������ ������� � �������?<BR> - <A href="#item1.11">1.11</A>) ��� ��������� <SMALL>SQL</SMALL>?<BR> - <A href="#item1.12">1.12</A>) ��� ��� ��������� ����������� ��� ������������� � ������� �������������?<BR> - <A href="#item1.13">1.13</A>) ��� �������� PostgreSQL � ������� - <SMALL>����</SMALL>? ����� �� PostgreSQL ���� ����������?<BR> - <A href="#item1.14">1.14</A>) ����� �� PostgreSQL �������� � ���������� �����������, � ������ �������, - ����������� �������� �������?<BR> - <A href="#item1.15">1.15</A>) ��� ��� ���������� �� ������� �������� PostgreSQL? - ��� �������� ��������� ������������� ���������?<BR> - - <H2 align="center">������� ������������� �� ���������� �����</H2> - <A href="#item2.1">2.1</A>) ����� ���������� ���� ��� PostgreSQL?<BR> - <A href="#item2.2">2.2</A>) ����� ����������� ���������� ��� ������������� - PostgreSQL ����� Web?<BR> - <A href="#item2.3">2.3</A>) ���� �� � PostgreSQL ����������� ��������� - ������������?<BR> + <H2 align="center">Общие вопросы</H2> + <A href="#item1.1">1.1</A>) Что такое PostgreSQL? Как произносится это название? Что такое Postgres?<BR> + <A href="#item1.2">1.2</A>) Кто управляет PostgreSQL?<BR> + <A href="#item1.3">1.3</A>) Каковы авторские права на PostgreSQL?<BR> + <A href="#item1.4">1.4</A>) На каких платформах работает PostgreSQL?<BR> + <A href="#item1.5">1.5</A>) Где можно взять PostgreSQL?<BR> + <A href="#item1.6">1.6</A>) Какая версия наиболее свежая?<BR> + <A href="#item1.7">1.7</A>) Где получить поддержку?<BR> + <A href="#item1.8">1.8</A>) Как мне сообщить об ошибке?<BR> + <A href="#item1.9">1.9</A>) Как найти информацию об известных ошибках или отсутствующих + возможностях?<BR> + <A href="#item1.10">1.10</A>) Какая документация имеется в наличии?<BR> + <A href="#item1.11">1.11</A>) Как научиться <SMALL>SQL</SMALL>?<BR> + <A href="#item1.12">1.12</A>) Как мне отправить исправление или присоединится к команде разработчиков?<BR> + <A href="#item1.13">1.13</A>) Как сравнить PostgreSQL с другими + <SMALL>СУБД</SMALL>? Может ли PostgreSQL быть встроенной?<BR> + <A href="#item1.14">1.14</A>) Будет ли PostgreSQL работать с последними изменениями, в разных страных, + касающимися дневного времени?<BR> + <A href="#item1.15">1.15</A>) Как мне отписаться от списков рассылки PostgreSQL? + Как избежать получения дублирующихся сообщений?<BR> + + <H2 align="center">Вопросы пользователей по клиентской части</H2> + <A href="#item2.1">2.1</A>) Какие интерфейсы есть для PostgreSQL?<BR> + <A href="#item2.2">2.2</A>) Какие инструменты существуют для использования + PostgreSQL через Web?<BR> + <A href="#item2.3">2.3</A>) Есть ли у PostgreSQL графический интерфейс + пользователя?<BR> - <H2 align="center">������� �����������������</H2> - <A href="#item3.1">3.1</A>) ��� ��� ���������� PostgreSQL � ����� �������� - �� <I>/usr/local/pgsql</I>?<BR> - <A href="#item3.2">3.2</A>) ��� ��� ��������� ������������ �� ������ - �����������?<BR> - <A href="#item3.3">3.3</A>) ����� ��������� ��� ����� ������� ��� ��������� - ������������������?<BR> - <A href="#item3.4">3.4</A>) ����� ����������� ��� ������� ���� � �������?<BR> - <A href="#item3.5">3.5</A>) ������ � ������� ��������� <I>"Sorry, too many - clients"</I> ����� ������� ������������ � ����?<BR> - <A href="#item3.6">3.6</A>) ��� ��������� ���������� PostgreSQL?<BR> - <A href="#item3.7">3.7</A>) ����� ������������ "������" � ������ - ������������?<BR> + <H2 align="center">Вопросы администрирования</H2> + <A href="#item3.1">3.1</A>) Как мне установить PostgreSQL в место отличное + от <I>/usr/local/pgsql</I>?<BR> + <A href="#item3.2">3.2</A>) Как мне управлять соединениями от других + компьютеров?<BR> + <A href="#item3.3">3.3</A>) Какие настройки мне нужно сделать для улучшения + производительности?<BR> + <A href="#item3.4">3.4</A>) Какие возможности для отладки есть в наличии?<BR> + <A href="#item3.5">3.5</A>) Почему я получаю сообщение <I>"Sorry, too many + clients"</I> когда пытаюсь подключиться к базе?<BR> + <A href="#item3.6">3.6</A>) Как выполнить обновление PostgreSQL?<BR> + <A href="#item3.7">3.7</A>) Какое компьютерное "железо" я должен + использовать?<BR> - <H2 align="center">������� ������������</H2> - <A href="#item4.1">4.1</A>) ��� ��������� <SMALL>SELECT</SMALL> ������ - ��� ���������� ������ ������� �������? ��� ������������ ������?<BR> - <A href="#item4.2">4.2</A>) ��� ��� ����� ����� �������, �������, - ���� ������ � ������������ ����������? ��� ��� ������� �������, - ������� ���������� <I>psql</I> ��� ��������� ���� ����������?<BR> - <A href="#item4.3">4.3</A>) ��� �������� ��� ������ �������?<BR> - <A href="#item4.4">4.4</A>) ������ ������������ ������� ��� ����� � �������, - ������ � ���� ������?<BR> - <A href="#item4.5">4.5</A>) ��� ����� ��������� ������������ � ���� ������ - ����� ��� ���������� ������ �� �������� ���������� �����?<BR> - <A href="#item4.6">4.6</A>) ������ ��� ������� �������� �������? ������ - ��� �� ���������� ��� �������?<BR> - <A href="#item4.7">4.7</A>) ��� ���������� �� ��, ��� ����������� ��������� - ��� ������?<BR> - <A href="#item4.8">4.8</A>) ��� ��� ��������� ����� ����������� ��������� - � ����� ����������� �� �������� ���� ����� ����������� ���������? - ��� ��� ������������ ������ ��� ������ ������������ �� �������� ����?<BR> - <A href="#item4.9">4.9</A>) ��� ��� ����������, ��� �������� ���� � �����-���� - ������� ����� <SMALL>NULL</SMALL>? ��� ��� ��������� ��������� - <SMALL>NULL</SMALL>? ���� � ����������� ���� <SMALL>NULL</SMALL> ��� ���?<BR> - <A href="#item4.10">4.10</A>) ������ ������� ����� ������� ����������� - ������?<BR> - <A href="#item4.11.1">4.11.1</A>) ��� ��� ������� ���� serial/�-����-�����������?<BR> - <A href="#item4.11.2">4.11.2</A>) ��� ��� �������� �������� ��� ������� + <H2 align="center">Вопросы эксплуатации</H2> + <A href="#item4.1">4.1</A>) Как выполнить <SMALL>SELECT</SMALL> только + для нескольких первых строчек запроса? Для произвольной строки?<BR> + <A href="#item4.2">4.2</A>) Как мне найти какие таблицы, индексы, + базы данных и пользователи существуют? Как мне увидеть запросы, + которые использует <I>psql</I> для получения этой информации?<BR> + <A href="#item4.3">4.3</A>) Как изменить тип данных колонки?<BR> + <A href="#item4.4">4.4</A>) Каковы максимальные размеры для строк в таблице, + таблиц и базы данных?<BR> + <A href="#item4.5">4.5</A>) Как много дискового пространства в базе данных + нужно для сохранения данных из обычного текстового файла?<BR> + <A href="#item4.6">4.6</A>) Почему мои запросы работают медлено? Почему + они не используют мои индексы?<BR> + <A href="#item4.7">4.7</A>) Как посмотреть на то, как оптимизатор выполняет + мой запрос?<BR> + <A href="#item4.8">4.8</A>) Как мне выполнить поиск регулярного выражения + и поиск независимый от регистра букв поиск регулярного выражения? + Как мне использовать индекс для поиска независимого от регистра букв?<BR> + <A href="#item4.9">4.9</A>) Как мне определить, что значение поля в каком-либо + запросе равно <SMALL>NULL</SMALL>? Как мне соединить возможные + <SMALL>NULL</SMALL>? Могу я сортировать поля <SMALL>NULL</SMALL> или нет?<BR> + <A href="#item4.10">4.10</A>) Каковы отличия между разными символьными + типами?<BR> + <A href="#item4.11.1">4.11.1</A>) Как мне создать поле serial/с-авто-увеличением?<BR> + <A href="#item4.11.2">4.11.2</A>) Как мне получить значение при вставке <SMALL>SERIAL</SMALL>?<BR> - <A href="#item4.11.3">4.11.3</A>) �� ����� �� ���������� ���, ��� - ������������� <I>currval()</I> � <I>nextval()</I> �������� � - �������������� � ������� ��������������?<BR> - <A href="#item4.11.4">4.11.4</A>) ������ ����� �� ���� ������������������ - �� ������������ ����� ��� ������ ����������? ������ ��������� ������� - ��� ��������� � �������, ��� � ��������� ������������������/SERIAL?<BR> - <A href="#item4.12">4.12</A>) ��� ����� <SMALL>OID</SMALL>? ��� ����� + <A href="#item4.11.3">4.11.3</A>) Не может ли получиться так, что + использование <I>currval()</I> и <I>nextval()</I> приведет к + зациклированию с другими пользователями?<BR> + <A href="#item4.11.4">4.11.4</A>) Почему числа из моей последовательности + не используются снова при отмене транзакции? Почему создаются разрывы + при нумерации в колонке, где я использую последовательность/SERIAL?<BR> + <A href="#item4.12">4.12</A>) Что такое <SMALL>OID</SMALL>? Что такое <SMALL>CTID</SMALL>?<BR> - <A href="#item4.13">4.13</A>) ������ � ������� ������ <I>"ERROR: Memory + <A href="#item4.13">4.13</A>) Почему я получаю ошибку <I>"ERROR: Memory exhausted in AllocSetAlloc()"</I>?<BR> - <A href="#item4.14">4.14</A>) ��� ��� ������, ����� ������ PostgreSQL - ��������?<BR> - <A href="#item4.15">4.15</A>) ��� ��� ������� ������� ������� �� ��������� - ����� ��������� ������� �����?<BR> - <A href="#item4.16">4.16</A>) ��� ��������� ������� ����������?<BR> - <A href="#item4.17">4.17</A>) ��� ��������� �������, ������������ ��������� - ��� ������?<BR> - <A href="#item4.18">4.18</A>) ��� ��� ������� �� ������� ��������� ����� �������?<BR> - <A href="#item4.19">4.19</A>) ������ � ������� ������ "relation with OID #### - �� ����������", ����� ���������� � ��������� �������� � �������� PL/PgSQL?<BR> - <A href="#item4.20">4.20</A>) ����� ���� ������� ��� ����������?<BR> - <A href="#item4.21">4.21</A>) ������ ����� ������� � ������� �� - ������������ � � �ϣ� �������? ������ �� ����������� ��������� �����?<BR> + <A href="#item4.14">4.14</A>) Как мне узнать, какая версия PostgreSQL + запущена?<BR> + <A href="#item4.15">4.15</A>) Как мне создать колонку которая по умолчанию + будет содержать текущее время?<BR> + <A href="#item4.16">4.16</A>) Как выполнить внешнее связывание?<BR> + <A href="#item4.17">4.17</A>) Как выполнять запросы, использующие несколько + баз данных?<BR> + <A href="#item4.18">4.18</A>) Как мне вернуть из функции несколько строк таблицы?<BR> + <A href="#item4.19">4.19</A>) Почему я получаю ошибку "relation with OID #### + не существует", когда обращаютсь к временным таблицам в функциях PL/PgSQL?<BR> + <A href="#item4.20">4.20</A>) Какие есть решения для репликации?<BR> + <A href="#item4.21">4.21</A>) Почему имена таблицы и колонок не + распознаются в в моём запросе? Почему не сохраняются заглавные буквы?<BR> <HR> - <H2 align="center">����� �������</H2> + <H2 align="center">Общие вопросы</H2> - <H3><A name="item1.1">1.1</A>) ��� ����� PostgreSQL? ��� ������������ ��� ��������? ��� ����� Postgres?</H3> + <H3><A name="item1.1">1.1</A>) Что такое PostgreSQL? Как произносится это название? Что такое Postgres?</H3> - <P>PostgreSQL ������������ <I>Post-Gres-Q-L (����-����-���-��)</I>. - (��� ����� ��������������� ��� ����������� "PostgreSQL", ���������� - <A href="http://www.postgresql.org/files/postgresql.mp3">�����-����</A>). + <P>PostgreSQL произносится <I>Post-Gres-Q-L (Пост-Грес-Кью-Эл)</I>. + (Для особо любопытствующих как произносить "PostgreSQL", существует + <A href="http://www.postgresql.org/files/postgresql.mp3">аудио-файл</A>). </P> - <P>PostgreSQL - ��� ��������-����������� ������� ���������� ������ - ������ (����), ������� ����� ������������ ����������� ������������ - <small>����</small> � ������������, ������� ���� � <small>����</small> - ������ ���������. PostgreSQL - ��� ��������� � ��������� �������� - ����������� �����������.</P> + <P>PostgreSQL - это объектно-реляционная система управления базами + данных (СУБД), которая имеет традиционные возможности коммерческих + <small>СУБД</small> с расширениями, которые есть в <small>СУБД</small> + нового поколения. PostgreSQL - это свободное и полностью открытое + программное обеспечение.</P> - <P>���������� PostgreSQL ��������� ������� �������������, ������������ - �� ����� ���� � ��������� ����� ��������. ���������� �������� - ������������ �������� � �� ����������� �����-���� ���������. - ����������� �������� � FAQ ��� �������������, + <P>Разработку PostgreSQL выполняет команда разработчиков, разбросанная + по всему миру и связанная через Интернет. Разработка является + общественным проектом и не управляется какой-либо компанией. + Подробности смотрите в FAQ для разработчиков, <A href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html"> http://www.postgresql.org/docs/faqs.FAQ_DEV.html</A> </P> - <P>Postgres — ��� ������ ������������ ���������� ��� PostgreSQL. - �������������� ������ ������� � ������ ���� Postgres � ���� ��� ������ - �������� ��������� � ���������� � PostgreSQL �� ��������� � �������. - ���� ��� ������ ��������� ������������� 'PostgreSQL', ����� ������ - �������� 'Postgres'.</P> + <P>Postgres — это широко используемое сокращение для PostgreSQL. + Первоначальным именем проекта в Беркли было Postgres и этот ник теперь + наиболее популярен в разговорах о PostgreSQL по сравнению с другими. + Если вам трудно полностью проговаривать 'PostgreSQL', можно просто + говорить 'Postgres'.</P> - <H3><A name="item1.2">1.2</A>) ��� ��������� PostgreSQL?</H3> + <H3><A name="item1.2">1.2</A>) Кто управляет PostgreSQL?</H3> - <P>���� �� ����� ������-�� ���������� ��������, ����������� - ������� ��� ����������� ��������, �� �������� --- �� ���. - � ��� ���� ���� �������� � �������������, ���������� � CVS, - �� ��� ������ ������ ������ ��� ���������������� �����, ��� - ��� ����������. ������ �������� ������������� � ������� - ���������� ������������� � �������������, � �������� ����� - ������������� ������. �ӣ ��� ����� -- ��� ����������� �� - ������ �������� � ����������� � ����������. (����������� � - ��� ��� ���������� � ���������� PostgreSQL �������� � + <P>Если вы ищите какого-то особенного человека, центральный + комитет или управляющую компанию, то напрасно --- их нет. + У нас есть ядро комитета и разработчиков, работающих с CVS, + но эти группы служат больше для административных целей, чем + для управления. Проект напрямую функционирует с помощью + сообщества разработчиков и пользователей, к которому может + присоединится каждый. Всё что нужно -- это подписаться на + списки рассылки и участвовать в дискуссиях. (Подробности о + том как включиться в разработку PostgreSQL смотрите в <a href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html"> - FAQ ��� �������������</A>.)</P> + FAQ для разработчиков</A>.)</P> - <H3><A name="item1.3">1.3</A>) ������ ��������� ����� �� PostgreSQL?</H3> + <H3><A name="item1.3">1.3</A>) Каковы авторские права на PostgreSQL?</H3> - <P>PostgreSQL ���������������� �� ������������ �������� BSD. ��� - �������� �� �������� ����������� �� ��, ��� ����� �������������� - �������� ���. ��� �������� ��� �������� � � ��� ��� ��������� ţ - ������. ��� ��� �������� BSD, ������� �� ����������:</P> + <P>PostgreSQL распространяется по классической лицензии BSD. Эта + лицензия не содержит ограничений на то, как будет использоваться + исходный код. Нам нравится эта лицензия и у нас нет намерений её + менять. Вот эта лицензия BSD, которую мы используем:</P> - <P>������� ���������� ������ ������ PostgreSQL</P> + <P>Система Управления Базами Данных PostgreSQL</P> <P>Portions copyright (c) 1996-2008, PostgreSQL Global Development Group Portions Copyright (c) 1994-1996 Regents of the University of California</P> - <P>��������������� ����� �� �������������, �����������, ��������� - � ��������������� ������� ������������ ����������� � ��� ������������ - ��� ����� �����, ��������� � ��� ���������� ������-���� ����������, - ��� ������� ��� ��� ������ ����� ����� ������������� ������ ���� - ��������� �� ��������� ������, ������� �������� � ��� ��������� - ���������.</P> - - <P>�������������� ����������� �� ����� ������� ��������������� - �� ����� �����������, ������� ������ ������, ���������� ������ - ��� ��������, ����������� ��� ��������� �������������� ������� - ������������ ����������� ��� ��� ������������, ���� ���� - �������������� ����������� ��� ������� � ����������� ����� - �����������.</P> - - <P>�������������� ����������� ���������� ���������������� ������������� - ����� ��������, �������, �� �� ������������� ������ ����� ����������: - ������� �������� ����������� ������ ��� ����������� ��� ��������� ����. - ������ ����������� ����������� ��������������� �� ������ ������� - "��� ����" � �������������� ����������� �� ������ ������������� - �������������, ���������, ����������, ���������� ��� ���������.</P> - - <H3><A name="item1.4">1.4</A>) �� ����� ���������� �������� PostgreSQL?</H3> - - <P>������, PostgreSQL ����� �������� �� ����� ����������� ��������� - ����������� � Unix. � ���������� �� ���������, �� ������� ������ - ��� ��������, �� ������� ���� ��������� �������� ������� PostgreSQL - � ������� ������ ������ ������.</P> - - <P>PostgreSQL ����� �������� �� ������������ �������� Microsoft - Windows, ���������� �� NT, ����� ��� Win2000 SP4, WinXP � Win2003. - ����� ������������ �������� �� ������ + <P>Предоставляются права на использование, копирование, изменение + и распространение данного программного обеспечения и его документации + для любых целей, бесплатно и без подписания какого-либо соглашения, + при условии что для каждой копии будут предоставлены данное выше + замечание об авторских правах, текущий параграф и два следующих + параграфа.</P> + + <P>КАЛИФОРНИЙСКИЙ УНИВЕРСИТЕТ НЕ НЕСЕТ НИКАКОЙ ОТВЕТСТВЕННОСТИ + ЗА ЛЮБЫЕ ПОВРЕЖДЕНИЯ, ВКЛЮЧАЯ ПОТЕРЮ ДОХОДА, НАНЕСЕННЫЕ ПРЯМЫМ + ИЛИ НЕПРЯМЫМ, СПЕЦИАЛЬНЫМ ИЛИ СЛУЧАЙНЫМ ИСПОЛЬЗОВАНИЕМ ДАННОГО + ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИЛИ ЕГО ДОКУМЕНТАЦИИ, ДАЖЕ ЕСЛИ + КАЛИФОРНИЙСКИЙ УНИВЕРСИТЕТ БЫЛ ИЗВЕЩЕН О ВОЗМОЖНОСТИ ТАКИХ + ПОВРЕЖДЕНИЙ.</P> + + <P>КАЛИФОРНИЙСКИЙ УНИВЕРСИТЕТ СПЕЦИАЛЬНО ОТКАЗЫВАЗЫВАЕТСЯ ПРЕДОСТАВЛЯТЬ + ЛЮБЫЕ ГАРАНТИИ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ТОЛЬКО ЭТИМИ ГАРАНТИЯМИ: + НЕЯВНЫЕ ГАРАНТИИ ПРИГОДНОСТИ ТОВАРА ИЛИ ПРИГОДНОСТИ ДЛЯ ОТДЕЛЬНОЙ ЦЕЛИ. + ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ НА ОСНОВЕ ПРИЦИПА + "КАК ЕСТЬ" И КАЛИФОРНИЙСКИЙ УНИВЕРСИТЕТ НЕ ОБЯЗАН ПРЕДОСТАВЛЯТЬ + СОПРОВОЖДЕНИЕ, ПОДДЕРЖКУ, ОБНОВЛЕНИЯ, РАСШИРЕНИЯ ИЛИ ИЗМЕНЕНИЯ.</P> + + <H3><A name="item1.4">1.4</A>) На каких платформах работает PostgreSQL?</H3> + + <P>Обычно, PostgreSQL может работать на любой современной платформе + совместимой с Unix. В инструкции по установке, вы найдете список + тех платформ, на которых были проведены тестовые запуски PostgreSQL + к моменту выхода данной версии.</P> + + <P>PostgreSQL также работает на операционных системах Microsoft + Windows, основанных на NT, таких как Win2000 SP4, WinXP и Win2003. + Пакет инсталлятора доступен по адресу <A href="http://www.postgresql.org/download/windows"> - http://www.postgresql.org/download/windows</A>. ������ Windows, - ���������� �� MS-DOS (Win95, Win98, WinMe) ����� ��������� - PostgreSQL � ������� Cygwin.</P> + http://www.postgresql.org/download/windows</A>. Версии Windows, + основанные на MS-DOS (Win95, Win98, WinMe) могут запускать + PostgreSQL с помощью Cygwin.</P> - <P>����� ���������� ������ �������������� ��� Novell Netware 6 �� + <P>Также существует версия спортированная под Novell Netware 6 на <A href="http://developer.novell.com/wiki/index.php/Postgresql">http://developer.novell.com/wiki/index.php/Postgresql</A>, - � ������ ��� OS/2 (eComStation) �� + и версия для OS/2 (eComStation) на <A href="http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F"> http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F</A>.</P> - <H3><A name="item1.5">1.5</A>) ��� ����� ����� PostgreSQL?</H3> + <H3><A name="item1.5">1.5</A>) Где можно взять PostgreSQL?</H3> - <P>����� �������, ��������� <a href="http://www.postgresql.org/ftp/"> - http://www.postgresql.org/ftp/</a> � ����� ftp, ��������� + <P>Через браузер, используя <a href="http://www.postgresql.org/ftp/"> + http://www.postgresql.org/ftp/</a> и через ftp, используя <A href="ftp://ftp.PostgreSQL.org/pub/">ftp://ftp.postgresql.org/pub/</A>.</P> - <H3><A name="item1.6">1.6</A>) ����� ������ �������� ������?</H3> + <H3><A name="item1.6">1.6</A>) Какая версия наиболее свежая?</H3> - <P>��������� ������ PostgreSQL - ��� ������ 8.3.3</P> + <P>Последний выпуск PostgreSQL - это версия 8.3.3</P> - <P>�� ��������� ��������� ����� ������� ������ ������ ���, - � ������� ������ ������ ��������� �������.</P> + <P>Мы планируем выпускать новые старшие версии каждый год, + а младшие версии каждые несколько месяцев.</P> - <H3><A name="item1.7">1.7</A>) ��� �������� ���������?</H3> + <H3><A name="item1.7">1.7</A>) Где получить поддержку?</H3> - <P>���������� PostgreSQL ������������� ������ ��������� ������������� - ����� E-mail. �������� web-���� ��� �������� �� ������ �������� �� - E-mail ���: <A href="http://www.postgresql.org/community/lists/"> - http://www.postgresql.org/community/lists/</A>. ������� ������ ��� - ����, ����� ������ �������� ������� �������� ������ <i>general</i> - (����� �������) ��� <i>bugs</i> (������).</P> + <P>Сообщество PostgreSQL предоставляет помощь множеству пользователей + через E-mail. Основной web-сайт для подписки на списки рассылки по + E-mail это: <A href="http://www.postgresql.org/community/lists/"> + http://www.postgresql.org/community/lists/</A>. Хорошим местом для + того, чтобы начать задавать вопросы являются списки <i>general</i> + (общие вопросы) или <i>bugs</i> (ошибки).</P> - <P>������� IRC ������� �������� <I>#postgreql</I>, - ������������� �� ������� Freenode (<I>irc.freenode.net</I>). ����� - ������������, �� ������ ������������ � Unix ����� ��������� - <code>irc -c '#postgresql' "$USER" irc.freenode.net</code> ��� - ����� ������ IRC ������. �� ���� �� ������� ���������� ������ �� - ��������� (<I>#postgresql-es</I>), ����������� (<I>#postgresqlfr</I>) - � ����������� (<I>#postgresql-br</I>) ������. ����� ���������� ����� - �� PostgreSQL �� ������� EFNet.</P> + <P>Главным IRC каналом является <I>#postgreql</I>, + расположенный на сервере Freenode (<I>irc.freenode.net</I>). Чтобы + подключиться, вы можете использовать в Unix вызов программы + <code>irc -c '#postgresql' "$USER" irc.freenode.net</code> или + любой другой IRC клиент. На этом же сервере существуют каналы на + испанском (<I>#postgresql-es</I>), французском (<I>#postgresqlfr</I>) + и бразильском (<I>#postgresql-br</I>) языках. Также существует канал + по PostgreSQL на сервере EFNet.</P> - <P>������ ������������ ��������� �������� �������� �� + <P>Список коммерческой поддержки компаний доступен на <A href="http://www.postgresql.org/support/professional_support"> http://www.postgresql.org/support/professional_support</A>.</P> - <H3><A name="item1.8">1.8</A>) ��� ��� �������� �� ������?</H3> + <H3><A name="item1.8">1.8</A>) Как мне сообщить об ошибке?</H3> - <P>�������� ��������� �� ����������� ������ ��ޣ�� �� ������ � - PostgreSQL �� ������: + <P>Посетите страничку со специальной формой отчёта об ошибке в + PostgreSQL по адресу: <A HREF="http://www.postgresql.org/support/submitbug"> http://www.postgresql.org/support/submitbug</A>. - ����� ��������� ������� ����� ������ ������ PostgreSQL �� ����� - FTP ����� <A href="ftp://ftp.postgresql.org/pub/"> + Также проверьте наличие более свежей версии PostgreSQL на нашем + FTP сайте <A href="ftp://ftp.postgresql.org/pub/"> ftp://ftp.postgresql.org/pub/</A>.</P> - <P>�� ������, ����������� � ������� ���� ������� ����� ����������� - ����� ��� ������������ � �����-���� ������ �������� PostgreSQL, - ������ ������������ ���� �� ��������� �������:</P> + <P>На ошибки, уведомление о которых были сделаны через специальную + форму или отправленные в какой-либо список рассылки PostgreSQL, + обычно генерируется один из следующих ответов:</P> <UL> - <LI>��� �� ������ � ������</LI> - <LI>��� ��������� ������ � ��� ��� ���� � ������ + <LI>Это не ошибка и почему</LI> + <LI>Это известная ошибка и она уже есть в списке <A HREF="http://www.postgresql.org/docs/faqs.TODO.html">TODO</A></LI> - <LI>������ ������ ���� ���������� � ������� �������</LI> - <LI>������ ������ ���� ����������, �� ����������� ���� �� ������ � - ����������� ������</LI> - <LI>������������� ����� ��������� ����������: + <LI>Данная ошибка была исправлена в текущем выпуске</LI> + <LI>Данная ошибка была исправлена, но исправление пока не попало в + официальный выпуск</LI> + <LI>Запрашивается более детальная информация: <UL> - <LI>������������ �������</LI> - <LI>������ PostgreSQL</LI> - <LI>����, ��������������� ������</LI> - <LI>���������� ����������</LI> - <LI>����� backtrace ���������</LI> + <LI>Операционная система</LI> + <LI>Версия PostgreSQL</LI> + <LI>Тест, воспроизводящий ошибку</LI> + <LI>Отладочная информация</LI> + <LI>Вывод backtrace отладчика</LI> </UL> </LI> - <LI>��� ����� ������. ����� ��������� ���������: + <LI>Это новая ошибка. Может произойти следующее: <UL> - <LI>����� ������� �����������, ������� ����� �������� � ��������� - ������</LI> - <LI>������ �� ����� ���� ���������� ���������� � ����� ��������� � ������ + <LI>Будет создано исправление, которое будет включено в следующий + выпуск</LI> + <LI>Ошибка не может быть исправлена немедленно и будет добавлена в список <A HREF="http://www.postgresql.org/docs/faqs.TODO.html">TODO</A></LI> </UL> </LI> </UL> - <H3><A name="1.9">1.9</A>) ��� ����� ���������� �� ��������� ������� - ��� ������������� ������������?</H3> + <H3><A name="1.9">1.9</A>) Как найти информацию об известных ошибках + или отсутствующих возможностях?</H3> - <P>PostgreSQL ������������ ����������� �������� <SMALL>SQL:2003</SMALL>. - �������� ��� ������ <A href="http://www.postgresql.org/docs/faqs.TODO.html">TODO</A> - �� ������� ��������� ������, ������������� ������������ � ������� - ������.</P> + <P>PostgreSQL поддерживает расширенный подкласс <SMALL>SQL:2003</SMALL>. + Смотрите наш список <A href="http://www.postgresql.org/docs/faqs.TODO.html">TODO</A> + на предмет известных ошибок, отсутствующих возможностей и будущих + планов.</P> - <P>�� ������ �����-���� ����������� ������ �������� ��������� ������:</P> + <P>На запрос какой-либо возможности обычно приходят следующие ответы:</P> <UL> - <LI>������ ����������� ��� ���� � ������ + <LI>Данная возможность уже есть в списке <A href="http://www.postgresql.org/docs/faqs.TODO.html">TODO</A></LI> - <LI>������ ����������� ������������ ������ ���: + <LI>Данная возможность нежелательна потому что: <UL> - <LI>��� ��������� ������������ ����������������, ������� ������� - ��������� SQL</LI> - <LI>������ ����������� ������ ��������� �� ���, �� ���� �� ��������� - ������</LI> - <LI>������ ����������� ����������� ��� ����ģ���</LI> + <LI>Она дублирует существующую функциональность, которая следует + стандарту SQL</LI> + <LI>Данная возможность сильно усложнила бы код, но дала бы маленькую + выгоду</LI> + <LI>Данная возможность небезопасна или ненадёжна</LI> </UL> </LI> - <LI>������ ����� ����������� ��������� � ������ + <LI>Данная новая возможность добавлена в список <A href="http://www.postgresql.org/docs/faqs.TODO.html">TODO</A> </LI> </UL> - <P>PostgreSQL �� ���������� �����-���� ������� ������������ ������, - ������ ��� �� ����������, ��� ������������� ������� ��������� �� - ����������� ����� � ������������ ������ + <P>PostgreSQL не использует какую-либо систему отслеживания ошибок, + потому что мы обнаружили, что использование прямого обращения по + электронной почте и обновляемого списка <A href="http://www.postgresql.org/docs/faqs.TODO.html">TODO</A> - �������� ����� �����������. �� ��������, ������ � ����������� - ����������� ����������� ����� �������, � ������, ������� ����� - �������� ���������� ������������� ������������ �����������. ���� - ������ ���� �����, ��� ����� ����� ��� ���������, ��������� � - �����������, ��������� � ������� PostgreSQL - ��� ������� ��������� - ������� �������� ������ + является более эффективным. На практике, ошибки в программном + обеспечении сохраняются очень недолго, а ошибки, которые важны + большому количеству пользователей исправляются моментально. Есть + только одно место, где можно найти все изменения, улучшения и + исправления, сделанные в выпуске PostgreSQL - это журналы сообщений + системы контроля версий <A HREF="http://www.postgresql.org/developer/sourcecode/">CVS</A>. - ���� ��������� � �������� �� �������� ��� ���������, ��������� - � ����������� �����������.</P> + Даже замечания к выпускам не содержат все изменения, сделанные + в программном обеспечении.</P> - <H3><A name="item1.10">1.10</A>) ����� ������������ ������� � �������?</H3> + <H3><A name="item1.10">1.10</A>) Какая документация имеется в наличии?</H3> - <P>PostgreSQL �������� ����� ������������, ������� ������� �����������, - �������� ������������ ����������� man � ��������� ��������� �������� - �������. �������� � ������� <I>/doc</I>. �� ����� ������ ������������� - ������������ � �������� �� ������ <A href="http://www.postgresql.org/docs"> + <P>PostgreSQL содержит много документации, включая большое руководство, + страницы электронного руководства man и некоторые маленькие тестовые + примеры. Смотрите в каталог <I>/doc</I>. Вы также можете просматривать + документацию в Интернет по адресу <A href="http://www.postgresql.org/docs"> http://www.postgresql.org/docs</A>.</P> - <P>���������� ��� ����� �� PostgreSQL ��������� �� ������� <A href= + <P>Существует две книги по PostgreSQL доступные по адресам <A href= "http://www.PostgreSQL.org/docs/books/awbook.html">http://www.PostgreSQL.org/docs/books/awbook.html</A> - � <a href="http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook/</a>. - ���� ��������� ���� �� PostgreSQL, ������� ����� ������. - ���� �� �������� ���������� ������� ����� ������ (Korry Douglas). - ������ ������� �� ���� ������ �������� �� ������ + и <a href="http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook/</a>. + Есть несколько книг по PostgreSQL, которые можно купить. + Одну из наиболее популярных написал Корри Дуглас (Korry Douglas). + Список обзоров по этим книгам доступен по адресу <a href="http://www.postgresql.org/docs/books/">http://www.postgresql.org/docs/books/</a>. - ����� ����, �� ������ <a href="http://wiki.postgresql.org/wiki/Community_Generated_Articles%2C_Guides%2C_and_Documentation">http://wiki.postgresql.org/wiki/Community_Generated_Articles%2C_Guides%2C_and_Documentation</a> - �� ������ ����� ��������� ����������� ������, ����������� PostgreSQL.</P> + Кроме того, по адресу <a href="http://wiki.postgresql.org/wiki/Community_Generated_Articles%2C_Guides%2C_and_Documentation">http://wiki.postgresql.org/wiki/Community_Generated_Articles%2C_Guides%2C_and_Documentation</a> + вы можете найти коллекцию технических статей, посвещенных PostgreSQL.</P> - <P>������ ��������� ������ <I>psql</I> ����� ��������� ������ \d ��� - ����������� ���������� �� �����, ����������, ��������, ��������� � �.�. - - ����������� \? ��� ��������� ������ ��������� ������.</P> + <P>Клиент командной строки <I>psql</I> имеет несколько команд \d для + отображения информации по типам, операторам, функциям, агрегатам и т.д. - + используйте \? для получения списка доступных команд.</P> - <P>��� ���� �������� ��� ������ ����������.</P> + <P>Наш сайт содержит еще больше информации.</P> - <H3><A name="item1.11">1.11</A>) ��� ��� ��������� <SMALL>SQL</SMALL>?</H3> + <H3><A name="item1.11">1.11</A>) Как мне научиться <SMALL>SQL</SMALL>?</H3> - <P>��-������, �������� ���� �� ���� �� PostgreSQL, � ������� ���������� - ����. ������ �� ����� ������������� ����� �������� ����� + <P>Во-первых, возьмите одну из книг по PostgreSQL, о которых говорилось + выше. Многим из наших пользователей также нравится книга <I>The Practical SQL Handbook</I>, - Bowman, Judith S., et al., Addison-Wesley. ������ �������� <I>The + Bowman, Judith S., et al., Addison-Wesley. Другим нравится <I>The Complete Reference SQL</I>, Groff et al., McGraw-Hill.</P> - <P>���������� ����� ��������� ���������� ��������� ��������� � online: + <P>Существует также множество прекрасных учебников доступных в online: <UL> <LI><A href="http://www.intermedia.net/support/sql/sqltut.shtm">http://www.intermedia.net/support/sql/sqltut.shtm,</A> </LI> @@ -389,215 +389,215 @@ </UL> </P> - <H3><A name="item1.12">1.12</A>) ��� ��� �������� ����������� ��� ������������� � ������� �������������?</H3> + <H3><A name="item1.12">1.12</A>) Как мне прислать исправление или присоединится к команде разработчиков?</H3> - <P>�������� <a href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html"> - FAQ ��� �������������</A>.</P> + <P>Смотрите <a href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html"> + FAQ для разработчиков</A>.</P> - <H3><A name="item1.13">1.13</A>) ��� �������� PostgreSQL � ������� - <SMALL>����</SMALL>? ����� �� PostgreSQL ���� ����������?</H3> + <H3><A name="item1.13">1.13</A>) Как сравнить PostgreSQL с другими + <SMALL>СУБД</SMALL>? Может ли PostgreSQL быть встроенным?</H3> <P> - ���������� ��������� ������� ��������� ������������ �����������: - �����������, ������������������, ����������, ��������� � ����.</P> + Существует несколько методов сравнения программного обеспечения: + возможности, производительность, надежность, поддержка и цена.</P> <DL> - <DT><B>�����������</B></DT> - - <DD>PostgreSQL ����� ����������� ������������ �������������� - � ������� ������������ <SMALL>����</SMALL>, ����� ���: ����������, - ����������, ��������, �������������, ��������� - ����������� ���������� ����� � ������ ����������. � ��� ���� ��������� �����������, - ������� ��� � ���: ����, ������������ �������������, �������� - ������������, ������� � ����������� ��������������� ���������� - ��� ������ � ���������� ����������.<BR> + <DT><B>Возможности</B></DT> + + <DD>PostgreSQL имеет большинство возможностей представленных + в больших коммерческих <SMALL>СУБД</SMALL>, такие как: транзакции, + подзапросы, триггеры, представления, ссылочной + целостности вторичного ключа и разные блокировки. У нас есть некоторые возможности, + которых нет у них: типы, определяемые пользователем, механизм + наследования, правила и конкуретное многоверсионное управление + для работы с содержимым блокировок.<BR> <BR> </DD> - <DT><B>������������������</B></DT> + <DT><B>Производительность</B></DT> - <DD>������������������ PostgreSQL ������ � ������� ������������� - ���� � � ���� � �������� �������� �����. � �����-�� ����� �� �������, - � �����-�� ���������. ���� ������������������ ������ +/-10% �� - ��������� � ������� ����. + <DD>Производительность PostgreSQL сходна с другими коммерческими + СУБД и с СУБД с открытым исходным кодом. В каких-то вещах мы быстрее, + в каких-то медленнее. Наша производительности обычно +/-10% по + сравнению с другими СУБД. <BR> </DD> - <DT><B>����������</B></DT> + <DT><B>Надежность</B></DT> - <DD>�� ��������, ��� ���� <SMALL>����</SMALL> ������ ���� �������� - ��� ��� ������ �� ����� ������. �� ��������� ��������� ������ �����������, - ���������� ���, ������� �������� ������� ������. ������ ������ - �������� ������ ����-������������ �� ������� ���� � ������� ������ - ������ � ���� ������� �������� ���������� ��� �� ����� ������������� - ����������, ���������� �������, ������� ������ � ������������� - �������������. �� �����, ��� �� ���������� �������� �� ����, - ��� � ������ ����.<BR> + <DD>Мы понимали, что наша <SMALL>СУБД</SMALL> должна быть надежной + или она ничего не будет стоить. Мы стараемся выпускать хорошо проверенный, + стабильный код, который содержит минимум ошибок. Каждый выпуск + проходит стадию бета-тестирования по крайней мере в течении одного + месяца и наша история выпусков показывает что мы можем предоставлять + стабильные, монолитные выпуски, которые готовы к продуктивному + использованию. Мы верим, что мы производим проверку не хуже, + чем у других СУБД.<BR> <BR> </DD> - <DT><B>���������</B></DT> - - <DD>��� ������ �������� ������������� �������������� ������� � - ������� ������� ������������� � �������������, ������� ����� ������ ������ - ����� ��������� ��������. � �� �� �����, �� �� ����������� �����-���� - �����������, �� � ������������ ������������ <SMALL>����</SMALL> �� ������ - ������ �����������. ������ ������ � �������������, ���������� - �������������, ������������ � �������� ������� ����� ������ ��������� - PostgreSQL ������������� ������ <SMALL>����</SMALL>. ���������� - ������������ ��������� �� ��������� ��������� ����������, ������� - �������� ��� ��� ���� ��� �����. (�������� <A href="#item1.7">������ 1.7</A>.)<BR> + <DT><B>Поддержка</B></DT> + + <DD>Наш список рассылки предоставляет возможможность общения с + большой группой разработчиков и пользователей, которые могут помочь решить + любые возникшие проблемы. В то же время, мы не гарантируем какие-либо + исправления, но и разработчики коммерческих <SMALL>СУБД</SMALL> не всегда + делают исправления. Прямой доступ к разработчикам, сообществу + пользователей, руководствам и исходным текстам часто делают поддержку + PostgreSQL превосходящей другие <SMALL>СУБД</SMALL>. Существует + коммерческая поддержка по результам возникших инцидентов, которая + доступна для тех кому она нужна. (Смотрите <A href="#item1.7">Секцию 1.7</A>.)<BR> <BR> </DD> - <DT><B>����</B></DT> + <DT><B>Цена</B></DT> - <DD>��� ������� ��������� ��� ��� ������������� ���, � �� ��� - ������������� �������������. �� ������ ��������� ���� ��� � ��� - ������� ��� �����������, �� ����������� ���, ��� ����������� � - ����� �������� ����� BSD, ������� ��������� ����.<BR> + <DD>Наш продукт бесплатен как для коммерческого так, и не для + коммерческого использования. Вы можете добавлять свой код в наш + продукт без ограничений, за исключением тех, что описываются в + нашей лицензии стиля BSD, которая приведена выше.<BR> <BR> </DD> </DL> - <P>PostgreSQL ��������������� �� ����������� ������/������, ������� - ������� ��������� ��������� ��� ������� ������� � �������, � ����� - ��������� ��������������� ���������. ������ ������������ ����������� - ����� ��������������� ����� �����������. ������, ���� ���� ������������ - ����������� ������� ������ ��� ������ ��� ������� ������ ����������� - ��������, �� �� ������ ������������ Postgres � ��� ����� �� ������� - ��� ���� ������ �����-���� ������ ����������� �������.</P> - - <H3><A name="item1.14">1.14</A>) ����� �� PostgreSQL �������� � - ���������� �����������, � ������ �������, ����������� �������� �������?</H3> - - <P>��������� � ���������� �������� ������� � ��� �������� � PostgreSQL ������ - 8.0.[4+] � �� ��� ��������� �������, �������� � 8.1. ��������� �� ������ - � �������� ��������� �������� � 8.0.[10+], 8.1.[6+] � ��� ��������� - �������. ������� PostgreSQL �� 8.0 ���������� ���������� � ���������� - �������� ������� �� ���� ������ ��������� ��� � ������������ �������.</p> + <P>PostgreSQL разрабатывается по архитектуре клиент/сервер, которая + требует отдельных процессов для каждого клиента и сервера, а также + несколько вспомогательных процессов. Многие встраиваемые архитектуры + могут соответствовать таким требованиям. Однако, если ваша встраиваемая + архитектура требует сервер баз данных для запуска внутри прикладного + процесса, вы не можете использовать Postgres и вам лучше бы выбрать + для базы данных какое-либо другое облегченное решение.</P> + + <H3><A name="item1.14">1.14</A>) Будет ли PostgreSQL работать с + последними изменениями, в разных страных, касающимися дневного времени?</H3> + + <P>Изменения в сохранении дневного времени в США включены в PostgreSQL версии + 8.0.[4+] и во все следующие выпуски, например в 8.1. Изменения по Канаде + и Западной Австралии включены в 8.0.[10+], 8.1.[6+] и все следующие + выпуски. Выпуски PostgreSQL до 8.0 используют информацию о сохранении + дневного времени из базы данных временных зон в операционной системе.</p> <HR> - <H3 id="item1.15">1.15) ��� ��� ���������� �� ������� �������� PostgreSQL? - ��� �������� ��������� ����������� ���������?</H3> + <H3 id="item1.15">1.15) Как мне отписаться от списков рассылки PostgreSQL? + Как избежать получения дублирующих сообщений?</H3> - <P>�������� <a + <P>Страница <a href="http://mail.postgresql.org/mj/mj_wwwusr/domain=postgresql.org?user=&passw=&func=login">Majordomo</a> - �� ����� PostgreSQL ��������� ����������� ��� ���������� �� ������ �� ������� - �������� PostgreSQL. (��� ����� ����������� ��� ������ ��� Majordomo, ������� - ������������ �� ��� E-mail, ����� ����� � ���������� ������ ����������.)</P> + на сайте PostgreSQL позволяет подписаться или отписаться от любого из списков + рассылки PostgreSQL. (Вам может понадобится ваш пароль для Majordomo, который + отправляется на ваш E-mail, чтобы войти в управление вашими подписками.)</P> - <P>��� ������ �������� PostgreSQL ������������� ���, ����� ��������� ����� ������ - �� ����� ������ <I>�</I> �� ����� ������ ���������. ��� �������, ����� ������������ - �������� ������ �� E-mail ��� ����� �������. ���� �� �� ������ �������� ����������� - E-mail ��������� �� ������, � ������� ����� �� ��� �������� ��� ��������� ��������, - ���������� ������ <I>eliminatecc</I> �� �������� <I>Change Settings</I> � - Majordomo. �� ����� ������ �������� ��������� ����� ����� ��������� ��� ������ ����, - ���� ������� ������ <I>selfcopy</I>.</P> + <P>Все списки рассылки PostgreSQL настариваются так, чтобы групповой ответ уходил + на адрес списка <I>и</I> на адрес автора сообщения. Так сделано, чтобы пользователи + получали ответы на E-mail как можно быстрее. Если вы не хотите получать дублирующие + E-mail сообщения из списка, в случаях когда вы уже получили эти сообщения напрямую, + установите флажок <I>eliminatecc</I> на странице <I>Change Settings</I> в + Majordomo. Вы также можете избежать получения копий своих сообщений для самого себя, + если снимите флажок <I>selfcopy</I>.</P> <HR> - <H2 align="center">������� ������������� �� ���������� �����</H2> + <H2 align="center">Вопросы пользователей по клиентской части</H2> - <H3><A name="item2.1">2.1</A>) ����� ���������� ���� ��� PostgreSQL?</H3> + <H3><A name="item2.1">2.1</A>) Какие интерфейсы есть для PostgreSQL?</H3> - <P>��������� PostgreSQL �������� ������ <small>C</small> � ���������� - (embedded) <small>C</small> ����������. ��� ������ ���������� - �������� ������������ ��������� � ����������� ��������; ����������������� - �������� ��������� �� ������������ ����������� ���������� �������� - ����� ������ � ����� ����������� ������� �������������.</P> + <P>Установка PostgreSQL включает только <small>C</small> и встроенный + (embedded) <small>C</small> интерфейсы. Все другие интерфейсы + являются независимыми проектами и загружаются отдельно; самостоятельность + проектов позволяет им организовать собственное расписание выпусков + новых версий и иметь собственную команду разработчиков.</P> - <P>��������� ����� ����������������, ����� ��� <small>PHP</small> - �������� � ���� ��������� � PostgreSQL. ���������� ��� ����� ������ - ��� Perl, <small>TCL</small>, Python � ������ ������, �������� �� + <P>Некоторые языки программирования, такие как <small>PHP</small> + включают в себя интерфейс к PostgreSQL. Интерфейсы для таких языков + как Perl, <small>TCL</small>, Python и многих других, доступны на <a href="http://pgfoundry.org">http://pgfoundry.org</A>.</P> - <H3><A name="item2.2">2.2</A>) ����� ����������� ���������� ��� ������������� - PostgreSQL ����� Web?</H3> + <H3><A name="item2.2">2.2</A>) Какие инструменты существуют для использования + PostgreSQL через Web?</H3> - <P>���������� �������� �� �������������� ��� ������ � Web ����� ����� ��: + <P>Прекрасное введение во взаимодействие баз данных и Web можно найти на: <A href="http://www.webreview.com">http://www.webreview.com</A></P> - <P>��� ���������� � Web, PHP <A href="http://www.php.net"> - http://www.php.net</A> �������� �������� �����������.</P> + <P>Для интеграции с Web, PHP <A href="http://www.php.net"> + http://www.php.net</A> является неплохим интерфейсом.</P> - <P>� ������� �������, ������ ���������� Perl � DBD::Pg � CGI.pm - ��� mod_perl.</P> + <P>В сложных случаях, многие пользуются Perl и DBD::Pg с CGI.pm + или mod_perl.</P> - <H3><A name="item2.3">2.3</A>) ���� �� � PostgreSQL ����������� ��������� - ������������?</H3> + <H3><A name="item2.3">2.3</A>) Есть ли у PostgreSQL графический интерфейс + пользователя?</H3> - <P>��� PostgreSQL ���������� ������� ���������� ������������ � - ����������� ����������� ��� ������������, ��� � ��������. ����������� - ����� ����� � <A href="http://wiki.postgresql.org/wiki/Community_Guide_to_PostgreSQL_GUI_Tools"> - ������������ ���������� ��� GUI ����������� PostgreSQL</A></P> + <P>Для PostgreSQL существует большое количество инструментов с + графическим интерфейсом как коммерческих, так и открытых. Подробности + можно найти в <A href="http://wiki.postgresql.org/wiki/Community_Guide_to_PostgreSQL_GUI_Tools"> + Документации сообщества для GUI иструментов PostgreSQL</A></P> <HR> - <H2 align="center">������� �����������������</H2> + <H2 align="center">Вопросы администрирования</H2> - <H3><A name="item3.1">3.1</A>) ��� ��� ���������� PostgreSQL � ����� �������� - �� <I>/usr/local/pgsql</I>?</H3> + <H3><A name="item3.1">3.1</A>) Как мне установить PostgreSQL в место отличное + от <I>/usr/local/pgsql</I>?</H3> - <P>������� ����� <I>--prefix</I> ����� ���������� <I>configure</I>.</P> + <P>Задайте опцию <I>--prefix</I> когда запускаете <I>configure</I>.</P> - <H3><A name="item3.2">3.2</A>) ��� ��� ��������� ������������ �� ������ - �����������?</H3> + <H3><A name="item3.2">3.2</A>) Как мне управлять соединениями от других + компьютеров?</H3> - <P>�� ���������, PostgreSQL ��������� ������ ���������� �� ��������� - ������ ����� ������ ������ Unix ��� TCP/IP ����������. ��� ����, ����� - ������ ������ ������ ������������ � ���� �� ������ �������� - <I>listen_addresses</I> � <I>postgresql.conf</I>, ��������� - host-����������� � ����� <I>$PGDATA/pg_hba.conf</I> � �������������� - ������ ����.</P> + <P>По умолчанию, PostgreSQL разрешает только соединения на локальной + машине через сокеты домена Unix или TCP/IP соединения. Для того, чтобы + другие машины смогли подключиться к базе вы должны изменить + <I>listen_addresses</I> в <I>postgresql.conf</I>, разрешить + host-авторизация в файле <I>$PGDATA/pg_hba.conf</I> и перестартовать + сервер СУБД.</P> - <H3><A name="item3.3">3.3</A>) ����� ��������� ��� ����� ������� ��� ��������� - ������������������?</H3> + <H3><A name="item3.3">3.3</A>) Какие настройки мне нужно сделать для улучшения + производительности?</H3> - <P>���������� ��� ������� �������, ������� ������������ ����� - ��������� ������������������:</P> + <P>Существует три главных области, которые потенциально могут + увеличить производительность:</P> <DL> - <DT><B>��������� �������</B></DT> - <DD>��� �������� ����������� �������� ��� ��������� ������ - ������������������: + <DT><B>Изменение запроса</B></DT> + <DD>Это означает модификацию запросов для получения лучшей + производительности: <UL> - <LI>�������� ��������, ������� ������� ��������� � ��������� �������</LI> - <LI>������������� COPY ������ ��������� <small>INSERT</small></LI> - <LI>����������� ���������� ���������� � ������ ���������� ��� - ���������� �������� ��� ���������� ���������� ����������</LI> - <LI>������������� <small>CLUSTER</small>, ����� �� ������� ��ң��� - ��������� �����</LI> - <LI>������������� <small>LIMIT</small> ��� ����, ����� ������������ - ������ ����� ������ �� �������</LI> - <LI>������������� �������������� (Prepared) ��������</LI> - <LI>������������� <small>ANALYZE</small> ��� ������������ ���������� - ������������</LI> - <LI>���������� ������������� <small>VACUUM</small> ��� <I>pg_autovacuum</I></LI> - <LI>�������� �������� �� ����� ������� ��������� ������</LI> + <LI>Создание индексов, включая индексы выражений и частичные индексы</LI> + <LI>Использование COPY вместо множества <small>INSERT</small></LI> + <LI>Группировка нескольких операторов в единую транзакцию для + уменьшения нагрузки при выполнении завершения транзакции</LI> + <LI>Использование <small>CLUSTER</small>, когда из индекса берётся + множество строк</LI> + <LI>Использование <small>LIMIT</small> для того, чтобы возвращалась + только часть вывода от запроса</LI> + <LI>Использование Подготовленных (Prepared) запросов</LI> + <LI>Использование <small>ANALYZE</small> для обслуживания статистики + оптимизатора</LI> + <LI>Регулярное использование <small>VACUUM</small> или <I>pg_autovacuum</I></LI> + <LI>Удаление индексов во время больших изменений данных</LI> </UL> <BR><BR> </DD> - <DT><B>��������� �������</B></DT> + <DT><B>Настройка сервера</B></DT> - <DD>��������� ��������� � <I>postgresql.conf</I> ������ �� - ������������������. ��������� ������ ������ ��������� ��. � + <DD>Некоторые установки в <I>postgresql.conf</I> влияют на + производительность. Подробный полный список установок см. в <A href="http://www.postgresql.org/docs/current/static/runtime-config.html"> Administration Guide/Server Run-time Environment/Run-time Configuration</A>, - � ����������� ��. � <A href="http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html"> + а комментарии см. в <A href="http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html"> http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html</A> - � <A href="http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html"> + и <A href="http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html"> http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html</A>. <BR><BR> </DD> - <DT><B>����� "������" - ����������� �����������</B></DT> + <DT><B>Выбор "железа" - аппаратного обеспечения</B></DT> - <DD>������� "������" �� ������������������ �������� ������� � + <DD>Влияние "железа" на производительность подробно описано в <A href="http://www.powerpostgresql.com/PerfList/"> - http://www.powerpostgresql.com/PerfList/</A> � + http://www.powerpostgresql.com/PerfList/</A> и <A href="http://momjian.us/main/writings/pgsql/hw_performance/index.html"> http://momjian.us/main/writings/pgsql/hw_performance/index.html</A>. <BR> @@ -605,59 +605,59 @@ </DD> </DL> - <H3><A name="item3.4">3.4</A>) ����� ����������� ��� ������� ���� � - �������?</H3> + <H3><A name="item3.4">3.4</A>) Какие возможности для отладки есть в + наличии?</H3> - <P>���� ��������� ��������� � ���������� �������, ������������ - �� <code>log_*</code> �� <a + <P>Есть множество установок в настройках сервера, начинающихся + на <code>log_*</code> на <a href="http://www.postgresql.org/docs/current/interactive/runtime-config-logging.html">http://www.postgresql.org/docs/current/interactive/runtime-config-logging.html</a>, - ����������� ��������������� ������� � ���������� ������ ��������, - ������� ����� ������� ��� ������� � ��������� ������������������.</P> + позволяющих протоколировать запросы и статистику работы процесса, + которая очень полезна для отладки и измерения производительности.</P> - <H3><A name="item3.5">3.5</A>) ������ � ������� ��������� <I>"Sorry, too - many clients"</I> ����� ������� ������������ � ����?</H3> + <H3><A name="item3.5">3.5</A>) Почему я получаю сообщение <I>"Sorry, too + many clients"</I> когда пытаюсь подключиться к базе?</H3> - <P>�� �������� �������������� �� ��������� ����������� � 100 ������ - ����������� � ���� ������. ��� ���������� ��������� ����� �� ���������� - ������������ backend ��������� ��� ������ ������� ��, - ������� �������� <I>max_connections</I> � ����� <I>postgresql.conf</I> - � �������������� ������ ��.</P> + <P>Вы достигли установленного по умолчанию ограничения в 100 сессий + подключения к базе данных. Вам необходимо увеличить лимит на количество + конкурентных backend процессов для вашего сервера БД, + изменив значение <I>max_connections</I> в файле <I>postgresql.conf</I> + и перестартовать сервер БД.</P> - <H3><A name="item3.6">3.6</A>) ��� ��������� ���������� PostgreSQL?</H3> + <H3><A name="item3.6">3.6</A>) Как выполнить обновление PostgreSQL?</H3> - <P>��. ���������� �� ���������� � <a + <P>См. информацию об обновлении в <a href="http://www.postgresql.org/support/versioning">http://www.postgresql.org/support/versioning</a> - � ����������� ���������� � <a href="http://www.postgresql.org/docs/current/static/install-upgrading.html"> + и специальные инструкции в <a href="http://www.postgresql.org/docs/current/static/install-upgrading.html"> http://www.postgresql.org/docs/current/static/install-upgrading.html</a>.</P> - <H3><A name="item3.7">3.7</A>) ����� ������������ "������" � ������ - ������������?</H3> + <H3><A name="item3.7">3.7</A>) Какое компьютерное "железо" я должен + использовать?</H3> - <P>��������� "������" ������������ ����������� �������� �������� - �����������, ���� ������� ������, ��� ����� "������" ����� ���������� - ��������. ��� �� ���. ������ ECC, SCSI � ������������ ����������� ����� - �������� ����� ��ģ����� � ����� ����� ������ ������������������, ��� - ����� ������� "������". PostgreSQL ����� �������� �� ����� "������", - �� ���� ��� ��� ����� ��ģ������ � ������������������, �� � ����� ������� - ����� ����� ��������� ��������������� "������". �������� ������ "������" - ����� � ����� ������� ��������.</P> + <P>Поскольку "железо" персональных компьютеров является наиболее + совместимым, люди склонны верить, что такое "железо" имеет одинаковое + качество. Это не так. Память ECC, SCSI и качественные материнские платы + являются более надёжными и имеют более лучшую производительность, чем + менее дорогое "железо". PostgreSQL будет работать на любом "железе", + но если для вас важны надёжность и производительность, то с вашей стороны + будет мудро поставить соответствующее "железо". Обсудить разное "железо" + можно в наших списках рассылки.</P> <HR> - <H2 align="center">������� ������������</H2> + <H2 align="center">Вопросы эксплуатации</H2> - <H3><A name="item4.1">4.1</A>) ��� ��������� <SMALL>SELECT</SMALL> ������ - ��� ���������� ������ ������� �������? ������������ ������?</H3> + <H3><A name="item4.1">4.1</A>) Как выполнить <SMALL>SELECT</SMALL> только + для нескольких первых строчек запроса? Произвольной строки?</H3> - <P>��� ��������� ������ ���������� �����, ���� �� ������ �� ���������� - �� ������ ���������� <SMALL>SELECT</SMALL> ����������� <SMALL>LIMIT</SMALL>.</P> - ���� ���� �����-���� ������, ������� ��������� � <SMALL>ORDER BY</SMALL>, - �� ��������, ��� ���� ������ �������� � �� �����. ���� �� �� ������ - ���������� ����������� ����� �� ������ ���������� <SMALL>SELECT</SMALL>, - ����������� ������ � <SMALL>FETCH</SMALL>.</P> + <P>Для получения только нескольких строк, если вы знаете их количество + на момент выполнения <SMALL>SELECT</SMALL> используйте <SMALL>LIMIT</SMALL>.</P> + Если есть какой-либо индекс, который совпадает с <SMALL>ORDER BY</SMALL>, + то возможно, что весь запрос выполнен и не будет. Если вы не знаете + количества необходимых строк на момент выполнения <SMALL>SELECT</SMALL>, + используйте курсор и <SMALL>FETCH</SMALL>.</P> <P>To <small>SELECT</small> a random row, use:</P> <PRE> SELECT col @@ -667,37 +667,37 @@ </PRE> - <H3><A name="item4.2">4.2</A>) ��� ��� ����� ����� �������, �������, - ���� ������ � ������������ ����������? ��� ��� ������� �������, - ������� ���������� <I>psql</I> ��� ��������� ���� ����������?</H3> - - <P>����� ������������� ������� � <I>psql</I>, ����������� ������� \dt. - ������ ������ ������ � <I>psql</I> �� ������ ��������, ��������� \?. - ����� ����, �� ������ ���������� �������� ��� <I>psql</I> � ����� - <I>pgsql/src/bin/psql/describe.c</I>. �� �������� ������� - <SMALL>SQL</SMALL> ������� ������������ ��� ����� � <I>psql</I> ������, - ������������ � �������� ����� �����. �� ����� ������ ��������� - <I>psql</I> � ������ <I>-E</I> ���, ����� ��� ��������� �������� - �������, ������� ��� ���������� ��� ���������� �������� ���� - ������. PostgreSQL ����� ������������� <SMALL>SQL</SMALL> - ����������� � INFORMATION SCHEMA ���������, � ������� ��������, �� - ������ ������������ ������ �� ��������� ���������� � ���� ������.</P> + <H3><A name="item4.2">4.2</A>) Как мне найти какие таблицы, индексы, + базы данных и пользователи существуют? Как мне увидеть запросы, + которые использует <I>psql</I> для получения этой информации?</H3> + + <P>Чтобы просматривать таблицы в <I>psql</I>, используйте команду \dt. + Полный список команд в <I>psql</I> вы можете получить, используя \?. + Кроме того, вы можете посмотреть исходный код <I>psql</I> в файле + <I>pgsql/src/bin/psql/describe.c</I>. Он содержит команды + <SMALL>SQL</SMALL> которые генерируются при вводе в <I>psql</I> команд, + начинающихся с обратной косой черты. Вы также можете запустить + <I>psql</I> с опцией <I>-E</I> так, чтобы эта программа выдавала + запросы, которые она использует для выполнения заданных вами + команд. PostgreSQL также предоставляет <SMALL>SQL</SMALL> + совместимый с INFORMATION SCHEMA интерфейс, с помощью которого, вы + можете сформировать запрос на получение информации о базе данных.</P> - <P>����� ���������� ��������� �������, ������������ � <I>pg_</I>.</P> + <P>Также существуют системные таблицы, начинающиеся с <I>pg_</I>.</P> - <P>����������� <I>psql -l</I> ��� ��������� ������ ���� ��� ������.</P> + <P>Используйте <I>psql -l</I> для получения списка всех баз данных.</P> - <P>����� ���������� ���� <I>pgsql/src/tutorial/syscat.source</I>. - �� ���������� ������ �� ���������� <SMALL>SELECT</SMALL> ����������� - ��� ��������� ���������� �� ��������� ������ ���� ������.</P> + <P>Также посмотрите файл <I>pgsql/src/tutorial/syscat.source</I>. + Он показывает многие из операторов <SMALL>SELECT</SMALL> необходимых + для получения информации из системных таблиц базы данных.</P> - <H3><A name="item4.3">4.3</A>) ��� �������� ��� ������ �������?</H3> + <H3><A name="item4.3">4.3</A>) Как изменить тип данных колонки?</H3> - <P>� 8.0 � ����� ������� �������, ��������� ���� ������� ����������� - ����� ����� ����� <SMALL>ALTER TABLE ALTER COLUMN TYPE</SMALL>.</P> + <P>В 8.0 и более поздних версиях, изменение типа колонки выполняется + очень легко через <SMALL>ALTER TABLE ALTER COLUMN TYPE</SMALL>.</P> - <P>� ����� ������ ������� �������� ���:</P> + <P>В более ранних версиях сделайте так:</P> <PRE> BEGIN; ALTER TABLE tab ADD COLUMN new_col <i>new_data_type</i>; @@ -706,212 +706,212 @@ COMMIT; </PRE> - <H3><A name="item4.4">4.4</A>) ������ ������������ ������� ��� ����� � �������, - ������ � ���� ������?</H3> + <H3><A name="item4.4">4.4</A>) Каковы максимальные размеры для строк в таблице, + таблиц и базы данных?</H3> - <P>���������� ��������� �����������:</P> + <P>Существуют следующие ограничения:</P> <BLOCKQUOTE> <TABLE> <TR> - <TD>������������ ������ ����?</TD> - <TD>����������� (���������� ���� �� 32 TB)</TD> + <TD>Максимальный размер базы?</TD> + <TD>неограничен (существуют базы на 32 TB)</TD> </TR> <TR> - <TD>������������ ������ �������?</TD> + <TD>Максимальный размер таблицы?</TD> <TD>32 TB</TD> </TR> <TR> - <TD>������������ ������ ������?</TD> + <TD>Максимальный размер строки?</TD> <TD>400 Gb</TD> </TR> <TR> - <TD>������������ ������ ����?</TD> + <TD>Максимальный размер поля?</TD> <TD>1 GB</TD> </TR> <TR> - <TD>������������ ���������� ����� � �������?</TD> - <TD>������������</TD> + <TD>Максимальное количество строк в таблице?</TD> + <TD>неограничено</TD> </TR> <TR> - <TD>������������ ���������� ������� � �������?</TD> - <TD>250-1600 � ����������� �� ����</TD> + <TD>Максимальное количество колонок в таблице?</TD> + <TD>250-1600 в зависимости от типа</TD> </TR> <TR> - <TD>������������ ���������� �������� � �������?</TD> - <TD>������������</TD> + <TD>Максимальное количество индексов в таблице?</TD> + <TD>неограничено</TD> </TR> </TABLE> </BLOCKQUOTE> <BR> - <P>����������, ������� "������������" �� ����� ���� �������������� - ��������� �������� �������������� � ��������� ������/���������. - ����� �������� ������������� ���� ����������� �������, ����� - ���������� ������������������.</P> - - <P>������������ ������ ������� � 32 TB �� ������� ����� ������������ - ������� ������������ ����� ������� ��������. ������� ������� �������� - ��� ��������� ������ �������� � 1 GB, ��� ��� �����������, ������� - ����������� �������� ������� �� �����.</P> - - <P>������������ ������ ������� � ������������ ���������� ������� - ����� ���� ��������� � ������ ����, ���� ������ ����� �� ��������� ����� - �������� �� 32k.</P> + <P>Разумеется, понятие "неограничено" на самом деле ограничивается + доступным дисковым пространиством и размерами памяти/своппинга. + Когда значения перечисленные выше неоправдано большие, может + пострадать производительность.</P> + + <P>Максимальный размер таблицы в 32 TB не требует чтобы операционная + система поддерживала файлы больших размеров. Большие таблицы хранятся + как множество файлов размером в 1 GB, так что ограничения, которые + накладывает файловая система не важны.</P> + + <P>Максимальный размер таблицы и максимальное количество колонок + могут быть увеличены в четыре раза, если размер блока по умолчанию будет + увеличен до 32k.</P> - <P>���������� �����������, �� �������� ������� �� ����� ����������� ��� - ������� ������� ��� 2,000 ��������. � ������� ����� ������� ���� �� - ������������� ����-�� �����. ������������ ������������� �������� �������, - � ������� ��������������� ������� �� ���� MD5 ������� �������, � - �������������� �������������� ��������� ������ ����� ������ �������.</P> - - <H3><A name="item4.5">4.5</A>) ��� ����� ��������� ������������ � ���� ������ - ����� ��� ���������� ������ �� �������� ���������� �����?</H3> - - <P>���� PostgreSQL ����� ������������� ��������� ������������ �� 5 ��� - ������ ��� ���������� ������ �� �������� ���������� �����.</P> - - <P>� �������� �������, ���������� ���� � 100,000 ����� � ������, �� - ������� ����� ����� � ��������� ��������. ��� ���� ����� ������, - � �������, ���������� 20 ����. ������ �������� ����� �������� 2.8 MB. - ������ ���� PostgreSQL, ���������� ��� �� ������ �������� �������������� - 5.2 MB �� �������:</P> + <P>Существует ограничение, по которому индексы не могут создаваться для + колонок длиннее чем 2,000 символов. К счастью такие индексы вряд ли + действительно кому-то нужны. Уникальность гарантируется наилучим образом, + с помощью функционального индекса из хэша MD5 длинной колонки, а + полнотекстовое индексирование позволяет искать слова внутри колонки.</P> + + <H3><A name="item4.5">4.5</A>) Как много дискового пространства в базе данных + нужно для сохранения данных из обычного текстового файла?</H3> + + <P>СУБД PostgreSQL может потребоваться дискового пространства до 5 раз + больше для сохранения данных из простого текстового файла.</P> + + <P>В качестве примера, рассмотрим файл в 100,000 строк в каждой, из + которых целое число и текстовое описание. При этом длина текста, + в среднем, составляет 20 байт. Размер простого файла составит 2.8 MB. + Размер базы PostgreSQL, содержащей эти же данные составит приблизительно + 5.2 MB из которых:</P> <PRE> - 24 ����: �� ������ ��������� ������ � ������� (��������������) - + 24 �����: ���� ���� � ������������� ����� � ���� ��������� ���� - + 4 �����: ��������� �� �������� ��� ���� ��������� ������ + 24 байт: на каждый заголовок строки в таблице (приблизительно) + + 24 байта: одно поле с целочисленным типом и одно текстовое поле + + 4 байта: указатель на странице для всей табличной строки ---------------------------------------- - 56 ���� �� ������ � ������� + 56 байт на строку в таблице - ������ �������� ������ � PostgreSQL ���������� 8192 ���� (8 KB), ��� ���: + Размер страницы данных в PostgreSQL составляет 8192 байт (8 KB), так что: - 8192 ���� �� �������� - --------------------- = 158 ����� � ������� �� �������� �� (�����̣���) - 52 ���� �� ������ � ������� + 8192 байт на страницу + --------------------- = 158 строк в таблице на страницу БД (округлённо) + 52 байт на строку в таблице - 100000 ����� ������ - ----------------------- = 633 ������� � �� (�����̣���) - 158 ����� � ������� �� �������� + 100000 строк данных + ----------------------- = 633 страниц в БД (округлённо) + 158 строк в таблице на страницу - 633 ������� �� * 8192 ���� �� �������� = 5,185,536 ���� (5.2 MB) + 633 страниц БД * 8192 байт на страницу = 5,185,536 байт (5.2 MB) </PRE> - <P>������� �� ������� ��� �����, �� ��������� ��� ��������� ��� - �������� ���������� ������, ��� ����� ����� ���� ������.</P> + <P>Индексы не требуют так много, но поскольку они создаются для + большого количества данных, они также могут быть велики.</P> - <P>�������� <small>NULL</small> �������� ��� ������� ����� � ������� ��� - �������� ����� ���� �����. + <P>Значения <small>NULL</small> хранятся как битовые карты и поэтому они + занимают очень мало места. </P> - <H3><A name="item4.6">4.6</A>) ������ ��� ������� �������� �������? ������ - ��� �� ���������� ��� �������?</H3> + <H3><A name="item4.6">4.6</A>) Почему мои запросы работают медлено? Почему + они не используют мои индексы?</H3> - <P>������� �� ������������ ��� ������� �������. ��� - ������������ ������ ���� ������� ������ ������������ ������� � ������ - �������� ������ ��������� ������� ����� � �������. ��� ��������, - ������ ��� ������ � ����� � ����������� ������������ ��� ������������ - �������� ����� ���� ���������, ��� ������� ������ ������� ��� �� - ���������������� ������������.</P> + <P>Индексы не используются для каждого запроса. Они + используются только если таблица больше минимального размера и запрос + выбирает только маленький процент строк в таблице. Так устроено, + потому что доступ к диску с применением рандомизации при сканировании + индексов может быть медленнее, чем простое чтение таблицы или ее + последовательное сканирование.</P> - <P>����� ���������� ������������� ������������� ������� ��� �����-���� - �������, PostgreSQL ������ ����� ���������� �� ���� �������. ��� - ���������� ���������� ��� ������������� <SMALL>VACUUM ANALYZE</SMALL> - ��� ������ <SMALL>ANALYZE</SMALL>. ��������� ����������, ����������� - ������ � ��� ��� ����� ����� � ������� � ���� �� ������ ������������ - �������, �� �� ����� ��������� ������ �������. ���������� ����� - ������ �� ����������� ������������ ������� ���������� � ������ ����������. - ��� ��������� ����������� ������� ������ ������������ ���������� - ���� ����������.</P> + <P>Чтобы определить необходимость использования индекса для какой-либо + таблицы, PostgreSQL должен иметь статистику по этой таблице. Эта + статистика собирается при использовании <SMALL>VACUUM ANALYZE</SMALL> + или просто <SMALL>ANALYZE</SMALL>. Используя статистику, оптимизатор + узнает о том как много строк в таблице и если он должен использовать + индексы, то он может принимать лучшие решения. Статистика также + влияет на определение оптимального порядка связывания и метода связывания. + При изменении содержимого таблицы должен периодически выполнятся + сбор статистики.</P> - <P>������ ������� �� ������������ ��� <SMALL>ORDER BY</SMALL> ��� ��� - ���������� ����������. ���������������� ������� ��������� �� ����� - ����������� ������ �������, ��� ����� �� �������� � ������� �������. - ������, <SMALL>ORDER BY</SMALL> ����� ������������� � <SMALL>LIMIT</SMALL> - � � ���� ������ ������ ����� ��������������, ��������� ��� ���������� - ����� ������������ ��������� ����� �������.</P> - - <P>���� ��� �������, ��� ����������� ����������� �������� ���������������� - �������, ����������� <CODE>SET enable_seqscan TO 'off'</CODE> � - ��������� ������ �����, ����� �������, ������������� �� ������������ - �������� �������. + <P>Обычно индексы не используются для <SMALL>ORDER BY</SMALL> или для + выполнения связываний. Последовательный перебор следующий за явной + сортировкой обычно быстрее, чем поиск по индексам в большой таблице. + Однако, <SMALL>ORDER BY</SMALL> часто комбинируется с <SMALL>LIMIT</SMALL> + и в этом случае индекс будет использоваться, поскольку при выполнении + будет возвращаться небольшая часть таблицы.</P> + + <P>Если вам кажется, что оптимизатор некорректно выбирает последовательный + перебор, используйте <CODE>SET enable_seqscan TO 'off'</CODE> и + запустите запрос снова, чтобы увидеть, действительно ли сканирование + индексов быстрее. </P> - <P>����� ������������ �������� � ���������, �������� <SMALL>LIKE</SMALL> - ��� <I>~</I>, ������� ����� ���� ������������ � ��������� �������:</P> + <P>Когда используются операции с шаблонами, например <SMALL>LIKE</SMALL> + или <I>~</I>, индексы могут быть использованы в следующих случаях:</P> <UL> - <LI>������ ������ ������ ������ ��������� � ������� ������� ������, �.�.: + <LI>Начало строки поиска должно совпадать с началом искомой строки, т.е.: <UL> - <LI><small>LIKE</small> ������� �� ������ ���������� � <i>%.</i>.</LI> - <LI><i>~</i> ������� ���������� ��������� ������ ���������� �� <i>^</i>.</LI> + <LI><small>LIKE</small> шаблоны не должны начинаться с <i>%.</i>.</LI> + <LI><i>~</i> шаблоны регулярных выражений должна начинаться на <i>^</i>.</LI> </UL></LI> - <LI>������ ������ �� ������ ���������� � ������� ������, �.�. [a-e].</LI> - <LI>����� ����������� �� ��������, ����� ��� <small>ILIKE</small> � - <i>~*</i> �� ���������� �������. ������ ����, ����������� ������� - ���������, ������� ����������� � ������ <A href="#item4.8">4.8</A>.</LI> - <LI>�� ����� <i>initdb</i> ������ �������������� ������ �� ��������� - <i>C</i>, ������ ��� �� ���������� ����������� ������ ��������� ���������� - ������ ��� ��-C ������. �� ������ ��� ����� ������� ������� ����������� - ������ <CODE>text_pattern_ops</CODE> ������� �������� ������ ��� - <SMALL>LIKE</SMALL> ��������������. ��� ������ ���� ����� ����� - ������������ �������������� ������.</LI> + <LI>Строка поиска не должна начинаться с символа класса, т.е. [a-e].</LI> + <LI>Поиск независимый от регистра, такой как <small>ILIKE</small> и + <i>~*</i> не использует индексы. Вместо него, используйте индексы + выражений, которые описываются в секции <A href="#item4.8">4.8</A>.</LI> + <LI>Во время <i>initdb</i> должна использоваться локаль по умолчанию + <i>C</i>, потому что не существует возможности узнать следующий наибольший + символ для не-C локали. Вы можете для таких случаев создать специальный + индекс <CODE>text_pattern_ops</CODE> который работает только для + <SMALL>LIKE</SMALL> индексирования. Для поиска слов также можно + использовать полнотекстовый индекс.</LI> </UL> - <H3><A name="item4.7">4.7</A>) ��� ���������� �� ��, ��� ����������� ��������� - ��� ������?</H3> + <H3><A name="item4.7">4.7</A>) Как посмотреть на то, как оптимизатор выполняет + мой запрос?</H3> - <P>�������� �������� ����������� ����������� <SMALL>EXPLAIN</SMALL>.</P> + <P>Смотрите страницу руководства посвященную <SMALL>EXPLAIN</SMALL>.</P> - <H3><A name="item4.8">4.8</A>) ��� ��� ��������� ����� ����������� ��������� - � ����� ����������� �� �������� ���� ����� ����������� ���������? - ��� ��� ������������ ������ ��� ������ ������������ �� �������� ����?</H3> + <H3><A name="item4.8">4.8</A>) Как мне выполнить поиск регулярного выражения + и поиск независимый от регистра букв поиск регулярного выражения? + Как мне использовать индекс для поиска независимого от регистра букв?</H3> - <P>�������� <I>~</I> ���������� ����� ����������� ���������, � �������� - <I>~*</I> ���������� ����������� �� �������� ���� ����� ����������� - ���������. ����������� �� �������� ������� <SMALL>LIKE</SMALL> ���������� + <P>Оператор <I>~</I> производит поиск регулярного выражения, а оператор + <I>~*</I> производит независимый от регистра букв поиск регулярного + выражения. Независимый от регистра вариант <SMALL>LIKE</SMALL> называется <SMALL>ILIKE</SMALL>.</P> - <P>����������� �� �������� ��������� ������ ���������� ���:</P> + <P>Независимое от регистра сравнение обычно выражается так:</P> <PRE> SELECT * FROM tab WHERE lower(col) = 'abc'; </PRE> - ��� ����������� �� ����� ������������ ����������� ������. ������, ���� - �� ��������� ������ ���������, �� ����� �����������: + Эта конструкция не будет использовать стандартный индекс. Однако, если + вы создадите индекс выражения, он будет использован: <PRE> CREATE INDEX tabindex ON tab (lower(col)); </PRE> - <P>���� ������������� ������ ��������� ��� <SMALL>UNIQUE</SMALL>, �� - �������, ��� ������� �� ��������� ����� ������� ������� � � �������, - � � ������ ��������, ����� �� ����� ����� ���������� ��������, ������� - ���������� ������ ���������. ����� � ������� ����� ���� ������� ������� - ������ � ������̣���� ��������, ����������� ����������� - <SMALL>CHECK</SMALL> ��� �������� ����� �������.</P> - - <H3><A name="item4.9">4.9</A>) ��� ��� ����������, ��� �������� ���� � �����-���� - ������� ����� <SMALL>NULL</SMALL>? ��� ��� ��������� ��������� - <SMALL>NULL</SMALL>? ���� � ����������� ���� <SMALL>NULL</SMALL> ��� ���?</H3> - - <P>�� ������ ����������� �������� � <SMALL>IS NULL</SMALL> � - <SMALL>IS NOT NULL</SMALL>, ��� �����:</P> + <P>Если вышеуказанный индекс создаётся как <SMALL>UNIQUE</SMALL>, то + колонка, для которой он создаётся может хранить символы и в верхнем, + и в нижнем регистре, индес не может иметь идентичных значений, которые + отличаются только регистром. Чтобы в колонке можно было хранить символы + только в определённом регистре, используйте ограничение + <SMALL>CHECK</SMALL> или проверку через триггер.</P> + + <H3><A name="item4.9">4.9</A>) Как мне определить, что значение поля в каком-либо + запросе равно <SMALL>NULL</SMALL>? Как мне соединить возможные + <SMALL>NULL</SMALL>? Могу я сортировать поля <SMALL>NULL</SMALL> или нет?</H3> + + <P>Вы просто сравниваете значение с <SMALL>IS NULL</SMALL> и + <SMALL>IS NOT NULL</SMALL>, как здесь:</P> <PRE> SELECT * FROM tab WHERE col IS NULL; </PRE> - <P>����� ��������� � ���������� ���������� <SMALL>NULL</SMALL>, ����������� - <I>COALESCE()</I> ��� �����:</P> + <P>Чтобы соединить с возможными значениями <SMALL>NULL</SMALL>, используйте + <I>COALESCE()</I> как здесь:</P> <PRE> SELECT COALESCE(col1, '') || COALESCE(col2, '') FROM tab </PRE> - <P>����� ������������� ������ �� �������� <NULL> ����������� ������������ - <SMALL>IS NULL</SMALL> � <SMALL>IS NOT NULL</SMALL> � ��������� - <SMALL>ORDER BY</SMALL>. ����� ��� ����� ������������ �������� - <I>������</I>, �� ��� ���������� ��� ����� ����, ��� �������� - <I>����</I>, ��� ��� ������ � NULL ����� � ��������������� ������ ������:</P> + <P>Чтобы отсортировать данные по значению <NULL> используйте модификаторы + <SMALL>IS NULL</SMALL> и <SMALL>IS NOT NULL</SMALL> в выражении + <SMALL>ORDER BY</SMALL>. Когда они будут генерировать значения + <I>истина</I>, то при сортировке они будут выше, чем значения + <I>ложь</I>, так что записи с NULL будут в отсортированном списке сверху:</P> <PRE> SELECT * @@ -919,70 +919,70 @@ ORDER BY (col IS NOT NULL); </PRE> - <H3><A name="item4.10">4.10</A>) ������ ������� ����� ������� ����������� - ������?</H3> + <H3><A name="item4.10">4.10</A>) Каковы отличия между разными символьными + типами?</H3> <BLOCKQUOTE> <TABLE> <TR> - <TH>���</TH> - <TH>���������� ���</TH> - <TH>���������</TH> + <TH>Тип</TH> + <TH>Внутреннее имя</TH> + <TH>Замечания</TH> </TR> <TR> <TD>VARCHAR(n)</TD> <TD>varchar</TD> - <TD>������ ������ ������������ �����, ��� ����������</TD> + <TD>размер задает максимальную длину, нет заполнения</TD> </TR> <TR> <TD>CHAR(n)</TD> <TD>bpchar</TD> - <TD>����������� �������� �� ������������� �����</TD> + <TD>заполняется пустотой до фиксированной длины</TD> </TR> <TR> <TD>TEXT</TD> <TD>text</TD> - <TD>��� ����������� �������� ����������� ��� �����</TD> + <TD>нет задаваемого верхнего ограничения или длины</TD> </TR> <TR> <TD>BYTEA</TD> <TD>bytea</TD> - <TD>������ ���� ���������� ����� (����� ������������ null-���� ��� ������)</TD> + <TD>массив байт переменной длины (можно использовать null-байт без опаски)</TD> </TR> <TR> <TD>"char"</TD> <TD>char</TD> - <TD>���� ������</TD> + <TD>один символ</TD> </TR> </TABLE> </BLOCKQUOTE> - <P>���������� ��� �� ������ �������, ����� �������� ��������� �������� - � � ��������� ���������� �� �������.</P> - - <P>������ ������ ���� �������� "varlena" ������ (�.�., ������ - ������ ����� �� ����� �������� �������, �� ������� ������� ������). - ����� �������, ���������� ������������ ������������ ������, ��� - ������������ ������. ������, ������� �������� ����� ���������, - ��� ��� ���������� �������� ������������ ����� ����� ���� � ������, - ��� ���������.</P> - - <SMALL>VARCHAR(n)</SMALL> - ��� ������ �������, ����� ����� ������� - ������ ���������� �����, �� ����������� ������������� �������. - <SMALL>TEXT</SMALL> - ��� ������ ������� ��� ����� �������������� �����, - � ����������� ���������� ������ � 1 ��������. - <P><SMALL>CHAR(n)</SMALL> - ��� ������ ������� ��� �������� �����, ������� - ������ ����� ���������� �����. <SMALL>CHAR(n)</SMALL> ����������� - �������� �� �������� �����, � �� ����� ��� <SMALL>VARCHAR(n)</SMALL> - ������ ������ �������, �� ������� ������� ������. - <SMALL>BYTEA</SMALL> ������������ ��� �������� �������� ������, �������� - ������� ����� �������� <SMALL>NULL</SMALL> �����. ��� ���� ��������� - �����, ����� ������� �������������� ������������������.</P> - - <H3><A name="item4.11.1">4.11.1</A>) ��� ��� ������� ���� - serial/�-����-�����������?</H3> - - <P>PostgreSQL ������������ ��� ������ <SMALL>SERIAL</SMALL>. �� - ������������� ������� ������������������. ��������:</P> + <P>Внутреннее имя вы можете увидеть, когда смотрите системные каталоги + и в некоторых сообщениях об ошибках.</P> + + <P>Первые четыре типа являются "varlena" типами (т.е., первые + четыре байта на диске являются длинной, за которой следуют данные). + Таким образом, фактически используемое пространство больше, чем + обозначенный размер. Однако, длинные значения также сжимаются, + так что занимаемое дисковое пространство может также быть и меньше, + чем ожидалось.</P> + + <SMALL>VARCHAR(n)</SMALL> - это лучшее решение, когда нужно хранить + строки переменной длины, не превышающие определенного размера. + <SMALL>TEXT</SMALL> - это лучшее решение для строк неограниченной длины, + с максимально допустимой длиной в 1 гигабайт. + <P><SMALL>CHAR(n)</SMALL> - это лучшее решение для хранения строк, которые + обычно имеют одинаковую длину. <SMALL>CHAR(n)</SMALL> заполняется + пустотой до заданной длины, в то время как <SMALL>VARCHAR(n)</SMALL> + хранит только символы, из которых состоит строка. + <SMALL>BYTEA</SMALL> используется для хранения бинарных данных, значения + которых могут включать <SMALL>NULL</SMALL> байты. Все типы описанные + здесь, имеют сходные характеристики производительности.</P> + + <H3><A name="item4.11.1">4.11.1</A>) Как мне создать поле + serial/с-авто-увеличением?</H3> + + <P>PostgreSQL поддерживает тип данных <SMALL>SERIAL</SMALL>. Он + автоматически создает последовательность. Например:</P> <PRE> CREATE TABLE person ( id SERIAL, @@ -990,7 +990,7 @@ ); </PRE> - ������������� ������������� �: + автоматически транслируется в: <PRE> CREATE SEQUENCE person_id_seq; CREATE TABLE person ( @@ -999,198 +999,198 @@ ); </PRE> - <P>������������� ��������� ������������������ ����� ��� ���� - <<I>�������</I>>_<<I>�������_serial</I>>_<I>seq</I>, ��� - <I>�������</I> � <I>�������_serial</I> - ��� �������������� ����� - ������� � ������� � ����� <SMALL>SERIAL</SMALL>. - �������� ����������� � ������������������� �� �������� ����������� - ����������� <I>create_sequence</I>.</P> + <P>Автоматически созданная последовательность имеет имя вида + <<I>таблица</I>>_<<I>колонка_serial</I>>_<I>seq</I>, где + <I>таблица</I> и <I>колонка_serial</I> - это соответственно имена + таблицы и колонки с типом <SMALL>SERIAL</SMALL>. + Смотрите подробности о последовательностях на странице руководства + посвященной <I>create_sequence</I>.</P> - <H3><A name="item4.11.2">4.11.2</A>) ��� ��� �������� �������� ��� ������� + <H3><A name="item4.11.2">4.11.2</A>) Как мне получить значение при вставке <SMALL>SERIAL</SMALL>?</H3> - <P>���������� ������ �������� ����������� �������� <SMALL>SERIAL</SMALL> - ��� ������������ <SMALL>RETURNING</SMALL>. ��������� ��� ������� ������� � <A - href="#item4.11.1">4.11.1</A>, ��� ����� ��������� ���:</P> + <P>Простейший способ получить назначенное значение <SMALL>SERIAL</SMALL> + это использовать <SMALL>RETURNING</SMALL>. Используя для примера таблицу в <A + href="#item4.11.1">4.11.1</A>, это может выглядеть так:</P> <PRE> INSERT INTO person (name) VALUES ('Blaise Pascal') RETURNING id; </PRE> - �� ����� ������ ������� <I>nextval()</I> � ������������ ��� �������� � - <SMALL>INSERT</SMALL> ��� ������� <I>currval()</I> <I>�����</I> + Вы также можете вызвать <I>nextval()</I> и использовать это значение в + <SMALL>INSERT</SMALL> или вызвать <I>currval()</I> <I>после</I> <SMALL>INSERT</SMALL>. - <H3><A name="item4.11.3">4.11.3</A>) �� ����� �� ���������� ���, ��� - ������������� <I>currval()</I> � <I>nextval()</I> �������� � - �������������� � ������� ��������������?</H3> + <H3><A name="item4.11.3">4.11.3</A>) Не может ли получиться так, что + использование <I>currval()</I> и <I>nextval()</I> приведет к + зациклированию с другими пользователями?</H3> - <P>���. <i>currval()</i> ���������� ������� ��������, ����������� ����� - �������, � �� ������� ��������.</P> + <P>Нет. <i>currval()</i> возвращает текущее значение, назначенное вашей + сессией, а не другими сессиями.</P> - <H3><A name="item4.11.4">4.11.4</A>) ������ ����� �� ���� ������������������ - �� ������������ ����� ��� ������ ����������? ������ ��������� ������� - ��� ��������� � �������, ��� � ��������� ������������������/SERIAL?</H3> + <H3><A name="item4.11.4">4.11.4</A>) Почему числа из моей последовательности + не используются снова при отмене транзакции? Почему создаются разрывы + при нумерации в колонке, где я использую последовательность/SERIAL?</H3> - <P>��� ���������� �������������, �������� �������������������, ��� - ������������� �������� �� ����� ������� ���������� � �� ����������� - �� ������� ���������� ����������. ��� ����� �������� ������� � - ��������� ��� ������ ����������.</P> + <P>Для реализации конкуретности, значения последовательностей, при + необходимости выдаются во время запуска транзакций и не блокируются + до полного выполнения транзакций. Это может вызывать разрывы в + нумерации при отмене транзакций.</P> - <H3><A name="item4.12">4.12</A>) ��� ����� <SMALL>OID</SMALL>? ��� ����� + <H3><A name="item4.12">4.12</A>) Что такое <SMALL>OID</SMALL>? Что такое <SMALL>CTID</SMALL>?</H3> - <P>���� ������� ������� � <SMALL>WITH OIDS</SMALL>, �� ������ ������ - �������� ���������� �������������� <SMALL>OID</SMALL>. - O<SMALL>ID</SMALL> - ��� ������������� ����������� ���������� 4-� - �������� ����� �����, ������� ��������� ��� ���� ������������� ����. - ������, ����� ���� ��� ��� �������� �������� 4 ���������, �������� - O<SMALL>ID</SMALL> �������� �������������. PostgreSQL ���������� - <SMALL>OID</SMALL> ��� ���������� ����� ���������� ������.</P> - - <P>��� ����������� �������� � ������� ������� ������������, ������ - �������� �������� ������������� <SMALL>SERIAL</SMALL> ������ - O<SMALL>ID</SMALL>, ������ ��� ������������������ <SMALL>SERIAL</SMALL> - ��������� ������ ������ ������� � ����� ������� ������ ���������� - ������������. ��� �������� �������� 8-�� ������� ������������������ - �������� ��� <SMALL>SERIAL8</SMALL>. - - <P>C<SMALL>TID</SMALL> ������������ ��� ������������� ����������� - ���������� ������� � �������� � offset ����������. C<SMALL>TID</SMALL> - ���������� ����� ���� ��� ������ � ������� ���� �������� ��� �����������. - <P>T<SMALL>ID</SMALL> ������������ ���������� �������� � �������� - ��������� �� ���������� ������.</P> - - - <H3><A name="item4.13">4.13</A>) ������ � ������� ������ <I>"ERROR: Memory + <P>Если таблица создана с <SMALL>WITH OIDS</SMALL>, то каждая строка + получает уникальный индентификатор <SMALL>OID</SMALL>. + O<SMALL>ID</SMALL> - это автоматически назначаемое уникальное 4-х + байтовое целое число, которое уникально для всей установленной СУБД. + Однако, после того как его значение превысит 4 миллиарда, значения + O<SMALL>ID</SMALL> начинают дублироваться. PostgreSQL использует + <SMALL>OID</SMALL> для связывания своих внутренних таблиц.</P> + + <P>Для уникального значения в строках таблицы пользователя, лучшим + способом является использование <SMALL>SERIAL</SMALL> вместо + O<SMALL>ID</SMALL>, потому что последовательности <SMALL>SERIAL</SMALL> + уникальны только внутри таблицы и таким образом меньше подвержены + переполнению. Для хранения значений 8-ми байтной последовательности + доступен тип <SMALL>SERIAL8</SMALL>. + + <P>C<SMALL>TID</SMALL> используется для идентификации специальных + физических записей с блочными и offset значениями. C<SMALL>TID</SMALL> + изменяется после того как строки в таблице были изменены или перегружены. + <P>T<SMALL>ID</SMALL> используется индексными записями в качестве + указателя на физические записи.</P> + + + <H3><A name="item4.13">4.13</A>) Почему я получаю ошибку <I>"ERROR: Memory exhausted in AllocSetAlloc()"</I>?</H3> - <P>���������������� � ��� ����������� ����������� ������ - ��� ��� ���� ���� ����� ��������� ����� �� ������������ �������. - ����������� ����� �������� ������� �� ��������� ��������� - �������:</P> + <P>Предположительно у вас закончилась виртуальная память + или что ваше ядро имеет маленький лимит на определенные ресурсы. + Попытайтесь перед запуском сервера БД выполнить следующие + команды:</P> <PRE> ulimit -d 262144 limit datasize 256m </PRE> - � ����������� �� ���������� �������������� shell, ������ ���� �� ������ - ������ ���������� �������, �� ��� �������� ��� ���������� ������� - ������� ������ �������� � �������� ����� ��������. ��� ������� - �������� ��������� �������� �������� � ���� ��� ��������, ��������� - ����� ţ �������. ���� � ��� �������� �������� � <SMALL>SQL</SMALL> - ��������, ������ ��� backend ���������� ������� ������� ����� ������, - ����������� ��������� ��� ������� ����� �������� �������. + В зависимости от командного интерпретатора shell, только одна из данных + команд выполнится успешно, но она позволит вам установить больший + сегмент данных процесса и возможно решит проблему. Эта команда + изменяет параметры текущего процесса и всех его потомков, созданных + после её запуска. Если у вас возникла проблема с <SMALL>SQL</SMALL> + клиентом, потому что backend возвращает слишком большой объем данных, + попытайтесь выполнить эту команду перед запуском клиента. - <H3><A name="item4.14">4.14</A>) ��� ��� ������, ����� ������ PostgreSQL - ��������?</H3> + <H3><A name="item4.14">4.14</A>) Как мне узнать, какая версия PostgreSQL + запущена?</H3> - <P>�� <I>psql</I>, �������� <CODE>SELECT version();</CODE></P> + <P>Из <I>psql</I>, наберите <CODE>SELECT version();</CODE></P> - <H3><A name="item4.15">4.15</A>) ��� ��� ������� ������� ������� �� ��������� - ����� ��������� ������� �����?</H3> + <H3><A name="item4.15">4.15</A>) Как мне создать колонку которая по умолчанию + будет содержать текущее время?</H3> - <P>����������� <I>CURRENT_TIMESTAMP</I>:</P> + <P>Используйте <I>CURRENT_TIMESTAMP</I>:</P> <PRE> CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); </PRE> - <H3><A name="item4.16">4.16</A>) ��� ��� ��������� ������� ����������?</H3> + <H3><A name="item4.16">4.16</A>) Как мне выполнить внешнее связывание?</H3> - <P>PostgreSQL ������������ ������� ����������, - ��������� ����������� ��������� SQL. ��� ��� �������:</P> + <P>PostgreSQL поддерживает внешнее связывание, + используя стандартный синтаксис SQL. Вот два примера:</P> <PRE> SELECT * FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col); </PRE> - ��� + или <PRE> SELECT * FROM t1 LEFT OUTER JOIN t2 USING (col); </PRE> - <P>��� ���������� ������� ���������� t1.col � t2.col, ����� ���������� - ����� ����������� ������ � t1 (������� �� ��������� � t2). - <SMALL>RIGHT</SMALL> ���������� ������ �������� ����������� ������ - t2. <SMALL>FULL</SMALL> ���������� ������ ���������� ��������� - ������ ���� ��� ����������� ������ �� t1 � t2. ����� <SMALL>OUTER</SMALL> - �������� �������������� � ����������� � <SMALL>LEFT</SMALL>, - <SMALL>RIGHT</SMALL> � <SMALL>FULL</SMALL> �����������. ������� - ���������� ���������� <SMALL>INNER</SMALL> ����������.</P> + <P>Это идентичные запросы связывания t1.col и t2.col, также возвращают + любые несвязанные строки в t1 (которые не совпадают с t2). + <SMALL>RIGHT</SMALL> связывание должно добавить несвязанные строки + t2. <SMALL>FULL</SMALL> связывание должно возвратить совпавшие + строки плюс все несвязанные строки из t1 и t2. Слово <SMALL>OUTER</SMALL> + является необязательным и назначается в <SMALL>LEFT</SMALL>, + <SMALL>RIGHT</SMALL> и <SMALL>FULL</SMALL> связываниях. Обычные + связывания называются <SMALL>INNER</SMALL> связывания.</P> - <H3><A name="item4.17">4.17</A>) ��� ��������� �������, ������������ ��������� - ��� ������?</H3> + <H3><A name="item4.17">4.17</A>) Как выполнять запросы, использующие несколько + баз данных?</H3> - <P>�� ���������� ������� ������� ������ � ����� ������ �������� �� �������. - ��������� PostgreSQL ��������� ��������� �������� ����������� ��� ���� - ������, ��������� ����, ��� ������ ���� ����� ����� ���������� ������.</P> + <P>Не существует способа создать запрос к базам данных отличным от текущей. + Поскольку PostgreSQL загружает системные каталоги специфичные для базы + данных, непонятно даже, как должен себя вести такой межбазовый запрос.</P> - <P><I>contrib/dblink</I> ��������� ������� ����� ������, ��������� - ������ �������. ����������, ������ ����� ������������ ����� ������������� - ����������� � ���������� ������ ������ � ����� ������� ���������� - ���������� �� ���.</P> + <P><I>contrib/dblink</I> позволяет запросы между базами, используя + вызовы функций. Разумеется, клиент может одновременно также устанавливать + соедиенения с различными базами данных и таких образом объединять + информацию из них.</P> - <H3><A name="item4.18">4.18</A>) ��� ��� ������� �� ������� ��������� ����� �������?</H3> + <H3><A name="item4.18">4.18</A>) Как мне вернуть из функции несколько строк таблицы?</H3> - <P>�� ������ ����� ������������ �������, ������������ ������, + <P>Вы можете легко использовать функции, возвращающие список, <a href="http://wiki.postgresql.org/wiki/Return_more_than_one_row_of_data_from_PL/pgSQL_functions"> http://wiki.postgresql.org/wiki/Return_more_than_one_row_of_data_from_PL/pgSQL_functions</a>.</P> - <H3><A name="item4.19">4.19</A>) ������ � ������� ������ "relation with OID #### - �� ����������", ����� ���������� � ��������� �������� � �������� PL/PgSQL?</H3> + <H3><A name="item4.19">4.19</A>) Почему я получаю ошибку "relation with OID #### + не существует", когда обращаютсь к временным таблицам в функциях PL/PgSQL?</H3> - <P>� PostgreSQL �� ������ 8.3, PL/PgSQL �������� �������� ������� � ���� �� - ���������� �������� ����� ������� � ���, ��� ���� ������� PL/PgSQL ���������� - � ��������� ������� � ��� ������� ������� ��������� � �������������, � ������� - ����� ���������� �����, �� �� ����� �������� � ������, ������ ��� ������������� - ���������� ������� �������� ��������� �� ������ ��������� �������. ����� ������ - ��� ��������, ����������� <SMALL>EXECUTE</SMALL> ��� ������� � ��������� - �������� � PL/PgSQL. ������������� ����� ��������� �������� ������ - ������������������ ������ ���.</P> - - <P>� PostgreSQL 8.3 � �������, ���� �������� ���.</p> + <P>В PostgreSQL до версии 8.3, PL/PgSQL кэширует сценарии функции и один из + негативных эффектов этого состоит в том, что если функция PL/PgSQL обращается + к временной таблице и эта таблица позднее удаляется и пересоздается, а функция + затем вызывается снова, то ее вызов приведет к ошибке, потому что скэшированное + содержимое функции содержит указатель на старую временную таблицу. Чтобы решить + эту проблему, используйте <SMALL>EXECUTE</SMALL> для доступа к временным + таблицам в PL/PgSQL. Использование этого оператора заставит запрос + перегенерироваться каждый раз.</P> + + <P>В PostgreSQL 8.3 и позднее, этой проблемы нет.</p> - <H3><A name="item4.20">4.20</a>) ����� ���� ������� ��� ����������?</H3> + <H3><A name="item4.20">4.20</a>) Какие есть решения для репликации?</H3> - <P>���� "����������" -- ��� ������ ������, ���� ��������� ������ ���������� - ��� ���������� ���������� � ������� ������������� ��� ������.</P> + <P>Хотя "репликация" -- это единый термин, есть несколько разных технологий + для выполнения репликаций с разными особенностями для каждой.</P> - <P>���������� Master/slave ��������� ����� ���� ������� (master) ������ - ��� ���������� �������� ������/������, � �� ����� ��� �����Σ���� - (slave) ������� ����� ����������� ������ ������� - ������/<SMALL>SELECT</SMALL>. �������� ���������� �������� ��� ���������� - master-slave � PostgreSQL �������� + <P>Репликация Master/slave позволяет иметь один главный (master) сервер + для выполнения запросов чтения/записи, в то время как подчинённые + (slave) сервера могут производить только запросы + чтения/<SMALL>SELECT</SMALL>. Наиболее популярным решением для репликации + master-slave в PostgreSQL является <A href="http://main.slony.info/"> Slony-I</A>.</P> - <P>���������� Multi-master ��������� ��������� ������� ������/������ - �� ����������, ������������� ���� � ������ �����������. ��� ����������� - ����� �������� � ������ ������������������, ������ ��� ���������� - ������������� ��������� ����� ����������� ���������. �������� - ���������� �������� ��� ����� ���������� � PostgreSQL �������� + <P>Репликация Multi-master позволяет выполнять запросы чтения/записи + на нескольких, реплицируемых друг с другом компьюетрах. Эта особенность + также приводит к потере производительности, потому что необходима + синхронизация изменений между несколькими серверами. Наиболее + популярным решением для такой репликации в PostgreSQL является <A href="http://pgfoundry.org/projects/pgcluster/">PGcluster</A>. - <H3><A name="item4.21">4.21</A>) ������ ����� ������� � ������� �� - ������������ � � �ϣ� �������? ������ �� ����������� ��������� �����?</H3> + <H3><A name="item4.21">4.21</A>) Почему имена таблицы и колонок не + распознаются в в моём запросе? Почему не сохраняются заглавные буквы?</H3> - <P>�������� ����� ����� �������������� ��-�� ������������� ������� ������� � - ����� ������� ��� ������� ��� �������� �������. ��� ������������� ������� - �������, ��� ������� � ������� (������� �������� ����������������) - ����������� � <A href="http://www.postgresql.org/docs/current/static/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS"> - ��������-��������� ����</A>; ��� ��������, ��� �� ������ ������������ - ������� �������, ����� ���������� ��� ����� � �������. ��������� - ����������, ����� ��� pgAdmin, �� ����� �������� ������� ��������� - ������� ������� �������������. ����� �������, ����� �������������� - �������������� �� ������ ��������� ������ �� ��������� ������: + <P>Наиболее часто имена нераспознаются из-за использования двойных кавычек в + имени таблицы или колонки при создании таблицы. При использовании двойных + кавычек, имя таблицы и колонки (которые называют идентификаторами) + сохраняются в <A href="http://www.postgresql.org/docs/current/static/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS"> + регистро-зависимом виде</A>; это означает, что вы должны использовать + двойные кавычки, когда указываете эти имена в запросе. Некоторые + интерфейсы, такие как pgAdmin, во время создания таблицы добавляют + двойные кавычки автоматически. Таким образом, чтобы идентификаторы + распознавались вы должны следовать одному из следующих правил: <UL> - <LI>�������� ������������� ������� ������� ��� �������� ������</LI> - <LI>������������ � ��������������� ������ ������� ������� ��������</LI> - <LI>������������ ������� ������� ��� ��������������� � ��������</LI> + <LI>Избегать использования двойных кавычек при создании таблиц</LI> + <LI>Использовать в идентификаторах только символы нижнего регистра</LI> + <LI>Использовать двойные кавычки для идентификаторов в запросах</LI> </UL> </BODY> |