<?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>Sun, 06 Sep 2026 05:44: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>CONVERT_IMPLICIT: Почему SQL Server игнорирует ваш индекс</title>
    <link>https://sql-ex.ru/blogs/?/CONVERT_IMPLICIT-SQL-Server.html</link>
            <category>Optimization</category>
            <category>T-SQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/CONVERT_IMPLICIT-SQL-Server.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3535</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3535</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.sqlfingers.com/2026/04/convertimplicit-why-sql-server-is.html&quot;&gt;rebecca@sqlfingers. CONVERT_IMPLICIT: Why SQL Server Is Ignoring Your Index&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
Вы построили индекс и протестировали запрос в SSMS.  Index seek. Идеально. Вы пошли домой.&lt;br /&gt;
&lt;br /&gt;
Между тем ваше приложение сканировало каждую строку в этой таблице, начиная со дня его запуска.&lt;br /&gt;
&lt;br /&gt;
Это CONVERT_IMPLICIT - один из наиболее скрытых убийц производительности в SQL Server. Никаких ошибок. Никаких предупреждений в журнале приложения. Запрос возвращает правильные результаты, а ваш индекс отлично структурирован, но оптимизатор его не использует, поскольку тип данных, приходящих из приложения, не соответствует типу данных столбца - и SQL Server должен преобразовывать каждую строку, прежде чем он сможет выполнить сравнение.&lt;br /&gt;
&lt;br /&gt;
Здесь рассказывается, как найти, понять и доказать разработчику, который продолжает говорить вам, что &quot;все прекрасно работает на моей машине&quot;. &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/CONVERT_IMPLICIT-SQL-Server.html#extended&quot;&gt;Continue reading &quot;CONVERT_IMPLICIT: Почему SQL Server игнорирует ваш индекс&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 06 Sep 2026 08:44:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3535.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=3533</wfw:comment>

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

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;SHRIDHAR KHANAL: &lt;a href=&quot;https://stormatics.tech/blogs/the-right-way-to-give-a-third-party-dba-access-to-your-postgresql-database&quot;&gt;The Right Way to Give a Third-Party DBA Access to Your PostgreSQL Database&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Предоставление доступа к вашей базе данных PostgreSQL внешней команде — это решение, которое заслуживает некоторого обдумывания. Самый простой вариант — передать учётную запись суперпользователя, но это редко бывает правильным. Лучший подход — создать выделенную роль только с теми привилегиями, которые им действительно нужны, и это займёт всего несколько минут.&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/?/PostgreSQL.html#extended&quot;&gt;Continue reading &quot;Правильный способ предоставить доступ к вашей базе данных PostgreSQL стороннему администратору&quot;&lt;/a&gt;
    </content:encoded>

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

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3532</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-fsync/&quot;&gt;All Your GUCs in a Row: fsync&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;fsync — это логический параметр, по умолчанию включён, его контекст — sighup, поэтому его можно изменить перезагрузкой конфигурации без перезапуска. Это также самая опасная настройка в postgresql.conf. Большинство параметров из этой серии при неправильной установке стоят вам плохого плана или некоторой потраченной впустую памяти. Этот же параметр при неправильной установке стоит вам кластера.&lt;/p&gt;&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-fsync.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: fsync&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 04 Sep 2026 11:34:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3532.html</guid>
    
</item>
<item>
    <title>GIN-индексы в PostgreSQL</title>
    <link>https://sql-ex.ru/blogs/?/GIN-PostgreSQL.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GIN-PostgreSQL.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3531</wfw:comment>

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

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Klaus Aschenbrenner: &lt;a href=&quot;https://www.sqlpassion.at/archive/2026/01/12/gin-indexes-in-postgresql/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=gin-indexes-in-postgresql&quot;&gt;GIN Indexes in PostgreSQL&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Если вы пришли из SQL Server (как в моём случае), индексы PostgreSQL могут показаться сначала знакомыми — существуют B-tree индексы, составные индексы, покрывающие индексы. А затем вы сталкиваетесь с запросами вроде:&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre lang=&quot;sql&quot;&gt;&lt;code&gt;WHERE payload @&amp;gt; &#039;{&quot;type&quot;:&quot;payment&quot;,&quot;status&quot;:&quot;failed&quot;}&#039;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;или:&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre lang=&quot;sql&quot;&gt;&lt;code&gt;WHERE tsv @@ plainto_tsquery(&#039;postgresql&#039;)&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;В этот момент большинство разработчиков SQL Server задают два вопроса:&lt;/p&gt;&lt;br /&gt;
&lt;ol&gt;&lt;br /&gt;
    &lt;li&gt;Что это за операторы?&lt;/li&gt;&lt;br /&gt;
    &lt;li&gt;Почему для этого PostgreSQL требуется совершенно другой тип индекса?&lt;/li&gt;&lt;br /&gt;
&lt;/ol&gt;&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GIN-PostgreSQL.html#extended&quot;&gt;Continue reading &quot;GIN-индексы в PostgreSQL&quot;&lt;/a&gt;
    </content:encoded>

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

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3530</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-from_collapse_limit/&quot;&gt;All Your GUCs in a Row: from_collapse_limit&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Почти никто не использует форму запроса, которой управляет этот параметр:&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre lang=&quot;sql&quot;&gt;&lt;code&gt;SELECT &amp;#42; FROM x, y, (SELECT &amp;#42; FROM a, b, c WHERE something) AS ss&lt;br /&gt;
WHERE somethingelse;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Но вы постоянно создаёте её, не желая того. Ссылка на представление, содержащее соединение, приводит к тому, что определение представления подставляется вместо ссылки, и планировщик видит именно это: подзапрос в вашем списке FROM. Вложенные представления, SQL, сгенерированный ORM, и всё, что построено из многократно используемых фрагментах запросов, попадает к планировщику в этой форме. from_collapse_limit решает, что планировщик будет с этим делать.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-from_collapse_limit.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: from_collapse_limit&quot;&lt;/a&gt;
    </content:encoded>

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

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3529</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-file_extend_method/&quot;&gt;All Your GUCs in a Row: file_extend_method&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;file_extend_method — это «запасной выход» в тушке регулятора настройки. Он существует для одной цели: позволить вам отключить оптимизацию PostgreSQL 16 на тех файловых системах, где эта оптимизация вела себя некорректно.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-file_extend_method.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: file_extend_method&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 02 Sep 2026 14:46:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3529.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=3528</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3528</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/11644/composite-index-in-sql-server/&quot;&gt;Deepak Vohra. Why use a Composite Index in SQL Server&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
Запросы SQL могут выполняться долго, особенно на больших таблицах, при отсутствии надлежащего индексирования. Полное сканирование таблицы может быть затратной операцией, когда все, чего хочет пользователь, - это извлечь небольшое число строк на основе нескольких столбцов и фильтра WHERE. Как правильно проиндексировать наши таблицы для поддержки запросов по нескольким столбцам?&lt;br /&gt;
&lt;br /&gt;
В этой статье я объясню, как использовать составной индекс для уменьшения стоимости тех запросов, которые используют фильтрацию по всем столбцам или по подмножеству столбцов. Уменьшение стоимости означает более быстрый запрос.&lt;br /&gt;
&lt;br /&gt;
Не существует специальной настройки, требуемой для использования составных индексов. SQL Server поддерживает составные индексы. Для демонстрации функциональности я использую SQL Server 2022, исполняемый на Windows 10, с SQL Server Management Studio (SSMS) 2022. &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, 02 Sep 2026 09:06:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3528.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: file_copy_method</title>
    <link>https://sql-ex.ru/blogs/?/GUC-file_copy_method.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-file_copy_method.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3527</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3527</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-file_copy_method/&quot;&gt;All Your GUCs in a Row: file_copy_method&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;file_copy_method —  это перечисление из двух значений с совершенно невероятной отдачей. Одна из его настроек позволяет копировать базу данных примерно за долю секунды, независимо от того, имеет ли база данных размер один гигабайт или один терабайт. Другая — это способ, которым PostgreSQL всегда это делал. Перечисление является новым в PostgreSQL 18, и интересное значение — clone.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-file_copy_method.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: file_copy_method&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 01 Sep 2026 12:51:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3527.html</guid>
    
</item>
<item>
    <title>Обновление PostgreSQL с 9.6 до 17 с помощью pg_upgrade</title>
    <link>https://sql-ex.ru/blogs/?/PostgreSQL-9.6-17-pg_upgrade.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/PostgreSQL-9.6-17-pg_upgrade.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3526</wfw:comment>

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

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;&lt;a href=&quot;https://stormatics.tech/author/shridhar-khanal&quot;&gt;SHRIDHAR KHANAL&lt;/a&gt;: &lt;a href=&quot;https://stormatics.tech/blogs/upgrading-postgresql-9-6-to-17-with-pg_upgrade&quot;&gt;Upgrading PostgreSQL 9.6 to 17 with pg_upgrade&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;При обновлении между основными версиями PostgreSQL есть несколько способов. Дамп и восстановление (dump/restore) — самый простой с точки зрения понимания, но время простоя растёт прямо пропорционально размеру базы данных, поэтому для всего, что больше нескольких терабайт, этот вариант не подходит. Логическая репликация позволяет добиться почти нулевого времени простоя, но она работает только начиная с PostgreSQL 10; если ваш исходный кластер работает на версии ниже 10, этот путь в нативном виде недоступен. Остаётся pg_upgrade — инструмент, поддерживаемый сообществом для обновления основных версий «на месте». С флагом –link он создаёт жёсткие ссылки вместо копирования файлов данных, поэтому сам шаг обновления остаётся быстрым, независимо от размера базы данных.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Эта статья основан на обновлении с версии 9.6 до 17 на Ubuntu с использованием pg_upgrade. Я проведу вас через каждый этап, отмечу моменты, которые застают людей врасплох, и поделюсь проверочными запросами, которые мы выполняем после завершения обновления.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/PostgreSQL-9.6-17-pg_upgrade.html#extended&quot;&gt;Continue reading &quot;Обновление PostgreSQL с 9.6 до 17 с помощью pg_upgrade&quot;&lt;/a&gt;
    </content:encoded>

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

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3525</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-extra_float_digits/&quot;&gt;All Your GUCs in a Row: extra_float_digits&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;extra_float_digits — это настройка, чья задача изменилась под ней. На протяжении большей части истории PostgreSQL она принуждала к выбору между выводом чисел с плавающей точкой, который был удобен для чтения, и выводом, который был абсолютно точным, и нельзя было иметь и то, и другое. Начиная с PostgreSQL 12 вам больше не нужно выбирать, поэтому параметр, к которому вы, возможно, привыкли прибегать, теперь вам редко понадобится.&lt;/p&gt;&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-extra_float_digits.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: extra_float_digits&quot;&lt;/a&gt;
    </content:encoded>

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

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3524</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-external_pid_file/&quot;&gt;All Your GUCs in a Row: external_pid_file&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;PostgreSQL уже записывает PID-файл. Каждый раз при запуске postmaster он помещает postmaster.pid в каталог данных и удаляет его при чистом завершении работы. Этот файл является блокировкой, которая предотвращает запуск второго postmaster с тем же каталогом данных, и содержит восемь строк с деталями работающего экземпляра: PID, каталог данных, время запуска, порт, каталог сокетов и так далее. external_pid_file не заменяет его. Он просит postmaster записать второй, гораздо меньший файл в другом месте.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-external_pid_file.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: external_pid_file&quot;&lt;/a&gt;
    </content:encoded>

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

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3521</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-extension_control_path/&quot;&gt;All Your GUCs in a Row: extension_control_path&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;На протяжении всей истории PostgreSQL до настоящего момента расширение должно было находиться ровно в одном месте. CREATE EXTENSION foo читал foo.control из встроенного каталога расширений, на который указывает pg_config --sharedir, и нигде больше не искал. Если вы хотели, чтобы расширение было доступно, его файлы должны были находиться в этом каталоге, что на практике означало установку от root в системное дерево или встраивание в образ. extension_control_path, новый в PostgreSQL 18, отменяет это допущение.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-extension_control_path.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: extension_control_path&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 28 Aug 2026 15:39:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3521.html</guid>
    
</item>
<item>
    <title>7 ошибок Python, которые делают ваш код медленным (и как их исправить)</title>
    <link>https://sql-ex.ru/blogs/?/7-Python,.html</link>
            <category>Python</category>
    
    <comments>https://sql-ex.ru/blogs/?/7-Python,.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3520</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3520</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://python.plainenglish.io/7-python-mistakes-that-make-your-code-slow-and-how-to-fix-them-eb010e26096c&quot;&gt;Sarikasharma. 7 Python Mistakes That Make Your Code Slow (And How to Fix Them)&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
Когда люди говорят, что Python медленный, они обычно обвиняют язык.&lt;br /&gt;
&lt;br /&gt;
В действительности это часто зависит от того, как мы пишем код.&lt;br /&gt;
&lt;br /&gt;
Python является выразительным, читабельным и мощным. Но небольшие ошибки в структуре и обработке данных могут незаметно влиять на производительность...особенно в серверных системах или приложениях с большим объемом данных.&lt;br /&gt;
&lt;br /&gt;
Вот семь распространенных ошибок Python, которые делают ваш код медленней, чем он мог бы быть, и то, как их исправить.&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/7-Python,.html#extended&quot;&gt;Continue reading &quot;7 ошибок Python, которые делают ваш код медленным (и как их исправить)&quot;&lt;/a&gt;
    </content:encoded>

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

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3519</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-exit_on_error/&quot;&gt;All Your GUCs in a Row: exit_on_error&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;PostgreSQL сортирует свои проблемы по степени серьёзности. ERROR прерывает текущий оператор и откатывает транзакцию, но сессия продолжает жить; вы выполняете ROLLBACK и продолжаете работать. FATAL завершает сессию, разрывая это одно подключение, пока сервер работает дальше. PANIC останавливает весь сервер. В нормальной работе граница между «ваш оператор не выполнился» и «ваше подключение потеряно» проходит между ERROR и FATAL, и почти всё, что идёт не так в повседневном SQL — опечатка, нарушение ограничения, деление на ноль — является всего лишь ERROR.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-exit_on_error.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: exit_on_error&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 27 Aug 2026 16:47:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3519.html</guid>
    
</item>
<item>
    <title>Что означают .ready и .done, и почему WAL задерживается</title>
    <link>https://sql-ex.ru/blogs/?/.ready-.done,-WAL.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/.ready-.done,-WAL.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3518</wfw:comment>

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

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Richard Yen, &lt;a href=&quot;https://richyen.com/postgres/2026/07/06/are_you_ready.html&quot;&gt;A practical guide to what .ready and .done mean, and why WAL sticks around&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;9:12 утра в понедельник. Кто-то из вашей команды открывает каталог pg_wal/archive_status/ во время паники по поводу хранилища и видит длинный список файлов, оканчивающихся на .ready. Возникает вопрос, который многие из нас задавали хотя бы раз: «Сломалась ли репликация?» Потоковые реплики всё ещё выглядят в основном нормально, но файлы .ready продолжают накапливаться, использование диска продолжает расти, и никто до конца не уверен, что на самом деле означают .ready и .done.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Что такое .ready и какие (если вообще какие) действия мне нужно предпринять? Давайте поговорим об этом сегодня.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;&lt;strong&gt;Подсказка: Это о доставке WAL&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Представьте доставку WAL как три независимых шага:&lt;/p&gt;&lt;br /&gt;
&lt;ol&gt;&lt;br /&gt;
    &lt;li&gt;Генерация WAL&lt;/li&gt;&lt;br /&gt;
    &lt;li&gt;Транспортировка WAL&lt;/li&gt;&lt;br /&gt;
    &lt;li&gt;Воспроизведение или потребление WAL&lt;/li&gt;&lt;br /&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;archive_command — это один из способов транспортировки. Потоковая репликация — другой. Обратите внимание, что логическая репликация также имеет канал транспортировки, но она транспортирует декодированные данные логических изменений, а не сырые файлы сегментов WAL.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/.ready-.done,-WAL.html#extended&quot;&gt;Continue reading &quot;Что означают .ready и .done, и почему WAL задерживается&quot;&lt;/a&gt;
    </content:encoded>

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

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3517</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-event_triggers/&quot;&gt;All Your GUCs in a Row: event_triggers&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Событийный триггер (event trigger) срабатывает на события базы данных, а не на изменения строк: на ddl_command_start, sql_drop, table_rewrite и, начиная с PostgreSQL 17, на login. Они используются для аудита DDL или наложения запрета на DDL, и они идут с хорошо известным способом выстрелить себе в ногу. Напишите триггер на ddl_command_start, функция которого вызывает исключение, и теперь каждая команда DDL в базе данных завершается ошибкой, включая DROP EVENT TRIGGER, который вы использовали бы для его удаления. Документация содержит ровно этот пример — функцию abort_any_command, настроенную на прерывание всего, предположительно для того, чтобы вы узнали форму ошибки, когда уже её совершили.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: &quot;&lt;/a&gt;
    </content:encoded>

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

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3516</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-event_source/&quot;&gt;All Your GUCs in a Row: event_source&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;event_source — это параметр для Windows, что означает, что для большинства читающих это не делает ровно ничего. Если вы запускаете PostgreSQL на Linux или в управляемом сервисе, там нет журнала событий Windows, с которым он мог бы взаимодействовать, и эта строка навсегда остаётся со значением по умолчанию. То, что следует далее, предназначено для меньшинства пользователей Windows, и сводится к одному факту, который стоит знать.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-event_source.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: event_source&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 25 Aug 2026 16:04:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3516.html</guid>
    
</item>
<item>
    <title>Посмотрим, что делает VACUUM на уровне страницы</title>
    <link>https://sql-ex.ru/blogs/?/,-VACUUM.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/,-VACUUM.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3511</wfw:comment>

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

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Radim Marek: &lt;a href=&quot;https://postgr.es/p/9ol&quot;&gt;VACUUM at the Page Level&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;В &lt;a href=&quot;https://sql-ex.ru/blogs/?/HOT_UPDATE_v_PostgreSQL.html&quot;&gt;статье о HOT-обновлениях в Postgres&lt;/a&gt; мы рассмотрели, как обрезка страниц (page pruning) очищает HOT-цепочки — элегантное сокращение, с помощью которого PostgreSQL освобождает место мёртвых кортежей во время обычных операций чтения. И всё это без ожидания фонового процесса. Но обрезка — это именно сокращение. Она работает только в пределах одной страницы и только для кортежей, обновлённых через HOT. Для всего остального (холодные обновления, затрагивающие индексированные столбцы, обычные DELETE, очистка записей индексов, регистрация в карте свободного пространства, обслуживание карты видимости) необходим VACUUM.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Эта статья не будет повторять то, что VACUUM делает с эксплуатационной точки зрения. Статья &lt;a href=&quot;https://boringsql.com/posts/deletes-are-difficult/&quot;&gt;&lt;em&gt;DELETEs are difficult&lt;/em&gt;&lt;/a&gt; охватывает настройку autovacuum, распределение рабочих процессов и эксплуатационную сторону очистки мёртвых кортежей. Здесь мы будем наблюдать за работой VACUUM побайтово. Мы сделаем снимок страницы до и после каждого этапа, отслеживая, что именно меняется в заголовке страницы, указателях строк, заголовках кортежей, карте свободного пространства и карте видимости. Инструменты всё те же: pageinspect, pg_visibility и pg_freespacemap.&lt;/p&gt;&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/,-VACUUM.html#extended&quot;&gt;Continue reading &quot;Посмотрим, что делает VACUUM на уровне страницы&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sat, 22 Aug 2026 13:12:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3511.html</guid>
    
</item>
<item>
    <title>VACUUM — это ложь (о ваших индексах)</title>
    <link>https://sql-ex.ru/blogs/?/VACUUM.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/VACUUM.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3514</wfw:comment>

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

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: Radim Marek: &lt;a href=&quot;https://boringsql.com/posts/vacuum-is-lie/&quot;&gt;VACUUM Is a Lie (About Your Indexes)&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Существует распространённое заблуждение, которое беспокоит большинство разработчиков, использующих PostgreSQL: настройте VACUUM или запустите VACUUM, и ваша база данных останется здоровой. Мёртвые кортежи будут очищены. Идентификаторы транзакций переработаны. Пространство освобождено. Дальнейших действий не требуется.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Но есть пара «грязных» секретов, о которых люди не знают. Первый из них заключается в том, что VACUUM лжёт вам о ваших индексах.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/VACUUM.html#extended&quot;&gt;Continue reading &quot;VACUUM — это ложь (о ваших индексах)&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 24 Aug 2026 19:33:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3514.html</guid>
    
</item>
<item>
    <title>Любопытный случай с display(df)</title>
    <link>https://sql-ex.ru/blogs/?/displaydf.html</link>
            <category>Python</category>
    
    <comments>https://sql-ex.ru/blogs/?/displaydf.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3515</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3515</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://blog.dataengineerthings.org/the-curious-case-of-display-df-d919d7a0f13d&quot;&gt;Karthik. The curious case of display(df)&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
Вы просто хотите посмотреть ваши данные. Вы быстро набираете display(df) в ячейке notebook и жмете Выполнить. Это кажется совершенно безобидно - кроме того, это всего лишь предварительный просмотр вашего фрейма данных, не так ли?&lt;br /&gt;
&lt;br /&gt;
Но через несколько мгновений ваш кластер начинает вращаться, ячейка работает намного дольше, чем ожидалось, и ваш браузер может даже заикаться.&lt;br /&gt;
&lt;br /&gt;
Хотя display() является фантастическим инструментом для интерактивного исследования, но, если слишком сильно полагаться на него, он может незаметно задушить ваши задания Apache Spark. Давайте заглянем под капот, чтобы точно выяснить, что происходит, когда вы вызываете display(), почему все замедляется, и как простое переключение на show() может радикально улучшить вашу производительность.&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/displaydf.html#extended&quot;&gt;Continue reading &quot;Любопытный случай с display(df)&quot;&lt;/a&gt;
    </content:encoded>

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

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3513</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-escape_string_warning/&quot;&gt;All Your GUCs in a Row: escape_string_warning&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;escape_string_warning включён по умолчанию уже около двадцати лет, и на современном PostgreSQL, настроенном обычным образом, он никогда не скажет вам ни слова. Это не неисправность. Условие, о котором он предупреждает, перестало быть поведением по умолчанию в 2011 году.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-escape_string_warning.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: escape_string_warning&quot;&lt;/a&gt;
    </content:encoded>

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

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3512</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-enable_tidscan/&quot;&gt;All Your GUCs in a Row: enable_tidscan&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;enable_tidscan — это параметр enable_*, который вы почти наверняка никогда не установите, и на этот раз это не предупреждение, а просто факт о том, как происходят сканирования TID. Вы не натыкаетесь на него случайно, как на последовательное сканирование или сортировку. Сканирование TID появляется только тогда, когда вы явно написали условие на ctid, поэтому тип плана, которым управляет этот параметр, появляется именно тогда, когда вы его запросили, и никак иначе.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;(Для протокола: я за всю свою жизнь ни разу не видел узел tidscan.)&lt;/p&gt;&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-enable_tidscan.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: enable_tidscan&quot;&lt;/a&gt;
    </content:encoded>

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

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

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

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

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

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

    <pubDate>Fri, 21 Aug 2026 18:27:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3508.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=3507</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3507</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;, &lt;a href=&quot;https://stormatics.tech/blogs/postgresql-checkpointer-bug-causing-infinite-retry-loop&quot;&gt;Inside a PostgreSQL Checkpointer Bug: A Production Postmortem&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;В одной из производственных баз данных PostgreSQL 16.8 нашего клиента в журнале начала появляться ошибка, похожая на ошибку памяти:&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre lang=&quot;sql&quot;&gt;&lt;code&gt;ERROR: invalid memory alloc request size&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Ошибка сразу указывала на двух вероятных виновников:&lt;/p&gt;&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
    &lt;li&gt;Исчерпание памяти&lt;/li&gt;&lt;br /&gt;
    &lt;li&gt;Повреждение памяти&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Как оказалось, ни то, ни другое не было причиной. Вместо этого мы столкнулись с известной ошибкой PostgreSQL, которая заперла процесс контрольной точки (checkpointer) в бесконечном цикле повторных попыток. Единственным способом восстановления была принудительная перезагрузка, за которой последовало длительное воспроизведение WAL во процессе аварийного восстановления.&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/?/PostgreSQL.html#extended&quot;&gt;Continue reading &quot;Анализ причин бага контрольной точки PostgreSQL&quot;&lt;/a&gt;
    </content:encoded>

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

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

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

    <pubDate>Thu, 20 Aug 2026 16:41:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3506.html</guid>
    
</item>
<item>
    <title>Сброс последовательности PostgreSQL: объяснение START With против RESTART With или SETVAL</title>
    <link>https://sql-ex.ru/blogs/?/PostgreSQL-START-With-RESTART-With-SETVAL.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/PostgreSQL-START-With-RESTART-With-SETVAL.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3505</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3505</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://databaserookies.wordpress.com/2026/03/21/postgresql-sequence-reset-start-with-vs-restart-with-vs-setval-explained/&quot;&gt;PostgreSQL Sequence Reset: START WITH vs RESTART WITH vs SETVAL Explained&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
Недавно во время одной из миграций Oracle на PostgreSQL с корпоративным клиентом при разработке резервного модуля runbook мы оценивали шаги по выполнению сброса значения последовательности для соответствия исходному значению так, чтобы каждый новый запрос значения с использованием NextVal был новым и не приводил к сбою транзакций.&lt;br /&gt;
&lt;br /&gt;
Это один из критических шагов любой миграции базы данных, т.к. в большинстве случаев последовательность LAST_VALUE не переносится в целевой объект неявно, а значения последовательности должны совпадать с источником, чтобы новая транзакция никогда не завершалась неудачей и приложение работало после переключения.&lt;br /&gt;
&lt;br /&gt;
Мы использовали экспорт SEQUENCE_VALUES в ora2pg для генерации команд DDL, чтобы установить последние значения последовательностей.&lt;br /&gt;
&lt;br /&gt;
Пример команды Ora2pg для экспорта DDL последовательности. &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/PostgreSQL-START-With-RESTART-With-SETVAL.html#extended&quot;&gt;Continue reading &quot;Сброс последовательности PostgreSQL: объяснение START With против RESTART With или SETVAL&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 20 Aug 2026 10:52:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3505.html</guid>
    
</item>
<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>

</channel>
</rss>
