<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0">
<channel>
<title>FreeSource - Статьи/PostgreSQL/Оптимизация</title>
<link>http://freesource.info/wiki/Статьи/PostgreSQL/Оптимизация</link>
<description>History/revisions of FreeSource/Статьи/PostgreSQL/Оптимизация</description>
<language>en-us</language>
<item>
<title>2004-11-28 15:14:21</title>
<link>http://freesource.info/wiki/Stat'i/PostgreSQL/Optimizacija/show?time=2004-11-28+15%3A14%3A21</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a name=".stat_i.postgresql.optimizacija" href="http://freesource.info/wiki/Stat'i/PostgreSQL/Optimizacija&amp;" class="">/Статьи&amp;nbsp;/&amp;nbsp;Postgre&amp;nbsp;SQL&amp;nbsp;/&amp;nbsp;Оптимизация&lt;/a> за &lt;a href="http://freesource.info/wiki/Stat'i/PostgreSQL/Optimizacija?time=2004-11-28+15%3A14%3A21">2004-11-28 15:14:21&lt;/a> и &lt;a href="http://freesource.info/wiki/Stat'i/PostgreSQL/Optimizacija">2004-11-28 15:17:47&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">(C) Денис Смирнов &amp;lt;mithraen@freesource.info&amp;gt;   28 Nov&amp;nbsp;2004&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">(C) Денис Смирнов &amp;lt;mithraen@freesource.info&amp;gt;   25 Nov&amp;nbsp;2004&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2004-11-28 15:13:51</title>
<link>http://freesource.info/wiki/Stat'i/PostgreSQL/Optimizacija/show?time=2004-11-28+15%3A13%3A51</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/Stat'i/PostgreSQL/Optimizacija&amp;" class="">/Статьи&amp;nbsp;/&amp;nbsp;Postgre&amp;nbsp;SQL&amp;nbsp;/&amp;nbsp;Оптимизация&lt;/a> за &lt;a href="http://freesource.info/wiki/Stat'i/PostgreSQL/Optimizacija?time=2004-11-28+15%3A13%3A51">2004-11-28 15:13:51&lt;/a> и &lt;a href="http://freesource.info/wiki/Stat'i/PostgreSQL/Optimizacija?time=2004-11-28+15%3A14%3A21">2004-11-28 15:14:21&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;a name="h212-1">&lt;/a>&lt;h1>Оптимизация PostgreSQL&lt;/h1>&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;a name="h212-1">&lt;/a>&lt;h1>Оптимизация &lt;span class="missingpage">Postgre&amp;nbsp;SQL&lt;/span>&lt;a href="http://freesource.info/wiki/PostgreSQL/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a>&lt;/h1>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2004-11-28 15:13:03</title>
<link>http://freesource.info/wiki/Stat'i/PostgreSQL/Optimizacija/show?time=2004-11-28+15%3A13%3A03</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/Stat'i/PostgreSQL/Optimizacija&amp;" class="">/Статьи&amp;nbsp;/&amp;nbsp;Postgre&amp;nbsp;SQL&amp;nbsp;/&amp;nbsp;Оптимизация&lt;/a> за &lt;a href="http://freesource.info/wiki/Stat'i/PostgreSQL/Optimizacija?time=2004-11-28+15%3A13%3A03">2004-11-28 15:13:03&lt;/a> и &lt;a href="http://freesource.info/wiki/Stat'i/PostgreSQL/Optimizacija?time=2004-11-28+15%3A13%3A51">2004-11-28 15:13:51&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;hr noshade="noshade" size="1" />
(C) Денис Смирнов &amp;lt;mithraen@freesource.info&amp;gt;   25 Nov&amp;nbsp;2004&lt;br />
Размещение этого документа на&amp;nbsp;других Internet-ресурсах, а&amp;nbsp;также в&amp;nbsp;печатных изданиях не&amp;nbsp;допускается.&lt;br />
&lt;a href="http://freesource.info/forum/viewforum.php?f=9" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />Отзывы&lt;/a> &amp;mdash; здесь вы&amp;nbsp;можете высказать своё мнение по&amp;nbsp;поводу содержимого сайта    &lt;br />
&lt;!--notypo-->{{BackLinks}}&lt;!--/notypo-->&lt;br />
&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2004-11-28 14:52:07</title>
<link>http://freesource.info/wiki/Stat'i/PostgreSQL/Optimizacija/show?time=2004-11-28+14%3A52%3A07</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/Stat'i/PostgreSQL/Optimizacija&amp;" class="">/Статьи&amp;nbsp;/&amp;nbsp;Postgre&amp;nbsp;SQL&amp;nbsp;/&amp;nbsp;Оптимизация&lt;/a> за &lt;a href="http://freesource.info/wiki/Stat'i/PostgreSQL/Optimizacija?time=2004-11-28+14%3A52%3A07">2004-11-28 14:52:07&lt;/a> и &lt;a href="http://freesource.info/wiki/Stat'i/PostgreSQL/Optimizacija?time=2004-11-28+15%3A13%3A03">2004-11-28 15:13:03&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Команда VACUUM используется для&amp;nbsp;двух разных целей: очищение файлов баз&amp;nbsp;данных от&amp;nbsp;уже удалённых записей (можно сравнить по&amp;nbsp;смыслу с&amp;nbsp;дефрагментацией файловой системы), и&amp;nbsp;сбор статистики по&amp;nbsp;данным, которую может использовать встроеный в&amp;nbsp;&lt;span class="missingpage">Postgre&amp;nbsp;SQL&lt;/span>&lt;a href="http://freesource.info/wiki/PostgreSQL/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a> оптимизатор запросов.&lt;br />
&lt;!--notypo-->&lt;textarea class="code" rows="2" readonly="readonly">&lt;/textarea>&lt;!--/notypo-->&lt;br />
По-умолчанию &lt;span class="missingpage">Postgre&amp;nbsp;SQL&lt;/span>&lt;a href="http://freesource.info/wiki/PostgreSQL/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a> настроен на&amp;nbsp;максимальную надёжность, а&amp;nbsp;не максимальную производительность. Транзакция считается завершённой только после выполнения fsync (сброса кэша файлов на&amp;nbsp;диск).&lt;br />
Если у&amp;nbsp;вас есть UPS, и&amp;nbsp;вы уверены что&amp;nbsp;некорректных перезагрузок не&amp;nbsp;будет, то&amp;nbsp;вы можете в&amp;nbsp;postgresql.conf заменить fsync=yes на&amp;nbsp;fsync=no, тем&amp;nbsp;самым многократно увеличить производительность (ценой, разумеется, некоторого риска).&lt;br />
В&amp;nbsp;файле postgresql.conf можно очень гибко настаривать различные буферы, используемые &lt;span class="missingpage">Postgre&amp;nbsp;SQL&lt;/span>&lt;a href="http://freesource.info/wiki/PostgreSQL/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a>. Я&amp;nbsp;не буду здесь описывать тонкости их&amp;nbsp;настройки, лучше ставьте тесты на&amp;nbsp;конкретном приложении, для&amp;nbsp;которого вы&amp;nbsp;используете базу.&lt;br />
Очень важный для&amp;nbsp;работы &lt;span class="missingpage">Postgre&amp;nbsp;SQL&lt;/span>&lt;a href="http://freesource.info/wiki/PostgreSQL/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a> параметр &amp;mdash; количество разделяемой памяти. Тут&amp;nbsp;всё просто (в общем-то как&amp;nbsp;и&amp;nbsp;со всеми буферами) &amp;mdash;   чем&amp;nbsp;больше, тем&amp;nbsp;лучше. В&amp;nbsp;реальной же&amp;nbsp;жизни надо тестировать сколько и&amp;nbsp;подо что&amp;nbsp;отдавать памяти.&lt;br />
С&amp;nbsp;точки зрения &lt;span class="missingpage">Postgre&amp;nbsp;SQL&lt;/span>&lt;a href="http://freesource.info/wiki/PostgreSQL/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a> COUNT это&amp;nbsp;такая же&amp;nbsp;функция, как&amp;nbsp;и&amp;nbsp;любая другая агрегирующая функция. Точно так&amp;nbsp;же, как&amp;nbsp;и&amp;nbsp;для, например, SUM, все&amp;nbsp;данные из&amp;nbsp;запроса будут переданы этой функции.&lt;br />
всё содержимое таблицы будет передано функции COUNT. С&amp;nbsp;диска таблица будет считана целиком. Если таблица большая, то&amp;nbsp;это будет очень длительная операция.&lt;br />
Поэтому, пожалуйста, избегайте использования COUNT(*) на&amp;nbsp;больших запросах, пожалейте ваш&amp;nbsp;сервер!&lt;br />
Обычно в&amp;nbsp;реальной работе нужно считать только небольшого количество элементов, поэтому и&amp;nbsp;не была сделана специфичная оптимизация. Если вам&amp;nbsp;действительно нужно знать количество элементов во&amp;nbsp;всей таблице, то&amp;nbsp;вам придётся написать триггеры на&amp;nbsp;удаление/добавление записей в&amp;nbsp;эту таблицу.&lt;br />
В&amp;nbsp;каждой таблице по-умолчанию создаётся int32 колонка, содержащая уникальный в&amp;nbsp;пределах базы данных номер записи (строки).&lt;br />
Часто это&amp;nbsp;не&amp;nbsp;нужно, и&amp;nbsp;впустую тратит место на&amp;nbsp;диске (и время при&amp;nbsp;чтении таблицы с&amp;nbsp;диска). Параметр WITHOUT OID&amp;nbsp;при создании таблицы отключает эту&amp;nbsp;особенность, экономя 4 байта на&amp;nbsp;каждой строке.&lt;br />
Если вам&amp;nbsp;кажется, что&amp;nbsp;какой-то запрос выполняется слишком долго, то&amp;nbsp;вы можете добавить к&amp;nbsp;нему префикс EXPLAIN ANALYZE, что&amp;nbsp;позволит вам&amp;nbsp;увидеть последовательность действий &lt;span class="missingpage">Postgre&amp;nbsp;SQL&lt;/span>&lt;a href="http://freesource.info/wiki/PostgreSQL/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a> для&amp;nbsp;выполнения вашего запроса, и&amp;nbsp;понять на&amp;nbsp;каком этапе тратится слишком много времени. Обычно это&amp;nbsp;позволяет увидеть&lt;br />
последовательность действий &lt;span class="missingpage">Postgre&amp;nbsp;SQL&lt;/span>&lt;a href="http://freesource.info/wiki/PostgreSQL/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a> для&amp;nbsp;выполнения вашего запроса, и&amp;nbsp;понять на&amp;nbsp;каком этапе тратится слишком много времени. Обычно это&amp;nbsp;позволяет увидеть каким образом можно минимальными изменениями кода многократно увеличить производительность, а&amp;nbsp;также выявить свои ошибки в&amp;nbsp;оптимальности составленых запросов.&lt;br />
Если вы&amp;nbsp;добавляете в&amp;nbsp;таблицу большое количество данных, то&amp;nbsp;самым лучшим способом будет разбить их&amp;nbsp;на блоки, и&amp;nbsp;каждый блок записывать отдельной транзакцией.&lt;br />
Если выполнять каждую запись отдельно, то&amp;nbsp;накладные расходы будут слишком велики, если же&amp;nbsp;попытаться залить сразу большой объём данных, то&amp;nbsp;это потребует излишне много оперативной памяти, и&amp;nbsp;будет работать также заметно медленнее. Обычно я&amp;nbsp;стараюсь чтобы за&amp;nbsp;одну транзакцию отправлялось не&amp;nbsp;более чем&amp;nbsp;несколько 64 килобайтных блоков данных.&lt;br />
Например индекс типа hash позволят очень быстро выполнять поиск записи по&amp;nbsp;строковому полю, однако не&amp;nbsp;может быть использован для&amp;nbsp;сортировки или&amp;nbsp;поиска по&amp;nbsp;шаблону.&lt;br />
Изучите внимательно документацию на&amp;nbsp;индексы &lt;span class="missingpage">Postgre&amp;nbsp;SQL&lt;/span>&lt;a href="http://freesource.info/wiki/PostgreSQL/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a>, это&amp;nbsp;вложение времени себя однозначно окупит.&lt;br />
Проверяйте насколько оправдано в&amp;nbsp;ваших приложениях использование таблиц с&amp;nbsp;большим количеством столбцов. По&amp;nbsp;возможности выполняйте нормализацию.  Это&amp;nbsp;классика, это&amp;nbsp;надо делать не&amp;nbsp;только с&amp;nbsp;&lt;span class="missingpage">Postgre&amp;nbsp;SQL&lt;/span>&lt;a href="http://freesource.info/wiki/PostgreSQL/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a>, но... забывают почему-то :)&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">Команда VACUUM используется для&amp;nbsp;двух разных целей: очищение файлов баз&amp;nbsp;данных&lt;br />
от&amp;nbsp;уже удалённых записей (можно сравнить по&amp;nbsp;смыслу с&amp;nbsp;дефрагментацией файловой&lt;br />
системы), и&amp;nbsp;сбор статистики по&amp;nbsp;данным, которую может использовать встроеный&lt;br />
в&amp;nbsp;&lt;span class="missingpage">Postgre&amp;nbsp;SQL&lt;/span>&lt;a href="http://freesource.info/wiki/PostgreSQL/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a> оптимизатор запросов.&lt;br />
По-умолчанию &lt;span class="missingpage">Postgre&amp;nbsp;SQL&lt;/span>&lt;a href="http://freesource.info/wiki/PostgreSQL/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a> настроен на&amp;nbsp;максимальную надёжность, а&amp;nbsp;не максимальную&lt;br />
производительность. Транзакция считается завершённой только после выполнения&lt;br />
fsync (сброса кэша файлов на&amp;nbsp;диск).&lt;br />
Если у&amp;nbsp;вас есть UPS, и&amp;nbsp;вы уверены что&amp;nbsp;некорректных перезагрузок не&amp;nbsp;будет,&lt;br />
то&amp;nbsp;вы можете в&amp;nbsp;postgresql.conf заменить fsync=yes на&amp;nbsp;fsync=no, тем&amp;nbsp;самым&lt;br />
многократно увеличить производительность (ценой, разумеется, некоторого риска).&lt;br />
В&amp;nbsp;файле postgresql.conf можно очень гибко настаривать различные буферы,&lt;br />
используемые &lt;span class="missingpage">Postgre&amp;nbsp;SQL&lt;/span>&lt;a href="http://freesource.info/wiki/PostgreSQL/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a>. Я&amp;nbsp;не буду здесь описывать тонкости их&amp;nbsp;настройки, лучше&lt;br />
ставьте тесты на&amp;nbsp;конкретном приложении, для&amp;nbsp;которого вы&amp;nbsp;используете базу.&lt;br />
Очень важный для&amp;nbsp;работы &lt;span class="missingpage">Postgre&amp;nbsp;SQL&lt;/span>&lt;a href="http://freesource.info/wiki/PostgreSQL/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a> параметр &amp;mdash; количество разделяемой памяти. Тут&amp;nbsp;всё просто (в общем-то как&amp;nbsp;и&amp;nbsp;со всеми буферами) &amp;mdash; чем&amp;nbsp;больше, тем&amp;nbsp;лучше. В&amp;nbsp;реальной же&amp;nbsp;жизни надо тестировать сколько и&amp;nbsp;подо что&amp;nbsp;отдавать памяти.&lt;br />
С&amp;nbsp;точки зрения &lt;span class="missingpage">Postgre&amp;nbsp;SQL&lt;/span>&lt;a href="http://freesource.info/wiki/PostgreSQL/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a> COUNT это&amp;nbsp;такая же&amp;nbsp;функция, как&amp;nbsp;и&amp;nbsp;любая другая&lt;br />
агрегирующая функция. Точно так&amp;nbsp;же, как&amp;nbsp;и&amp;nbsp;для, например, SUM, все&amp;nbsp;данные&lt;br />
из&amp;nbsp;запроса будут переданы этой функции.&lt;br />
всё содержимое таблицы будет передано функции COUNT. С&amp;nbsp;диска таблица будет&lt;br />
считана целиком. Если таблица большая, то&amp;nbsp;это будет очень длительная операция.&lt;br />
Поэтому, пожалуйста, избегайте использования COUNT(*) на&amp;nbsp;больших запросах,&lt;br />
пожалейте ваш&amp;nbsp;сервер!&lt;br />
Обычно в&amp;nbsp;реальной работе нужно считать только небольшого количество элементов,&lt;br />
поэтому и&amp;nbsp;не была сделана специфичная оптимизация. Если вам&amp;nbsp;действительно&lt;br />
нужно знать количество элементов во&amp;nbsp;всей таблице, то&amp;nbsp;вам придётся написать&lt;br />
триггеры на&amp;nbsp;удаление/добавление записей в&amp;nbsp;эту таблицу.&lt;br />
В&amp;nbsp;каждой таблице по-умолчанию создаётся int32 колонка, содержащая уникальный&lt;br />
в&amp;nbsp;пределах базы данных номер записи (строки).&lt;br />
Часто это&amp;nbsp;не&amp;nbsp;нужно, и&amp;nbsp;впустую тратит место на&amp;nbsp;диске (и время при&amp;nbsp;чтении&lt;br />
таблицы с&amp;nbsp;диска). Параметр WITHOUT OID&amp;nbsp;при создании таблицы отключает эту&lt;br />
особенность, экономя 4 байта на&amp;nbsp;каждой строке.&lt;br />
Если вам&amp;nbsp;кажется, что&amp;nbsp;какой-то запрос выполняется слишком долго, то&amp;nbsp;вы можете&lt;br />
добавить к&amp;nbsp;нему префикс EXPLAIN ANALYZE, что&amp;nbsp;позволит вам&amp;nbsp;увидеть&lt;br />
последовательность действий &lt;span class="missingpage">Postgre&amp;nbsp;SQL&lt;/span>&lt;a href="http://freesource.info/wiki/PostgreSQL/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a> для&amp;nbsp;выполнения вашего запроса, и&amp;nbsp;понять&lt;br />
на&amp;nbsp;каком этапе тратится слишком много времени. Обычно это&amp;nbsp;позволяет увидеть&lt;br />
последовательность действий &lt;span class="missingpage">Postgre&amp;nbsp;SQL&lt;/span>&lt;a href="http://freesource.info/wiki/PostgreSQL/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a> для&amp;nbsp;выполнения вашего запроса, и&amp;nbsp;понять&lt;br />
на&amp;nbsp;каком этапе тратится слишком много времени. Обычно это&amp;nbsp;позволяет увидеть&lt;br />
каким образом можно минимальными изменениями кода многократно увеличить&lt;br />
производительность, а&amp;nbsp;также выявить свои ошибки в&amp;nbsp;оптимальности составленых&lt;br />
запросов.&lt;br />
Если вы&amp;nbsp;добавляете в&amp;nbsp;таблицу большое количество данных, то&amp;nbsp;самым лучшим&lt;br />
способом будет разбить их&amp;nbsp;на блоки, и&amp;nbsp;каждый блок записывать отдельной&lt;br />
транзакцией.&lt;br />
Если выполнять каждую запись отдельно, то&amp;nbsp;накладные расходы будут слишком&lt;br />
велики, если же&amp;nbsp;попытаться залить сразу большой объём данных, то&amp;nbsp;это потребует&lt;br />
излишне много оперативной памяти, и&amp;nbsp;будет работать также заметно медленнее.&lt;br />
Обычно я&amp;nbsp;стараюсь чтобы за&amp;nbsp;одну транзакцию отправлялось не&amp;nbsp;более чем&amp;nbsp;несколько&lt;br />
64 килобайтных блоков данных.&lt;br />
Например индекс типа hash позволят очень быстро выполнять поиск записи по&lt;br />
строковому полю, однако не&amp;nbsp;может быть использован для&amp;nbsp;сортировки или&amp;nbsp;поиска по&lt;br />
шаблону.&lt;br />
Изучите внимательно документацию на&amp;nbsp;индексы &lt;span class="missingpage">Postgre&amp;nbsp;SQL&lt;/span>&lt;a href="http://freesource.info/wiki/PostgreSQL/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a>, это&amp;nbsp;вложение времени&lt;br />
себя однозначно окупит.&lt;br />
Проверяйте насколько оправдано в&amp;nbsp;ваших приложениях использование таблиц с&lt;br />
большим количеством столбцов. По&amp;nbsp;возможности выполняйте нормализацию. Увы,&lt;br />
&lt;span class="missingpage">Postgre&amp;nbsp;SQL&lt;/span>&lt;a href="http://freesource.info/wiki/PostgreSQL/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a> чувствителен к&amp;nbsp;количеству столбцов в&amp;nbsp;таблице.&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2004-11-28 14:50:08</title>
<link>http://freesource.info/wiki/Stat'i/PostgreSQL/Optimizacija/show?time=2004-11-28+14%3A50%3A08</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/Stat'i/PostgreSQL/Optimizacija&amp;" class="">/Статьи&amp;nbsp;/&amp;nbsp;Postgre&amp;nbsp;SQL&amp;nbsp;/&amp;nbsp;Оптимизация&lt;/a> за &lt;a href="http://freesource.info/wiki/Stat'i/PostgreSQL/Optimizacija?time=2004-11-28+14%3A50%3A08">2004-11-28 14:50:08&lt;/a> и &lt;a href="http://freesource.info/wiki/Stat'i/PostgreSQL/Optimizacija?time=2004-11-28+14%3A52%3A07">2004-11-28 14:52:07&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;a name="h212-1">&lt;/a>&lt;h2>Введение&lt;/h2>
Часто встречаются вопросы по&amp;nbsp;оптимизации баз&amp;nbsp;данных. К&amp;nbsp;сожалению качественный материал на&amp;nbsp;эту тему найти крайне сложно. Эта&amp;nbsp;статья является сочетанием моего опыта с&amp;nbsp;компиляцией писем специалистов в&amp;nbsp;мейллистах и&amp;nbsp;форумах.&lt;a name="h212-2">&lt;/a>&lt;h2>Конфигурация&lt;/h2> &lt;a name="h212-3">&lt;/a>&lt;h3>fsync&lt;/h3>&lt;a name="h212-4">&lt;/a>&lt;h3>Размеры буферов&lt;/h3>&lt;a name="h212-5">&lt;/a>&lt;h3>shared memory&lt;/h3>&lt;a name="h212-6">&lt;/a>&lt;h3>enable_seqscan=false&lt;/h3>&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;a name="h212-1">&lt;/a>&lt;h2>fsync&lt;/h2>&lt;a name="h212-2">&lt;/a>&lt;h2>Размеры буферов&lt;/h2>&lt;a name="h212-3">&lt;/a>&lt;h2>shared memory&lt;/h2>&lt;a name="h212-4">&lt;/a>&lt;h2>enable_seqscan=false&lt;/h2>&lt;/div>&lt;/div>
</description>
</item>
</channel>
</rss>
