<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    
    <title>SQL-Ex blog - Articles</title>
    <link>https://sql-ex.ru/blogs/</link>
    <description>Новости сайта &quot;Упражнения SQL&quot;, статьи и переводы</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 2.3.5 - http://www.s9y.org/</generator>
    <pubDate>Wed, 19 Aug 2026 14:53:00 GMT</pubDate>

    <image>
    <url>https://sql-ex.ru/images/logo.jpg</url>
    <title>RSS: SQL-Ex blog - Articles - Новости сайта &quot;Упражнения SQL&quot;, статьи и переводы</title>
    <link>https://sql-ex.ru/blogs/</link>
    <width></width>
    <height></height>
</image>

<item>
    <title>Всё о GUC по порядку: enable_presorted_aggregate</title>
    <link>https://sql-ex.ru/blogs/?/GUC-enable_presorted_aggregate.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-enable_presorted_aggregate.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3504</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3504</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Christophe Pettus, &lt;a href=&quot;https://postgr.es/p/9ph&quot;&gt;All Your GUCs in a Row: enable_presorted_aggregate&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;enable_presorted_aggregate включён, он включён с момента появления в PostgreSQL 16, и самое полезное, что вы когда-либо сделаете с ним, — это отключите его ровно для одного запроса.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;По умолчанию включён, контекст — пользовательский: может быть установлен для сессии, роли, базы данных или встроен в одну транзакцию. Последний вариант — это и есть вся рекомендация, так что запомните его.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-enable_presorted_aggregate.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: enable_presorted_aggregate&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 19 Aug 2026 17:53:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3504.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: enable_partitionwise_join</title>
    <link>https://sql-ex.ru/blogs/?/GUC-enable_partitionwise_join.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-enable_partitionwise_join.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3503</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3503</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Christophe Pettus, &lt;a href=&quot;https://postgr.es/p/9p1&quot;&gt;All Your GUCs in a Row: enable_partitionwise_join&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;«Собрат» параметра &lt;a href=&quot;https://sql-ex.ru/blogs/?/Vsjo_o_GUC_po_porJadku_enable_partitionwise_aggregate.html&quot;&gt;enable_partitionwise_aggregate&lt;/a&gt;, и он разделяет его определяющую черту: по умолчанию он выключен, и по той же причине. Поэтому, чтобы не повторять полностью аргументацию о том, почему он выключен по умолчанию, в этом посте рассматривается, что здесь отличается — механизм, преимущество, которого нет у версии для агрегации, и предусловие, достаточно строгое, чтобы быть главной причиной, по которой функция не срабатывает, когда люди её ожидают. По умолчанию выключен, контекст — пользовательский. Как и его «собрат», включение этого параметра — это реальное решение по настройке, а не диагностический зонд.&lt;/p&gt;&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-enable_partitionwise_join.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: enable_partitionwise_join&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 18 Aug 2026 14:45:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3503.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: enable_partition_pruning</title>
    <link>https://sql-ex.ru/blogs/?/GUC-enable_partition_pruning.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-enable_partition_pruning.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3502</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3502</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Christophe Pettus, &lt;a href=&quot;https://postgr.es/p/9on&quot;&gt;All Your GUCs in a Row: enable_partition_pruning&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Один из действительно важных параметров секционирования, который стоит понимать, а не просто оставлять включённым, — потому что он выполняет свою работу в два разных момента, и разница между ними определяет, насколько он может помочь вашим запросам. По умолчанию включён, контекст пользовательский, и он относится к тому же семейству, что и &lt;a href=&quot;https://sql-ex.ru/blogs/?/Vsjo_o_GUC_po_porJadku_enable_async_append.html&quot;&gt;enable_async_append&lt;/a&gt;: это диагностический инструмент, а не регулятор настройки. Это параметр, который позволяет PostgreSQL пропускать сканирование разделов, которые не могут содержать строки, нужные запросу.&lt;/p&gt;&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-enable_partition_pruning.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: enable_partition_pruning&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 17 Aug 2026 16:04:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3502.html</guid>
    
</item>
<item>
    <title>Как узнать последнее значение, используемое последовательностью в SQL Server</title>
    <link>https://sql-ex.ru/blogs/?/,-SQL-Server.html</link>
            <category>T-SQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/,-SQL-Server.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3501</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3501</wfw:commentRss>
    

    <author>nospam@example.com (Sergey Moiseenko)</author>
    <content:encoded>
    &lt;p style=&quot;margin: 0px 25px; font-size: 9pt;&quot;&gt;Пересказ статьи &lt;a class=&quot;let&quot; href=&quot;https://www.red-gate.com/simple-talk/databases/sql-server/how-to-determine-the-last-value-used-by-a-sequence-in-sql-server/&quot;&gt;Greg Low. How to determine the last value used by a sequence in SQL Server&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
Я являюсь фанатом последовательностей с тех пор, когда они появились в SQL Server 2012. До этого у разработчиков был выбор между столбцами IDENTITY и создания собственного механизма для таблиц.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Что такое последовательности в SQL Server?&lt;/h2&gt;&lt;br /&gt;
Последовательности позволяют создавать привязанный к схеме объект, который не связан ни с какой конкретной таблицей.&lt;br /&gt;
&lt;br /&gt;
Например, если у меня есть таблицы Sales.FlightBookings и Sales.VehicleBookings, и я хочу иметь общий BookingID, используемый как ключ для каждой таблицы. Если бы речь шла не только о BookingID, вы могли бы возразить, что существует проблема с нормализацией таблиц, но мы оставим это обсуждение на будущее. &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/,-SQL-Server.html#extended&quot;&gt;Continue reading &quot;Как узнать последнее значение, используемое последовательностью в SQL Server&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 16 Aug 2026 18:30:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3501.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: enable_partitionwise_aggregate</title>
    <link>https://sql-ex.ru/blogs/?/GUC-enable_partitionwise_aggregate.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-enable_partitionwise_aggregate.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3499</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3499</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Christophe Pettus, &lt;a href=&quot;https://postgr.es/p/9oz&quot;&gt;All Your GUCs in a Row: enable_partitionwise_aggregate&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Оптимизация для секционирования и примечательное исключение в семействе enable_*: по умолчанию она выключена. Почти все остальные члены семейства по умолчанию включены и существуют для того, чтобы вы могли отключить возможность для диагностики; этот же по умолчанию выключен и существует для того, чтобы вы могли включить его, когда решите, что оно стоит затрат. Это обратное поведение — и стоимость, которая его мотивирует, — составляют суть данного поста. Контекст — пользовательский. И в отличие от большинства членов семейства, изменение этого параметра — это легитимное решение по настройке, а не просто диагностический зонд.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-enable_partitionwise_aggregate.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: enable_partitionwise_aggregate&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 16 Aug 2026 11:49:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3499.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: enable_parallel_hash</title>
    <link>https://sql-ex.ru/blogs/?/GUC-enable_parallel_hash.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-enable_parallel_hash.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3500</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3500</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Christophe Pettus, &lt;a href=&quot;https://postgr.es/p/9o8&quot;&gt;All Your GUCs in a Row: enable_parallel_hash&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Переключатель для параллельных запросов, уточняющий хэш-соединение из статьи про enable_hashjoin, и он требует точности, потому что «хэш-соединение, выполняемое параллельно» и «параллельное хэш-соединение» — это две действительно разные вещи. По умолчанию включён, контекст пользовательский, и он относится к тому же семейству, что и &lt;a href=&quot;https://sql-ex.ru/blogs/?/Vsjo_o_GUC_po_porJadku_enable_async_append.html&quot;&gt;enable_async_append&lt;/a&gt;: это диагностический инструмент, а не регулятор настройки.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-enable_parallel_hash.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: enable_parallel_hash&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 16 Aug 2026 12:03:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3500.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: enable_parallel_append</title>
    <link>https://sql-ex.ru/blogs/?/GUC-enable_parallel_append.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-enable_parallel_append.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3498</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3498</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Christophe Pettus, All Your GUCs in a Row: enable_parallel_append&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Возвращаемся к параллельным запросам и параметру, который легко спутать с первым в этом семействе. &lt;a href=&quot;https://sql-ex.ru/blogs/?/Vsjo_o_GUC_po_porJadku_enable_async_append.html&quot;&gt;enable_async_append&lt;/a&gt; был посвящён параллельному выполнению внешних сканирований на удалённых серверах. Параметр enable_parallel_append касается параллельного выполнения локальных дочерних узлов Append на рабочих процессах. Разный механизм, другая задача, похожее название. По умолчанию включён, контекст пользовательский, и он относится к тому же семейству: это диагностический инструмент, а не регулятор настройки.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-enable_parallel_append.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: enable_parallel_append&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sat, 15 Aug 2026 14:09:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3498.html</guid>
    
</item>
<item>
    <title>Слишком много таблиц — это плохо</title>
    <link>https://sql-ex.ru/blogs/?/unknown.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/unknown.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3497</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3497</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Laurenz Albe, &lt;a href=&quot;https://postgr.es/p/9nN&quot;&gt;Too many tables are bad for you&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Недавно я помогал заказчику расследовать проблемы с базой данных. Оказалось, что эти проблемы тянутся от слишком большого количества таблиц в базе данных. Поскольку это для многих может стать неожиданностью, я решил, что стоит написать об этом.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/unknown.html#extended&quot;&gt;Continue reading &quot;Слишком много таблиц — это плохо&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sat, 15 Aug 2026 13:45:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3497.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: enable_nestloop</title>
    <link>https://sql-ex.ru/blogs/?/GUC-enable_nestloop.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-enable_nestloop.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3495</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3495</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Christophe Pettus, &lt;a href=&quot;https://postgr.es/p/9n_&quot;&gt;All Your GUCs in a Row: enable_nestloop&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Последний из трёх переключателей стратегий соединения и в некотором смысле самый важный, потому что вложенный цикл (nested loop) — это одновременно и простейшее соединение в PostgreSQL, и источник самого печально известного катастрофического падения производительности. Три алгоритма были представлены в статье про &lt;a href=&quot;https://sql-ex.ru/blogs/?/Vsjo_o_GUC_po_porJadku_enable_hashjoin.html&quot;&gt;enable_hashjoin&lt;/a&gt;; этот пост завершает серию. По умолчанию включён, контекст — пользовательский, и он относится к тому же семейству, что и &lt;a href=&quot;https://sql-ex.ru/blogs/?/Vsjo_o_GUC_po_porJadku_enable_async_append.html&quot;&gt;enable_async_append&lt;/a&gt;: это диагностический инструмент, а не регулятор настройки.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-enable_nestloop.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: enable_nestloop&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 13 Aug 2026 18:55:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3495.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: enable_mergejoin</title>
    <link>https://sql-ex.ru/blogs/?/GUC-enable_mergejoin.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-enable_mergejoin.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3494</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3494</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Christophe Pettus, &lt;a href=&quot;https://postgr.es/p/9nZ&quot;&gt;All Your GUCs in a Row: enable_mergejoin&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Второй из трёх переключателей стратегий соединения. Три алгоритма были изложены в статье про &lt;a href=&quot;https://sql-ex.ru/blogs/?/Vsjo_o_GUC_po_porJadku_enable_hashjoin.html&quot;&gt;enable_hashjoin&lt;/a&gt; — вложенный цикл, соединение слиянием и хэш-соединение, — так что здесь мы углубимся в средний из них. По умолчанию включён, контекст — пользовательский, и он относится к тому же семейству, что и &lt;a href=&quot;https://sql-ex.ru/blogs/?/Vsjo_o_GUC_po_porJadku_enable_async_append.html&quot;&gt;enable_async_append&lt;/a&gt;: это диагностический инструмент, а не регулятор настройки.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-enable_mergejoin.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: enable_mergejoin&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 12 Aug 2026 17:18:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3494.html</guid>
    
</item>
<item>
    <title>Обновление кластеров PostgreSQL 19 стало ещё более бесшовным</title>
    <link>https://sql-ex.ru/blogs/?/PostgreSQL-19.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/PostgreSQL-19.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3493</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3493</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: &lt;a href=&quot;https://www.postgresql.fastware.com/blog/author/vigneshwaran-c&quot;&gt;Vigneshwaran C&lt;/a&gt; , &lt;a href=&quot;https://www.postgresql.fastware.com/blog/closing-a-critical-gap-in-postgresql-upgrade-workflows-with-sequence-synchronization&quot;&gt;Closing a critical gap in PostgreSQL upgrade workflows with sequence synchronization&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Обновление кластеров PostgreSQL 19 стало более плавным благодаря таким инструментам, как &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;pg_upgrade&lt;/span&gt;&lt;/code&gt; и &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;pg_createsubscriber&lt;/span&gt;&lt;/code&gt;, которые вместе обеспечивают обновление с практически нулевым временем простоя, сначала преобразуя физические реплики в логических подписчиков, а затем выполняя обновление с минимальным прерыванием обслуживания.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Однако этот подход обнажает давний пробел в логической репликации: состояние последовательностей (sequence state) не реплицируется.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;В этой статье мы рассмотрим реальный сценарий обновления, покажем, где именно всё может пойти не так, и объясним, как новая функция синхронизации последовательностей в PostgreSQL 19 делает весь процесс безопасным для промышленной эксплуатации.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;br /&gt;
&lt;p&gt;Узнайте, как PostgreSQL 19 улучшает процессы обновления благодаря внедрению синхронизации последовательностей, обеспечивая безопасные и бесшовные переходы при обновлении баз данных.&lt;/p&gt;&lt;br /&gt;
&lt;/blockquote&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/PostgreSQL-19.html#extended&quot;&gt;Continue reading &quot;Обновление кластеров PostgreSQL 19 стало ещё более бесшовным&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 11 Aug 2026 17:38:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3493.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: enable_material и enable_memoize</title>
    <link>https://sql-ex.ru/blogs/?/GUC-enable_material-enable_memoize.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-enable_material-enable_memoize.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3492</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3492</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Christophe Pettus, &lt;a href=&quot;https://postgr.es/p/9nS&quot;&gt;All Your GUCs in a Row: enable_material and enable_memoize&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Два переключателя enable_* для двух узлов плана, которые оба, условно говоря, кешируют строки, чтобы избежать повторных вычислений, — именно поэтому их путают, и именно поэтому их стоит рассматривать вместе. Они не являются вариациями одной идеи. Materialize — это «тупой» буфер; Memoize — это «умный» кеш. Суть этого поста — чётко зафиксировать это различие. Оба параметра включены по умолчанию, оба относятся к пользовательскому контексту, и оба находятся в том же семействе, что и &lt;a href=&quot;https://sql-ex.ru/blogs/?/Vsjo_o_GUC_po_porJadku_enable_async_append.html&quot;&gt;enable_async_append&lt;/a&gt;: это диагностические инструменты, а не регуляторы настройки производительности.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-enable_material-enable_memoize.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: enable_material и enable_memoize&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 11 Aug 2026 11:42:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3492.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: enable_indexonlyscan</title>
    <link>https://sql-ex.ru/blogs/?/GUC-enable_indexonlyscan.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-enable_indexonlyscan.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3491</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3491</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Christophe Pettus, &lt;a href=&quot;https://postgr.es/p/9nM&quot;&gt;All Your GUCs in a Row: enable_indexonlyscan&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Третий способ использования индекса, после обычного индексного сканирования и сканирования битовой карты из &lt;a href=&quot;https://sql-ex.ru/blogs/?/Vsjo_o_GUC_po_porJadku_enable_indexscan_i_enable_bitmapscan.html&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;enable_indexscan&lt;/span&gt;&lt;/code&gt; и &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;enable_bitmapscan&lt;/span&gt;&lt;/code&gt;&lt;/a&gt;, — и тот, у которого есть наиболее неправильно понимаемый «подвох», потому что сканирование только по индексу может быть физически возможным, но всё равно заканчиваться чтением кучи почти для каждой строки. Почему это происходит, и есть суть этого поста. По умолчанию включён, контекст — &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;user&lt;/span&gt;&lt;/code&gt;, с тем же обрамлением семейства, что и у &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;a href=&quot;https://sql-ex.ru/blogs/?/Vsjo_o_GUC_po_porJadku_enable_async_append.html&quot;&gt;enable_async_append&lt;/a&gt;&lt;/span&gt;&lt;/code&gt;: диагностический инструмент, а не регулировочная ручка.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-enable_indexonlyscan.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: enable_indexonlyscan&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 10 Aug 2026 13:51:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3491.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: enable_incremental_sort</title>
    <link>https://sql-ex.ru/blogs/?/GUC-enable_incremental_sort.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-enable_incremental_sort.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3489</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3489</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Christophe Pettus, &lt;a href=&quot;https://postgr.es/p/9ny&quot;&gt;All Your GUCs in a Row: enable_incremental_sort&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Действительно хорошая функциональность скрывается за этим переключателем, что делает его одним из наиболее интересных параметров семейства &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;enable_*&lt;/span&gt;&lt;/code&gt; для понимания, — и одним из немногих, у кого есть известный сценарий отказа, который стоит распознавать. По умолчанию включён, контекст — &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;user&lt;/span&gt;&lt;/code&gt;, с тем же обрамлением семейства, что и у &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;a href=&quot;https://sql-ex.ru/blogs/?/Vsjo_o_GUC_po_porJadku_enable_async_append.html&quot;&gt;enable_async_append&lt;/a&gt;&lt;/span&gt;&lt;/code&gt;: диагностический инструмент, а не регулировочная ручка. Инкрементальная сортировка появилась в PostgreSQL 13 (Томаш Вондра и Джеймс Коулман), и когда она помогает, она помогает очень сильно.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-enable_incremental_sort.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: enable_incremental_sort&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 07 Aug 2026 11:57:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3489.html</guid>
    
</item>
<item>
    <title>pg_stats: как работает внутренняя статистика Postgres</title>
    <link>https://sql-ex.ru/blogs/?/pg_stats-Postgres.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/pg_stats-Postgres.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3487</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3487</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: &lt;a href=&quot;https://richyen.com/&quot;&gt;Richard Yen&lt;/a&gt;, &lt;a href=&quot;https://richyen.com/postgres/2026/06/22/pg_stats_how_postgres_internal_stats_work.html&quot;&gt;pg_stats: How Postgres Internal Stats Work&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Недавно мне выпала честь выступить на POSETTE 2026 с докладом о pg_stats и о том, как работает внутренняя статистика Postgres (&lt;a href=&quot;https://www.youtube.com/watch?v=w5YcY5c5c5c&quot;&gt;запись на YouTube&lt;/a&gt;). Эта статья является письменным дополнением к тому докладу и предназначен для того, чтобы дать вам рабочее понимание того, что такое pg_stats, как он заполняется и как он влияет на решения, которые планировщик запросов принимает от вашего имени.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/pg_stats-Postgres.html#extended&quot;&gt;Continue reading &quot;pg_stats: как работает внутренняя статистика Postgres&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 06 Aug 2026 13:24:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3487.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: enable_hashjoin</title>
    <link>https://sql-ex.ru/blogs/?/GUC-enable_hashjoin.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-enable_hashjoin.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3488</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3488</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Christophe Pettus, &lt;a href=&quot;All Your GUCs in a Row: enable_hashjoin&quot;&gt;All Your GUCs in a Row: enable_hashjoin&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Первый из трёх переключателей стратегий соединения, поэтому прежде чем перейти к параметру, — один абзац о том, внутри чего он находится: в PostgreSQL есть ровно три способа соединения двух таблиц, и для каждого соединения в каждом запросе планировщик выбирает один из них. Три переключателя &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;enable_*&lt;/span&gt;&lt;/code&gt; для соединений — этот, &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;a href=&quot;https://thebuild.com/blog/all-your-gucs-in-a-row-enableasyncappend/&quot;&gt;enable_mergejoin&lt;/a&gt;&lt;/span&gt;&lt;/code&gt; и &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;a href=&quot;https://thebuild.com/blog/all-your-gucs-in-a-row-enableasyncappend/&quot;&gt;enable_nestloop&lt;/a&gt;&lt;/span&gt;&lt;/code&gt; — позволяют вам убрать один вариант со стола и посмотреть, что планировщик выберет вместо него. То же правило семейства, что и всегда (&lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;a href=&quot;https://sql-ex.ru/blogs/?/Vsjo_o_GUC_po_porJadku_enable_async_append.html&quot;&gt;enable_async_append&lt;/a&gt;&lt;/span&gt;&lt;/code&gt;): диагностические инструменты, а не регулировочные ручки. По умолчанию включён, контекст — &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;user&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-enable_hashjoin.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: enable_hashjoin&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 06 Aug 2026 21:23:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3488.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: enable_gathermerge</title>
    <link>https://sql-ex.ru/blogs/?/GUC-enable_gathermerge.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-enable_gathermerge.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3485</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3485</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Christophe Pettus, &lt;a href=&quot;https://postgr.es/p/9nm&quot;&gt;All Your GUCs in a Row: enable_gathermerge&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Переключатель параллельных запросов и один из наиболее интересных членов семейства &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;enable_*&lt;/span&gt;&lt;/code&gt; для переключения, потому что то, что он отключает, имеет чистое, предсказуемое замещение. По умолчанию включён, контекст — &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;user&lt;/span&gt;&lt;/code&gt;, с тем же предостережением семейства, что и у &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;a href=&quot;https://sql-ex.ru/blogs/?/Vsjo_o_GUC_po_porJadku_enable_async_append.html&quot;&gt;enable_async_append&lt;/a&gt;&lt;/span&gt;&lt;/code&gt;: диагностический инструмент, а не регулировочная ручка.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-enable_gathermerge.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: enable_gathermerge&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 04 Aug 2026 18:03:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3485.html</guid>
    
</item>
<item>
    <title>Оптимизация полиморфных ассоциаций в PostgreSQL</title>
    <link>https://sql-ex.ru/blogs/?/PostgreSQL.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/PostgreSQL.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3484</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3484</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Андрей Лепихов,&lt;a href=&quot;https://postgr.es/p/9mA&quot;&gt;Optimising Polymorphic Associations in PostgreSQL&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Недавно я &lt;a href=&quot;https://open.substack.com/pub/danolivo/p/on-polymorphic-associations-in-postgres?r=34q1yy&amp;utm_campaign=post-expanded-share&amp;utm_medium=web&quot;&gt;исследовал&lt;/a&gt;, насколько распространены полиморфные ассоциации в реляционных базах данных — это враждебный производительности паттерн, построенный вокруг дискриминированного внешнего ключа, который автоматически генерируют ORM (Rails, Django, Hibernate), CRM-платформы (Salesforce) и 1C. Главная страница типичного интернет-магазина или лента активности CRM построены именно на таком запросе: базовая таблица соединяется через &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;LEFT JOIN&lt;/span&gt;&lt;/code&gt; со всеми возможными подтипами через пару столбцов &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;(type, id)&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Та предыдущая статья отвечала на вопрос «насколько распространён этот паттерн?» В конце концов, если вы собираетесь что-то улучшать, полезно знать, насколько полезным будет улучшение, верно? Здесь я хочу дать представление о том, как этот паттерн приводит к снижению производительности, и указать направления в оптимизаторе PostgreSQL, которые могли бы облегчить ситуацию.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;&lt;strong&gt;Спойлер:&lt;/strong&gt; пока немногое реализовано — но кое-что движется в &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;pgsql-hackers&lt;/span&gt;&lt;/code&gt;. Три патча, обсуждавшихся в 2024–2026 годах, нацелены на три разных источника снижения производительности. Каждый из них описан ниже.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/PostgreSQL.html#extended&quot;&gt;Continue reading &quot;Оптимизация полиморфных ассоциаций в PostgreSQL&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 04 Aug 2026 13:57:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3484.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: enable_distinct_reordering и enable_group_by_reordering</title>
    <link>https://sql-ex.ru/blogs/?/GUC-enable_distinct_reordering-enable_group_by_reordering.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-enable_distinct_reordering-enable_group_by_reordering.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3483</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3483</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Christophe Pettus,&lt;a href=&quot;https://postgr.es/p/9nj&quot;&gt; All Your GUCs in a Row: enable_distinct_reordering and enable_group_by_reorderin&lt;/a&gt;g&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Два самых молодых члена семейства &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;enable_*&lt;/span&gt;&lt;/code&gt; и естественная пара: оба позволяют планировщику переупорядочивать ключи многоключевой операции, чтобы удешевить сортировку, и оба включены по умолчанию, имеют контекст &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;user&lt;/span&gt;&lt;/code&gt; и несут предостережение семейства &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;enable_*&lt;/span&gt;&lt;/code&gt; из &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;enable_async_append&lt;/span&gt;&lt;/code&gt; — диагностические зонды, а не производственные регулировочные ручки.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Идея, стоящая за обоими, одна и та же, и она хороша. Когда вы пишете &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;GROUP BY a, b, c&lt;/span&gt;&lt;/code&gt; или &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;SELECT DISTINCT a, b, c&lt;/span&gt;&lt;/code&gt;, порядок, в котором вы перечислили эти столбцы, не несёт семантического смысла, — группировка и поиск уникальных значений дают один и тот же результат независимо от того, какой ключ сравнивается первым. Но порядок имеет огромное значение для стоимости. Если операция выполняется путём сортировки, сравнение сначала дешёвого для сравнения столбца с высокой кардинальностью означает, что большинство сравнений завершаются на первом ключе и никогда не затрагивают остальные; начните с дорогого текстового столбца с учётом локали, и вы заплатите стоимость его сравнения для каждой строки. А если другая часть запроса — &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;ORDER BY&lt;/span&gt;&lt;/code&gt;, индекс, уже выдающий строки в определённом порядке, — хочет получить данные, отсортированные определённым образом, согласование с этим порядком позволяет планировщику повторно использовать сортировку, которую он всё равно собирался выполнить, или полностью пропустить её с помощью &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;incremental sort&lt;/span&gt;&lt;/code&gt;. Таким образом, планировщик, получив свободу переставлять ключи, порядок которых не влияет на корректность, иногда может найти значительно более дешёвую схему, чем та, которую вы написали.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Обе оптимизации имеют важное свойство безопасности, которое стоит чётко сформулировать: они всегда сохраняют указанный вами порядок как один из кандидатов, исходя из предположения, что вы можете знать что-то, чего не знает планировщик. Переупорядочение — это то, что планировщик &lt;em&gt;может&lt;/em&gt; сделать, если найдёт более дешёвую перестановку, а не то, что он навязывает вам.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-enable_distinct_reordering-enable_group_by_reordering.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: enable_distinct_reordering и enable_group_by_reordering&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 03 Aug 2026 11:27:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3483.html</guid>
    
</item>
<item>
    <title>IDENTITY или SEQUENCE в SQL Server – что использовать?</title>
    <link>https://sql-ex.ru/blogs/?/IDENTITY-SEQUENCE-SQL-Server.html</link>
            <category>T-SQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/IDENTITY-SEQUENCE-SQL-Server.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3482</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3482</wfw:commentRss>
    

    <author>nospam@example.com (Sergey Moiseenko)</author>
    <content:encoded>
    &lt;p style=&quot;margin: 0px 25px; font-size: 9pt;&quot;&gt;Пересказ статьи &lt;a class=&quot;let&quot; href=&quot;https://www.red-gate.com/simple-talk/databases/sql-server/identity-vs-sequence-in-sql-server-which-should-you-use/&quot;&gt;Greg Low. IDENTITY vs SEQUENCE in SQL Server – which should you use?&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
Автоматически генерируемые числовые ключи имеются повсюду в реляционных базах данных. В SQL Server доминируют две возможности этого:&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;&lt;a class=&quot;let&quot; target=&quot;_blank&quot; href=&quot;https://sql-ex.ru/blogs/?/Rabota_so_stolbcami_identity_v_SQL_Server.html&quot;&gt;столбцы IDENTITY&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;&lt;a class=&quot;let&quot; target=&quot;_blank&quot; href=&quot;https://sql-ex.ru/blogs/?/ModernizaciJa_vashego_koda_T-SQL_obekt_Sequence.html&quot;&gt;объекты SEQUENCE&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
Обе генерируют числа. Обе быстры. Обе широко используются. Хотя в настоящее время столбцы IDENTITY являются, безусловно, наиболее распространенными - однако при  работе с клиентами мы склонны использовать почти исключительно объекты SEQUENCE. Все, что я могу сделать со столбцом IDENTITY, я могу так же сделать с объектом SEQUENCE, но мы считаем его более гибким.&lt;br /&gt;
&lt;br /&gt;
Вот простой пример. Если вы когда либо пытались выполнить SET IDENTITY_INSERT ON по &lt;a class=&quot;let&quot; target=&quot;_blank&quot; href=&quot;https://sql-ex.ru/blogs/?/Ponimanie_svJazannyh_serverov_v_SQL_Server.html&quot;&gt;связанным серверам&lt;/a&gt;, то знаете, что это не работает. С SEQUENCE мне никогда не понадобится выполнять такую операцию.&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/IDENTITY-SEQUENCE-SQL-Server.html#extended&quot;&gt;Continue reading &quot;IDENTITY или SEQUENCE в SQL Server – что использовать?&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 02 Aug 2026 09:45:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3482.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: enable_indexscan и enable_bitmapscan</title>
    <link>https://sql-ex.ru/blogs/?/GUC-enable_indexscan-enable_bitmapscan.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-enable_indexscan-enable_bitmapscan.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3480</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3480</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Christophe Pettus, &lt;a href=&quot;https://postgr.es/p/9nd&quot;&gt;All Your GUCs in a Row: enable_indexscan and enable_bitmapscan&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Ещё два переключателя планировщика из семейства &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;enable_*&lt;/span&gt;&lt;/code&gt;, и они идут вместе, потому что то, что они отключают, в обоих случаях является индексом, — разница заключается в том, как используется индекс. Оба включены по умолчанию, оба имеют контекст &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;user&lt;/span&gt;&lt;/code&gt;, и оба несут предупреждение из семейства параметров &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;enable_*&lt;/span&gt;&lt;/code&gt; от &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;enable_async_append&lt;/span&gt;&lt;/code&gt;: это диагностические инструменты, а не регулировочные ручки. Вы переключаете их в сеансе, чтобы увидеть второй выбор планировщика, а не в &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;postgresql.conf&lt;/span&gt;&lt;/code&gt;, чтобы принудительно навязать своё решение.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Причина рассматривать их как пару заключается в том, что понимание того, когда обращаться к одному из них, требует понимания границы между ними.&lt;/p&gt;&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-enable_indexscan-enable_bitmapscan.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: enable_indexscan и enable_bitmapscan&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 30 Jul 2026 14:17:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3480.html</guid>
    
</item>
<item>
    <title>Проблемы параллелизма SQL Server с планами одновременно выполняющихся запросов</title>
    <link>https://sql-ex.ru/blogs/?/SQL-Server.html</link>
            <category>Optimization</category>
            <category>T-SQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/SQL-Server.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3479</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3479</wfw:commentRss>
    

    <author>nospam@example.com (Sergey Moiseenko)</author>
    <content:encoded>
    &lt;p style=&quot;margin: 0px 25px; font-size: 9pt;&quot;&gt;Пересказ статьи &lt;a class=&quot;let&quot; href=&quot;https://www.mssqltips.com/sqlservertip/11619/sql-server-concurrency-issues-with-parallel-query-plans/&quot;&gt;Mehdi Ghapanvari. SQL Server Concurrency Issues with Parallel Query Plans&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
Параллелизм может уменьшить способность одновременного выполнения запросов. Это веская причина не позволять SQL Server агрессивно выполнять запросы в параллельном режиме. В этом совете я создам демонстрацию, чтобы показать, что параллелизм снижает производительность запросов на сервере с высоким уровнем конкуренции.&lt;br /&gt;
&lt;br /&gt;
Параллелизм позволяет SQL Server выполнять запросы на нескольких ядрах ЦП одновременно. Оптимизатор запросов определяет, стоит ли выполнять запрос параллельно или нет на основании стоимости. Если запрос сложный, содержит дорогие операции (такие как сортировка, группировка и т.п.) и обрабатывает много строк, то это с большей вероятностью  приведет к параллельному плану, чем простой запрос, который обрабатывает несколько строк.&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/SQL-Server.html#extended&quot;&gt;Continue reading &quot;Проблемы параллелизма SQL Server с планами одновременно выполняющихся запросов&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 29 Jul 2026 09:51:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3479.html</guid>
    
</item>
<item>
    <title>Ответы на вопросы относительно удаленных столбцов</title>
    <link>https://sql-ex.ru/blogs/?/unknown.html</link>
            <category>T-SQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/unknown.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3478</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3478</wfw:commentRss>
    

    <author>nospam@example.com (Sergey Moiseenko)</author>
    <content:encoded>
    &lt;p style=&quot;margin: 0px 25px; font-size: 9pt;&quot;&gt;Пересказ статьи &lt;a class=&quot;let&quot; href=&quot;https://www.sqlservercentral.com/articles/answering-questions-on-dropped-columns&quot;&gt;Cláudio Silva. Answering Questions On Dropped Columns&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
В этой статье я отвечу на пару вопросов из предыдущих публикаций об удалении столбцов.&lt;br /&gt;
&lt;br /&gt;
Если вы не читали предыдущих постов по этой теме, вот их список:&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;&lt;a class=&quot;let&quot; target=&quot;_blank&quot; href=&quot;https://sql-ex.ru/blogs/?/Chto_proishodit_pri_udalenii_stolbca_v_tablice_SQL_Server_Gde_moe_prostranstvo.html&quot;&gt;Что происходит при удалении столбца в таблице SQL Server? Где мое пространство?&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;&lt;a class=&quot;let&quot; target=&quot;_blank&quot; href=&quot;https://claudioessilva.eu/2024/07/09/Identify-Tables-With-Dropped-Columns/&quot;&gt;Определить таблицы с удаленными столбцами&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;&lt;a class=&quot;let&quot; target=&quot;_blank&quot; href=&quot;https://claudioessilva.eu/2024/08/05/How-much-space-can-I-expect-to-recover-from-a-rebuild-after-dropping-a-column/&quot;&gt;Сколько места могу я ожидать получить в результате перестройки после удаления столбца?&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;
&lt;h2&gt;Комментарии&lt;/h2&gt;&lt;br /&gt;
В &lt;a class=&quot;let&quot; target=&quot;_blank&quot; href=&quot;https://www.sqlservercentral.com/forums/topic/what-happens-when-we-drop-a-column-on-a-sql-server-table-wheres-my-space&quot;&gt;разделе комментариев&lt;/a&gt; к первой статье читатель спрашивает:&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Можно ли считать, что будущие вставки (после удаления столбца) не будут занимать пространство удаленного столбца?&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
и еще&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Если страница перезаписывается (например, в результате обычной вставки или обновления), используется ли тогда повторно пространство, занимаемое удаленным столбцом?&lt;/em&gt;&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/unknown.html#extended&quot;&gt;Continue reading &quot;Ответы на вопросы относительно удаленных столбцов&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 27 Jul 2026 15:20:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3478.html</guid>
    
</item>
<item>
    <title>Оптимизация заданий загрузки данных в SQL Server: стратегии реализации в рабочей среде</title>
    <link>https://sql-ex.ru/blogs/?/SQL-Server.html</link>
            <category>Optimization</category>
            <category>T-SQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/SQL-Server.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3476</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3476</wfw:commentRss>
    

    <author>nospam@example.com (Sergey Moiseenko)</author>
    <content:encoded>
    &lt;p style=&quot;margin: 0px 25px; font-size: 9pt;&quot;&gt;Пересказ статьи &lt;a class=&quot;let&quot; href=&quot;https://dzone.com/articles/optimizing-data-loader-jobs-in-sql-server&quot;&gt;Arvind Toorpu. Optimizing Data Loader Jobs in SQL Server: Production Implementation Strategies&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
За последние 15 лет, работая с SQL Server в различных областях, я видел, что производительность загрузки данных по-прежнему остается одной из наиболее важных - и очень часто недооцененных областей в администрировании баз данных. Являются ли они ночными загрузками миллионов транзакций, интеграцией данных из множества источников или перемещением терабайтов данных между средами, неэффективная обработка загрузки быстро приводит расползанию проблем: пропущенные соглашения об уровне обслуживания, увеличение размера окон обслуживания, устаревшие отчеты и растущее недовольство как пользователей, так и руководства.&lt;br /&gt;
&lt;br /&gt;
На самом деле SQL Server предоставляет надежный набор функций и инструментов, которые могут в значительной степени улучшить производительность загрузки данных при правильном использовании. Я применял эти методы в сфере финансовых услуг, здравоохранения, розничной торговли и производства, постоянно добиваясь повышения производительности от трех до десяти раз. В следующем разделе я пройдусь по практическим, протестированным в рабочей среде подходам ускорения загрузки данных. Сделайте их надежной частью вашей платформы данных. &lt;br /&gt;
&lt;br /&gt;
&lt;img src=&quot;https://sql-ex.ru/blogs/wp-content/uploads/2026/07/dataload_0.jpeg&quot; /&gt;&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/SQL-Server.html#extended&quot;&gt;Continue reading &quot;Оптимизация заданий загрузки данных в SQL Server: стратегии реализации в рабочей среде&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 23 Jul 2026 18:39:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3476.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: enable_async_append</title>
    <link>https://sql-ex.ru/blogs/?/GUC-enable_async_append.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-enable_async_append.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3474</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3474</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Christophe Pettus, &lt;a href=&quot;https://postgr.es/p/9n9&quot;&gt;All Your GUCs in a Row: enable_async_append&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Мы подошли к семейству параметров &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;enable_*&lt;/span&gt;&lt;/code&gt; — более чем двум десяткам переключателей планировщика, которые по умолчанию включены и объединены одним важнейшим свойством: они не являются регулировочными ручками. Это диагностические инструменты. Каждый из них отключает способность планировщика рассматривать определённый тип плана, и причина, по которой такая возможность существует, заключается в том, чтобы инженер, преследующий «плохой» план, мог заставить планировщик показать свою вторую альтернативу, — спросить: «Что бы ты сделал, если бы этот тип узла был недоступен?» Отключение одного из них в рабочей среде для ускорения запроса почти всегда является ошибкой; на самом деле вы хотите понять, почему планировщик предпочёл план, который вам не понравился, и эти переключатели — способ его «допроса». Каждая статья в этом семействе будет повторять некоторую версию этого предупреждения, потому что каждый из этих параметров используется неправильно одинаковым образом.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-enable_async_append.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: enable_async_append&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 21 Jul 2026 09:44:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3474.html</guid>
    
</item>
<item>
    <title>Истории про отказ multixact из-за циклического переполнения, повреждение TOAST и оборванные страницы</title>
    <link>https://sql-ex.ru/blogs/?/multixact-,-TOAST.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/multixact-,-TOAST.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3473</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3473</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: &lt;a href=&quot;https://payalsingh.me/&quot;&gt;Payal Singh&lt;/a&gt;,&lt;a href=&quot;https://payalsingh.me/blog/2026/06/16/postgres-war-stories-2-silent-corruption/&quot;&gt;Postgres War Stories Part 2: multixact wraparound, TOAST corruption, and torn pages&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;&lt;em&gt;Три способа, которыми внутри Postgres портятся данные, не оставляя следов в журнале, и задачи, которые выявляют это раньше пользователей.&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;&lt;a href=&quot;https://payalsingh.me/blog/2026/05/27/postgres-war-stories-1-the-bugs-that-arent-postgres/&quot;&gt;Первая част&lt;/a&gt;ь была посвящена сбоям, которые начинаются на уровень ниже Postgres: ядро, glibc, аллокатор страниц. Эта статья — о худшем классе, когда сбой происходит внутри самого Postgres. Журналы чисты. Восстановление никогда не запускается. И запрос либо возвращает неверный ответ, либо «роняет» строки, которые всё ещё лежат на диске.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Три инцидента ниже не имеют ничего общего, кроме того, что делает их опасными: нет ошибки, на которую можно было бы настроить оповещение. Переполнение счётчика multixact, отсутствующий фрагмент TOAST, оборванная страница на диске — ничто из этого не подаёт сигнала. База данных не знает, что она неверна. Вы либо планируете задачу, которая будет это искать, либо узнаёте об этом, когда пользователь сообщает, что строки, которую он клянётся, что она была, больше нет.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Так что эта статья — наполовину про инциденты, наполовину про обнаружение. Обнаружение — вот в чём суть.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/multixact-,-TOAST.html#extended&quot;&gt;Continue reading &quot;Истории про отказ multixact из-за циклического переполнения, повреждение TOAST и оборванные страницы&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 19 Jul 2026 13:51:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3473.html</guid>
    
</item>
<item>
    <title>Почему в Postgres нет synchronous_commit=remote_receive?</title>
    <link>https://sql-ex.ru/blogs/?/Postgres-synchronous_commitremote_receive.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/Postgres-synchronous_commitremote_receive.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3471</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3471</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: &lt;a href=&quot;https://www.blogger.com/profile/02748267202194708735&quot;&gt;Robins Tharakan&lt;/a&gt;,&lt;a href=&quot;https://www.robins.in/2026/06/why-postgres-doesnt-have-remotereceive.html&quot;&gt;Why Postgres Doesn&#039;t Have synchronous_commit=remote_receive?&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;В распределённых средах баз данных баланс между долговечностью и производительностью — это постоянная борьба. Параметр &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;synchronous_commit&lt;/span&gt;&lt;/code&gt; в PostgreSQL находится в центре этого вопроса, давая администраторам возможность выбирать, когда именно команда &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;COMMIT&lt;/span&gt;&lt;/code&gt; возвращает успех клиенту.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Идея &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;remote_receive&lt;/span&gt;&lt;/code&gt; родилась из простого вопроса: даёт ли пропуск записи на диск на резервном сервере измеримый, реальный прирост производительности? Ожидая только получения байтов WAL в памяти резервного сервера, можно ли получить значительное улучшение по сравнению с &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;remote_write&lt;/span&gt;&lt;/code&gt;? Я взялся реализовать и протестировать эту возможность, чтобы выяснить это.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;За этим последовало путешествие по задержкам сети, кэшу страниц ОС, «перегрузке» планировщика ЦП и шуму при бенчмаркинге. Вот подробности реализации, тестов, первоначальных аномалий и итоговых результатов.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/Postgres-synchronous_commitremote_receive.html#extended&quot;&gt;Continue reading &quot;Почему в Postgres нет synchronous_commit=remote_receive?&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sat, 18 Jul 2026 13:22:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3471.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: effective_io_concurrency</title>
    <link>https://sql-ex.ru/blogs/?/GUC-effective_io_concurrency.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-effective_io_concurrency.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3472</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3472</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Christophe Pettus, &lt;a href=&quot;https://postgr.es/p/9mD&quot;&gt;All Your GUCs in a Row: effective_io_concurrency&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Большинство параметров, меняющихся между версиями, меняют своё значение по умолчанию. &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;effective_io_concurrency&lt;/span&gt;&lt;/code&gt; — более редкий случай: он дважды менял своё значение, и то, чем он управляет в PostgreSQL 18, отличается от того, чем он управлял в 17, что в свою очередь отличалось от того, что он означал до 13. Значение, скопированное вами из руководства по настройке 2019 года в современный кластер, не просто устарело — оно может отвечать на вопрос, который PostgreSQL больше не задаёт. Поэтому этот параметр лучше всего объяснять в виде истории. Текущее состояние, чтобы задать точку отсчёта: значение по умолчанию — 16, контекст — &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;user&lt;/span&gt;&lt;/code&gt;, диапазон от 0 до 1000, где 0 отключает функцию.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-effective_io_concurrency.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: effective_io_concurrency&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 19 Jul 2026 13:13:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3472.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: effective_cache_size</title>
    <link>https://sql-ex.ru/blogs/?/GUC-effective_cache_size.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-effective_cache_size.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3470</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3470</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Christophe Pettus, &lt;a href=&quot;https://postgr.es/p/9mB&quot;&gt;All Your GUCs in a Row: effective_cache_size&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Это один из наиболее последовательно неправильно понимаемых параметров PostgreSQL, и непонимание всегда имеет одну и ту же форму: люди верят, что &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;effective_cache_size&lt;/span&gt;&lt;/code&gt; что-то делает с памятью. Он выделяет кэш. Он резервирует оперативную память. Он управляет тем, сколько PostgreSQL держит в памяти. Он не делает ничего из этого. Он не выделяет ничего, не резервирует ничего и вообще не меняет поведение во время выполнения. Это всего лишь одно число, переданное планировщику запросов, и его единственный эффект — изменять то, какие планы планировщик считает дешёвыми. Значение по умолчанию — 4 ГБ, контекст — &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;user&lt;/span&gt;&lt;/code&gt;, и он заслуживает большего, чем обычное количество слов, потому что ошибиться с ним так легко и это так тихо и дорого обходится.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-effective_cache_size.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: effective_cache_size&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sat, 18 Jul 2026 12:34:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3470.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: dynamic_shared_memory_type</title>
    <link>https://sql-ex.ru/blogs/?/GUC-dynamic_shared_memory_type.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-dynamic_shared_memory_type.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3468</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3468</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Christophe Pettus, &lt;a href=&quot;https://postgr.es/p/9ma&quot;&gt;All Your GUCs in a Row: dynamic_shared_memory_type&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;&lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;dynamic_shared_memory_type&lt;/span&gt;&lt;/code&gt; выбирает механизм операционной системы, который PostgreSQL использует для динамической разделяемой памяти — памяти, выделяемой после запуска, в отличие от фиксированной области &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;shared_buffers&lt;/span&gt;&lt;/code&gt;, которая выделяется один раз при загрузке. Контекст — &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;postmaster&lt;/span&gt;&lt;/code&gt;, поэтому для изменения требуется перезапуск, а значение по умолчанию выбирается &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;initdb&lt;/span&gt;&lt;/code&gt; в зависимости от поддержки вашей платформы: &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;posix&lt;/span&gt;&lt;/code&gt; в Linux и большинстве Unix, &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;windows&lt;/span&gt;&lt;/code&gt; в Windows. Вероятно, вы никогда не будете устанавливать его намеренно. Однако вы можете столкнуться с проблемой в контейнере, и это часть, заслуживающая вашего внимания.&lt;/p&gt;&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-dynamic_shared_memory_type.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: dynamic_shared_memory_type&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 17 Jul 2026 17:04:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3468.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: dynamic_library_path</title>
    <link>https://sql-ex.ru/blogs/?/GUC-dynamic_library_path.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-dynamic_library_path.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3467</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3467</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Christophe Pettus, &lt;a href=&quot;https://postgr.es/p/9ma&quot;&gt;All Your GUCs in a Row: dynamic_library_path&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;&lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;dynamic_library_path&lt;/span&gt;&lt;/code&gt; указывает PostgreSQL, где искать загружаемый C-модуль, когда что-то — &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;CREATE FUNCTION ... LANGUAGE C&lt;/span&gt;&lt;/code&gt;, команда &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;LOAD&lt;/span&gt;&lt;/code&gt;, запись в &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;shared_preload_libraries&lt;/span&gt;&lt;/code&gt; — указывает библиотеку по простому имени файла без пути. Значение по умолчанию — &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;$libdir&lt;/span&gt;&lt;/code&gt;, контекст — &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;superuser&lt;/span&gt;&lt;/code&gt;, и большую часть своей жизни этот параметр был тем, к чему никто не прикасался. PostgreSQL 18 дал ему повод снова стать важным, и к этому мы в итоге и придём.&lt;/p&gt;&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-dynamic_library_path.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: dynamic_library_path&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 16 Jul 2026 22:09:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3467.html</guid>
    
</item>
<item>
    <title>Столбцы JSONB и TOAST в Postgres: пособие по производительности</title>
    <link>https://sql-ex.ru/blogs/?/JSONB-TOAST-Postgres.html</link>
            <category>Optimization</category>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/JSONB-TOAST-Postgres.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3466</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3466</wfw:commentRss>
    

    <author>nospam@example.com (Sergey Moiseenko)</author>
    <content:encoded>
    &lt;p style=&quot;margin: 0px 25px; font-size: 9pt;&quot;&gt;Пересказ статьи &lt;a class=&quot;let&quot; href=&quot;https://www.snowflake.com/en/engineering-blog/postgres-jsonb-columns-and-toast/&quot;&gt;Paul Ramsey. Postgres JSONB Columns and TOAST: A Performance Guide&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
PostgreSQL имеет большой набор функций, ориентированных на пользователя, которые работают в самых разных случаях использования — со сложной абстракцией под капотом.&lt;br /&gt;
&lt;br /&gt;
Работа с API и массивами с типом данных jsonb становится все более популярной в настоящее время, и хранение фрагментов данных приложения с использованием jsonb становится общим шаблоном проектирования.&lt;br /&gt;
&lt;br /&gt;
Но зачем разбивать объект JSON на строки и столбцы, а затем восстанавливать его позже, чтобы отправить обратно клиенту?&lt;br /&gt;
&lt;br /&gt;
Ответом является эффективность. PostgreSQL наиболее эффективен при работе со строками и столбцами, и сокрытие структуры данных внутри JSON не позволяет движку работать так быстро, как он мог бы.&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/JSONB-TOAST-Postgres.html#extended&quot;&gt;Continue reading &quot;Столбцы JSONB и TOAST в Postgres: пособие по производительности&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 16 Jul 2026 09:03:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3466.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: default_transaction_deferrable</title>
    <link>https://sql-ex.ru/blogs/?/GUC-default_transaction_deferrable.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-default_transaction_deferrable.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3463</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3463</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Christophe Pettus, &lt;a href=&quot;https://postgr.es/p/9ma&quot;&gt;All Your GUCs in a Row: default_transaction_deferrable&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;&lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;default_transaction_deferrable&lt;/span&gt;&lt;/code&gt; устанавливает значение по умолчанию для атрибута транзакции &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;DEFERRABLE&lt;/span&gt;&lt;/code&gt; для новых транзакций. Значение по умолчанию — &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;off&lt;/span&gt;&lt;/code&gt;, контекст — &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;user&lt;/span&gt;&lt;/code&gt;, и атрибут, который он задаёт по умолчанию, не делает ничего, если только не выполнены два других условия, — именно поэтому этот параметр заслуживает нескольких сотен слов, а не одного предложения.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-default_transaction_deferrable.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: default_transaction_deferrable&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 13 Jul 2026 17:48:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3463.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: default_transaction_isolation and default_transaction_read_only</title>
    <link>https://sql-ex.ru/blogs/?/GUC-default_transaction_isolation-and-default_transaction_read_only.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-default_transaction_isolation-and-default_transaction_read_only.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3465</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3465</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Christophe Pettus, &lt;a href=&quot;https://postgr.es/p/9ma&quot;&gt;All Your GUCs in a Row: default_transaction_deferrable&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Оставшиеся два из трёх параметров &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;default_transaction_*&lt;/span&gt;&lt;/code&gt;, завершающие набор, начатый параметром &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;default_transaction_deferrable&lt;/span&gt;&lt;/code&gt;. Каждый из них устанавливает значение по умолчанию для сеанса для одного из трёх свойств транзакции — уровня изоляции, режима доступа и отложенности, — и для всех трёх правило одинаково: область действия GUC редко является той, которая вам нужна. Интересное содержание заключается в том, что означают значения, и для уровня изоляции это больше, чем думает большинство людей.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-default_transaction_isolation-and-default_transaction_read_only.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: default_transaction_isolation and default_transaction_read_only&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 14 Jul 2026 18:20:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3465.html</guid>
    
</item>
<item>
    <title>Аварийное восстановление — это процесс, а не инструмент (Часть 1)</title>
    <link>https://sql-ex.ru/blogs/?/,-1.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/,-1.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3464</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3464</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: &lt;a href=&quot;https://richyen.com/&quot;&gt;Richard Yen&lt;/a&gt;, &lt;a href=&quot;https://richyen.com/postgres/2026/06/15/disaster_recovery_is_a_process.html&quot;&gt;Disaster Recovery is a Process, Not a Tool (Part 1)&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Когда я работал в Turnitin, мы всё ещё находились на спаде бума доткомов. Все спешили выпускать продукты, и кратковременные сбои, конечно, были нежелательны, но считались нормальной частью работы программного обеспечения в интернете. Если сайт был недоступен несколько минут, вы пожимали плечами, разбирались и исправляли.&lt;/p&gt;&lt;br /&gt;
&lt;h2&gt;Ландшафт изменился&lt;/h2&gt;&lt;br /&gt;
&lt;p&gt;Это уже не тот мир, в котором мы живём сейчас. Время безотказной работы стало гораздо более критичным, чем раньше. Пять девяток когда-то были амбициозной целью — теперь четыре девятки для многих команд являются просто ожидаемым стандартом, и даже несколько минут простоя в месяц кажутся большой проблемой. Мы больше не отслеживаем средние значения в наших метриках; мы отслеживаем p99-задержки, потому что нам действительно важно, чтобы последний 1% пользователей получал хороший опыт работы.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Ещё одна вещь, которая изменилась, — это скорость, с которой сбои становятся достоянием общественности. Заметный сбой в вашем сервисе может попасть в социальные сети ещё до того, как ваш дежурный успеет подтвердить получение оповещения. По моему опыту, самые плохие ситуации — это те, когда клиенты узнают о проблеме раньше, чем компания. Это имеет как финансовые, так и репутационные издержки, причём репутационные издержки имеют свойство сохраняться ещё долго после устранения инцидента. Частые сбои подрывают желание пользователей продолжать использовать ваш продукт.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Postgres, конечно, не исключение. Именно в таком мире и должен действовать план аварийного восстановления Postgres.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/,-1.html#extended&quot;&gt;Continue reading &quot;Аварийное восстановление — это процесс, а не инструмент (Часть 1)&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 13 Jul 2026 19:43:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3464.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: default_toast_compression</title>
    <link>https://sql-ex.ru/blogs/?/GUC-default_toast_compression.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-default_toast_compression.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3462</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3462</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Christophe Pettus, &lt;a href=&quot;https://postgr.es/p/9lU&quot;&gt;All Your GUCs in a Row: default_toast_compression&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;&lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;default_toast_compression&lt;/span&gt;&lt;/code&gt; определяет, какой алгоритм PostgreSQL использует для сжатия значений, направляемых в TOAST — внестрочное хранилище для значений полей, слишком больших, чтобы помещаться непосредственно на странице кучи размером 8 КБ. Доступны варианты &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;pglz&lt;/span&gt;&lt;/code&gt; и &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;lz4&lt;/span&gt;&lt;/code&gt;; по умолчанию во всех выпущенных на данный момент версиях используется &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;pglz&lt;/span&gt;&lt;/code&gt;; контекст — &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;user&lt;/span&gt;&lt;/code&gt;, и его можно переопределить для каждого столбца с помощью опции &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;COMPRESSION&lt;/span&gt;&lt;/code&gt; в &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;CREATE TABLE&lt;/span&gt;&lt;/code&gt; или &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;ALTER TABLE&lt;/span&gt;&lt;/code&gt;. Параметр существует начиная с PostgreSQL 14, и более интересный факт заключается в том, что его значение по умолчанию, наконец, скоро изменится.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-default_toast_compression.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: default_toast_compression&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 12 Jul 2026 22:05:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3462.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: default_text_search_config</title>
    <link>https://sql-ex.ru/blogs/?/GUC-default_text_search_config.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-default_text_search_config.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3461</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3461</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Christophe Pettus, &lt;a href=&quot;https://postgr.es/p/9lV&quot;&gt;All Your GUCs in a Row: default_text_search_config&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;&lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;default_text_search_config&lt;/span&gt;&lt;/code&gt; определяет конфигурацию полнотекстового поиска, которую используют функции PostgreSQL для полнотекстового поиска, если вы явно не передаёте им конфигурацию. Значение по умолчанию устанавливается командой &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;initdb&lt;/span&gt;&lt;/code&gt; на основе локали кластера; контекст — &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;user&lt;/span&gt;&lt;/code&gt;. Конфигурация полнотекстового поиска связывает парсер (который разбивает текст на токены) с цепочкой словарей (которые преобразуют токены в лексемы — например, приводят «бегущий» к «бежать», отбрасывают стоп-слова вроде «и»), и каждый вызов &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;to_tsvector&lt;/span&gt;&lt;/code&gt; и &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;to_tsquery&lt;/span&gt;&lt;/code&gt; нуждается в конфигурации для своей работы. Этот параметр используется теми вызовами, которые опускают явное указание конфигурации.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Это звучит как удобство, и в основном так оно и есть, но этот параметр основан на одном из самых элегантных ограничений PostgreSQL, и именно это ограничение и есть суть данной статьи.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-default_text_search_config.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: default_text_search_config&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sat, 11 Jul 2026 11:09:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3461.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: default_tablespace</title>
    <link>https://sql-ex.ru/blogs/?/GUC-default_tablespace.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-default_tablespace.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3460</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3460</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Christophe Pettus, &lt;a href=&quot;https://thebuild.com/blog/all-your-gucs-in-a-row-defaulttablespace/&quot;&gt;All Your GUCs in a Row: default_tablespace&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Сначала о механике, поскольку она кратка: когда &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;default_tablespace&lt;/span&gt;&lt;/code&gt; содержит что-либо, кроме пустой строки, он неявно добавляет предложение &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;TABLESPACE&lt;/span&gt;&lt;/code&gt; к каждой команде &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;CREATE TABLE&lt;/span&gt;&lt;/code&gt; и &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;CREATE INDEX&lt;/span&gt;&lt;/code&gt;, в которой это предложение явно не указано, включая индекс, создаваемый для ограничений &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;UNIQUE&lt;/span&gt;&lt;/code&gt; или &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;PRIMARY KEY&lt;/span&gt;&lt;/code&gt;. Значение по умолчанию — пустая строка, что означает «использовать табличное пространство самой базы данных», а контекст — &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;user&lt;/span&gt;&lt;/code&gt;. Чтобы иметь мнение об этом параметре, нужно иметь мнение о табличных пространствах, и моё, в 2026 году, таково: в основном не используйте. Мы ещё дойдём до этого. Сначала — особенности.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-default_tablespace.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: default_tablespace&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 10 Jul 2026 23:45:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3460.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: default_table_access_method</title>
    <link>https://sql-ex.ru/blogs/?/GUC-default_table_access_method.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-default_table_access_method.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3458</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3458</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Christophe Pettus, &lt;a href=&quot;https://postgr.es/p/9lN&quot;&gt;All Your GUCs in a Row: default_table_access_method&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Небольшая ручка на очень большой двери. &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;default_table_access_method&lt;/span&gt;&lt;/code&gt; определяет метод доступа к таблицам — то есть механизм хранения, если использовать слово, которое все на самом деле подразумевают, — который получают новые таблицы, если в &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;CREATE TABLE&lt;/span&gt;&lt;/code&gt; не указано иное. Значение по умолчанию — &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;heap&lt;/span&gt;&lt;/code&gt;. Контекст — &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;user&lt;/span&gt;&lt;/code&gt;. И для подавляющего большинства кластеров это значение никогда не было иным, потому что для подавляющего большинства кластеров никогда не существовало ничего другого, на что можно было бы его установить. Параметр интересен тем, что он подразумевает: уровень хранения PostgreSQL в принципе подключаем (pluggable).&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-default_table_access_method.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: default_table_access_method&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 09 Jul 2026 12:33:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3458.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: default_statistics_target</title>
    <link>https://sql-ex.ru/blogs/?/GUC-default_statistics_target.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-default_statistics_target.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3457</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3457</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Christophe Pettus, &lt;a href=&quot;https://postgr.es/p/9lK&quot;&gt;All Your GUCs in a Row: default_statistics_target&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;&lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;default_statistics_target&lt;/span&gt;&lt;/code&gt; — один из наиболее рекомендуемых и наименее объясняемых параметров в PostgreSQL. Руководства по настройке говорят: «Увеличьте до 500 для хранилищ данных» с уверенностью, подобной Большой Советской Энциклопедии, и редко поясняют, что означает это число. Значение по умолчанию — 100, диапазон — от 1 до 10 000, контекст — &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;user&lt;/span&gt;&lt;/code&gt;, и то, что это число на самом деле контролирует, — размер трёх структур, которые &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;ANALYZE&lt;/span&gt;&lt;/code&gt; создаёт для каждого столбца. Давайте посмотрим на эти структуры.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-default_statistics_target.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: default_statistics_target&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 08 Jul 2026 11:17:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3457.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: семейство debug_*</title>
    <link>https://sql-ex.ru/blogs/?/GUC-debug_.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-debug_.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3456</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3456</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Christophe Pettus, &lt;a href=&quot;https://thebuild.com/blog/all-your-gucs-in-a-row-the-debug-family/&quot;&gt;All Your GUCs in a Row: the debug_* family&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Двенадцать параметров имеют общий префикс &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;debug_&lt;/span&gt;&lt;/code&gt;, и этот префикс несёт смысловую нагрузку: это собственные средства разработки и контроля качества PostgreSQL, доступные в виде параметров времени выполнения, чтобы &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;buildfarm&lt;/span&gt;&lt;/code&gt; и разработчики ядра могли тестировать различные участки кода без перекомпиляции. Павло Голуб (Pavlo Golub), писавший об одном из них, точно сформулировал правильную позицию: «Я никогда-никогда не прикоснусь к параметру времени выполнения с префиксом &quot;debug&quot; в своих производственных кластерах». В основном это правильно. Давайте разберём эти дюжину параметров по тому, что они на самом деле дают, потому что один-два из них тихо полезны, а остальные вы должны разглядывать с безопасного расстояния.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-debug_.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: семейство debug_*&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 07 Jul 2026 17:48:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3456.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: deadlock_timeout</title>
    <link>https://sql-ex.ru/blogs/?/GUC-deadlock_timeout.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-deadlock_timeout.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3454</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3454</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Christophe Pettus, &lt;a href=&quot;https://postgr.es/p/9lC&quot;&gt;All Your GUCs in a Row: deadlock_timeout&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Название немного вводит в заблуждение. &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;deadlock_timeout&lt;/span&gt;&lt;/code&gt; — это не время, в течение которого PostgreSQL терпит взаимоблокировку, прежде чем её разорвать, — взаимоблокировки прерываются в тот же миг, как только они обнаружены. Это время, которое процесс ожидает блокировку, прежде чем PostgreSQL вообще удосужится проверить наличие взаимоблокировки. Значение по умолчанию — 1 с, контекст — &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;superuser&lt;/span&gt;&lt;/code&gt;, и разрыв между тем, что подразумевает название, и тем, что на самом деле делает параметр, и составляет суть данной статьи.&lt;/p&gt;&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-deadlock_timeout.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: deadlock_timeout&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 06 Jul 2026 21:07:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3454.html</guid>
    
</item>
<item>
    <title>Изучаем PostgreSQL вместе с Grant Fritchey: хранилище данных</title>
    <link>https://sql-ex.ru/blogs/?/PostgreSQL-Grant-Fritchey.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/PostgreSQL-Grant-Fritchey.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3453</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3453</wfw:commentRss>
    

    <author>nospam@example.com (Sergey Moiseenko)</author>
    <content:encoded>
    &lt;p style=&quot;margin: 0px 25px; font-size: 9pt;&quot;&gt;Пересказ статьи &lt;a class=&quot;let&quot; href=&quot;https://www.red-gate.com/simple-talk/databases/postgresql/learning-postgresql-with-grant-data-storage/&quot;&gt;Grant Fritchey. Learning PostgreSQL with Grant: Data Storage&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
Если вы размещаете свои базы данных на виртуальной машине (ВМ) или на каком-то большом железе, одним из наиболее узких мест, с которым вы, вероятно столкнетесь в кластерах PostgreSQL, является ввод/вывод. Когда ввод/вывод находится в центре потенциальных проблем производительности, очень важно понимать, как PostgreSQL управляет им. Я собираюсь начать прямо сейчас с того, как данные хранятся на диске. В следующей статье мы обсудим, как выполняется запись и чтение.&lt;br /&gt;
&lt;br /&gt;
Прежде чем погрузиться в детали, я хочу затронуть пару вопросов, связанных с хранением данных в PostgreSQL. Во-первых, &lt;a class=&quot;let&quot; target=&quot;_blank&quot; href=&quot;https://www.red-gate.com/hub/events/postgresql-101-the-top-10-postgresql-extensions-you-need-to-know-about&quot;&gt;расширения&lt;/a&gt;. Некоторые из наиболее впечатляющих расширений напрямую связаны с хранением данных (глядя на &lt;a class=&quot;let&quot; target=&quot;_blank&quot; href=&quot;https://github.com/timescale/timescaledb&quot;&gt;TimeScale&lt;/a&gt;). Они могут изменить те основы, которые мы собираемся обсуждать здесь. Коли так, каждое из них требует отдельного обсуждения, чтобы понять, как они влияют на хранение в PostgreSQL.&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/PostgreSQL-Grant-Fritchey.html#extended&quot;&gt;Continue reading &quot;Изучаем PostgreSQL вместе с Grant Fritchey: хранилище данных&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 05 Jul 2026 20:11:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3453.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: DateStyle</title>
    <link>https://sql-ex.ru/blogs/?/GUC-DateStyle.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-DateStyle.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3452</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3452</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Christophe Pettus, &lt;a href=&quot;https://thebuild.com/blog/all-your-gucs-in-a-row-datestyle/&quot;&gt;All Your GUCs in a Row: DateStyle&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;После бездны &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;fsync&lt;/span&gt;&lt;/code&gt; — нечто благодушное. &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;DateStyle&lt;/span&gt;&lt;/code&gt; управляет тем, как PostgreSQL выводит даты и как разрешает неоднозначный ввод дат, и единственное, что вам действительно нужно знать о нём: оставьте его в значении &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;ISO&lt;/span&gt;&lt;/code&gt;, а всё остальное — интересные, но маловажные детали.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-DateStyle.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: DateStyle&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 05 Jul 2026 18:10:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3452.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: data_directory_mode</title>
    <link>https://sql-ex.ru/blogs/?/GUC-data_directory_mode.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-data_directory_mode.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3450</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3450</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Christophe Pettus, &lt;a href=&quot;https://postgr.es/p/9lc&quot;&gt;All Your GUCs in a Row: data_directory&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;В чём смысл этого параметра? &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;SHOW data_directory_mode&lt;/span&gt;&lt;/code&gt; сообщает права доступа Unix на каталог данных — &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;0700&lt;/span&gt;&lt;/code&gt; или &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;0750&lt;/span&gt;&lt;/code&gt; — и это всё, что он делает. Он доступен только для чтения; вы не можете его установить. И он сообщает факт, который &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;ls -ld $PGDATA&lt;/span&gt;&lt;/code&gt; сообщил бы вам не хуже. Так зачем же он нужен как GUC?&lt;/p&gt;&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-data_directory_mode.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: data_directory_mode&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 03 Jul 2026 20:41:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3450.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: data_sync_retry</title>
    <link>https://sql-ex.ru/blogs/?/GUC-data_sync_retry.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-data_sync_retry.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3451</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3451</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Christophe Pettus, &lt;a href=&quot;https://postgr.es/p/9lc&quot;&gt;All Your GUCs in a Row: data_sync_retry&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;&lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;data_sync_retry&lt;/span&gt;&lt;/code&gt; — это логический параметр, по умолчанию выключен (&lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;off&lt;/span&gt;&lt;/code&gt;), и его контекст — &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;postmaster&lt;/span&gt;&lt;/code&gt;, так что для его изменения требуется перезапуск. Вы почти наверняка никогда его не измените. Он существует как видимый рубец от самого тревожного события, которое сообщество PostgreSQL когда-либо узнало о своих собственных допущениях относительно долговечности, и чтобы объяснить этот единственный параметр, нам придётся объяснить &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;fsyncgate&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-data_sync_retry.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: data_sync_retry&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sat, 04 Jul 2026 19:26:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3451.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: data_directory</title>
    <link>https://sql-ex.ru/blogs/?/GUC-data_directory.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-data_directory.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3448</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3448</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Christophe Pettus, &lt;a href=&quot;https://postgr.es/p/9lc&quot;&gt;All Your GUCs in a Row: data_directory&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;&lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;data_directory&lt;/span&gt;&lt;/code&gt; указывает расположение каталога данных кластера — того самого каталога, который подразумевают под &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;$PGDATA&lt;/span&gt;&lt;/code&gt;, содержащего &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;base/&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;pg_wal/&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;global/&lt;/span&gt;&lt;/code&gt; и всё остальное. Контекст — &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;postmaster&lt;/span&gt;&lt;/code&gt;: параметр можно задать в &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;postgresql.conf&lt;/span&gt;&lt;/code&gt; или в командной строке, но никогда во время работы. И, как и небольшое число других параметров, его нельзя установить через &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;ALTER SYSTEM&lt;/span&gt;&lt;/code&gt; — по очевидной причине: &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;ALTER SYSTEM&lt;/span&gt;&lt;/code&gt; записывает изменения в &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;postgresql.auto.conf&lt;/span&gt;&lt;/code&gt;, который находится внутри каталога данных, то есть внутри того самого объекта, который вы пытаетесь указать. Нельзя использовать файл внутри «коробки», чтобы сообщить PostgreSQL, где находится эта коробка.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Эта циркулярная зависимость и составляет всю историю данного параметра, так что давайте разберёмся с ней.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-data_directory.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: data_directory&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 02 Jul 2026 21:37:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3448.html</guid>
    
</item>
<item>
    <title>Настройка производительности в PostgreSQL 17: создание таблиц, вставка 10М записей и обнаружение неиспользуемых индексов</title>
    <link>https://sql-ex.ru/blogs/?/PostgreSQL-17-,-10.html</link>
            <category>Optimization</category>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/PostgreSQL-17-,-10.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3447</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3447</wfw:commentRss>
    

    <author>nospam@example.com (Sergey Moiseenko)</author>
    <content:encoded>
    &lt;p style=&quot;margin: 0px 25px; font-size: 9pt;&quot;&gt;Пересказ статьи &lt;a class=&quot;let&quot; href=&quot;https://medium.com/@jramcloud1/28-postgresql-17-performance-tuning-creating-tables-populating-10m-records-and-detecting-42c9c62c0092&quot;&gt;Jeyaram Ayyalusamy. PostgreSQL 17 Performance Tuning: Creating Tables, Populating 10M Records, and Detecting Unused Indexes&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;img src=&quot;https://sql-ex.ru/blogs/wp-content/uploads/2026/07/28_PG_17_1.webp&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
При настройке PostgreSQL большинство разработчиков и администраторов баз данных сосредотачиваются на поиске отсутствующих индексов, чтобы ускорить запросы. Это важный этап, но есть другая сторона медали: иногда вам требуется обнаружить индексы, которых вообще не следует иметь. &lt;br /&gt;
&lt;br /&gt;
Неиспользуемые или избыточные индексы часто упускаются из виду, хотя они могут незаметно снижать производительность системы. В этой статье мы узнаем, почему это происходит, и на практическом примере создания большого набора данных и построения индексов проанализируем, какие из них действительно полезны. &lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/PostgreSQL-17-,-10.html#extended&quot;&gt;Continue reading &quot;Настройка производительности в PostgreSQL 17: создание таблиц, вставка 10М записей и обнаружение неиспользуемых индексов&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 02 Jul 2026 19:27:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3447.html</guid>
    
</item>
<item>
    <title>Файловые дескрипторы: предел ОС, который выводит PostgreSQL из строя</title>
    <link>https://sql-ex.ru/blogs/?/,-PostgreSQL.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/,-PostgreSQL.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3446</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3446</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: &lt;a href=&quot;https://stormatics.tech/author/warda-bibi&quot;&gt;Warda Bibi&lt;/a&gt;, File Descriptors: &lt;a href=&quot;https://stormatics.tech/blogs/file-descriptors-the-os-limit-that-takes-down-postgresql&quot;&gt;The OS Limit That Takes Down PostgreSQL&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Большинство отказов PostgreSQL, связанных с исчерпанием файловых дескрипторов, ошибочно воспринимаются как проблема самой базы данных. Отказ происходит на уровень ниже: ядро исчерпывает файловые дескрипторы, и удар принимает на себя PostgreSQL. В этой статье рассказывается, как это происходит в условиях большого количества подключений, как читать последовательность записей в журнале при возникновении проблемы и как её исправить.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/,-PostgreSQL.html#extended&quot;&gt;Continue reading &quot;Файловые дескрипторы: предел ОС, который выводит PostgreSQL из строя&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 02 Jul 2026 13:37:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3446.html</guid>
    
</item>
<item>
    <title>pg_stat_statements: о чём оно нам говорит</title>
    <link>https://sql-ex.ru/blogs/?/pg_stat_statements.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/pg_stat_statements.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3442</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3442</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Radim Marek, &lt;a href=&quot;https://postgr.es/p/9l3&quot;&gt;pg_stat_statements: everything it tells you&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Расширение &lt;code&gt;pg_stat_statements&lt;/code&gt; — если не первое, то одно из самых используемых в экосистеме PostgreSQL. Оно поставляется в составе &lt;code&gt;contrib&lt;/code&gt; и практически не требует затрат на использование. Большинство из нас обращаются к нему, чтобы ответить на вопрос: что на самом деле делает база данных? Это действительно полезно. Вы можете использовать его, чтобы получить снимок того, что происходило в заданный интервал времени, и быстрее принять решение о том, что исправлять.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/pg_stat_statements.html#extended&quot;&gt;Continue reading &quot;pg_stat_statements: о чём оно нам говорит&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 30 Jun 2026 11:26:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3442.html</guid>
    
</item>

</channel>
</rss>
