<?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</title>
    <link>https://sql-ex.ru/blogs/</link>
    <description>Новости сайта &quot;Упражнения SQL&quot;, статьи и переводы</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 2.3.5 - http://www.s9y.org/</generator>
    <pubDate>Wed, 16 Sep 2026 09:38:00 GMT</pubDate>

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

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

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3549</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-hot_standby_feedback/&quot;&gt;All Your GUCs in a Row: hot_standby_feedback&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;hot_standby_feedback не устраняет проблему. Он перемещает её — с резервного сервера на первичный, и вопрос о том, является ли это хорошим обменом, — это и есть весь вопрос.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Проблема заключается в конфликтах восстановления, которые отменяют долго выполняющиеся запросы на резервном сервере. Резервный сервер воспроизводит изменения первичного, одновременно отвечая на читающие запросы, и когда первичный очищает vacuum мёртвые версии строк, воспроизведение этой очистки на резервном сервере сталкивается с любым запросом, который всё ещё полагается на эти версии. Резервный сервер разрешает столкновение, убивая запрос, и пользователь видит ERROR: canceling statement due to conflict with recovery. hot_standby_feedback останавливает это, прося первичный сервер вообще не удалять эти строки. Стоимость ложится на первичный сервер в виде раздувания, потому что строки, которые он иначе освободил бы, теперь удерживаются запросом, выполняющимся на другой машине.&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-hot_standby_feedback.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: hot_standby_feedback&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 16 Sep 2026 12:38:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3549.html</guid>
    
</item>
<item>
    <title></title>
    <link>https://sql-ex.ru/blogs/?/unknown.html</link>
    
    <comments>https://sql-ex.ru/blogs/?/unknown.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3548</wfw:comment>

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

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор Alexey Evlampiev: &lt;a href=&quot;https://vvka-141.github.io/pgmi/articles/lock-queue-fast-is-not-safe/&quot;&gt;Your ALTER TABLE Is Fast. The Queue Behind It Is Not&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Изменение схемы, которое выполняется шесть миллисекунд, всё ещё может остановить каждое чтение из таблицы на шестнадцать секунд — ущерб наносит ожидание, а не работа.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Вот один и тот же оператор, выполненный дважды для одной и той же таблицы — PostgreSQL 16.14 в локальном контейнере, таблица orders на 100 000 строк, конкурирующая сессия удерживается открытой через pg_sleep. Это иллюстративные числа с одной машины, а не бенчмарк; важен сам ratio, и вы можете воспроизвести его примерно за минуту.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre lang=&quot;sql&quot;&gt;&lt;code&gt;-- Без конкуренции:&lt;br /&gt;
ALTER TABLE orders ADD COLUMN note text;&lt;br /&gt;
Time: 5.786 ms&lt;br /&gt;
&lt;br /&gt;
-- С одним обычным долго выполняющимся SELECT, открытым на таблице:&lt;br /&gt;
ALTER TABLE orders ADD COLUMN note text;&lt;br /&gt;
Time: 18065.050 ms (00:18.065)&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;p&gt;Именно это стоит усвоить, и это верно независимо от того, какой инструмент миграции вы используете. Время выполнения без конкуренции говорит вам, сколько стоит оператор, когда ничто не стоит у него на пути; оно не предсказывает, во что он обойдётся вашим пользователям. Режим блокировки, время, проведённое в ожидании, и длина окружающей транзакции дополняют эту картину — и только первое число появляется в таймингах ваших миграций.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Безопасное развёртывание с точки зрения блокировок состоит из двух половин. Одна — это проектирование операторов: выбор форм SQL, которые берут более слабые блокировки или откладывают свою дорогостоящую работу до момента, когда блокировка слаба. Другая — это структура программы: выбор того, где проходят границы ваших транзакций, потому что блокировка живёт до конца своей транзакции, а не до конца своего оператора. Эта статья — о первой половине. Она чисто про PostgreSQL и применима независимо от того, с помощью чего вы развёртываете.&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>Tue, 15 Sep 2026 16:12:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3548.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: hot_standby</title>
    <link>https://sql-ex.ru/blogs/?/GUC-hot_standby.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-hot_standby.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3547</wfw:comment>

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

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

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

    <pubDate>Mon, 14 Sep 2026 16:07:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3546.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=3545</wfw:comment>

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

    <author>nospam@example.com (Sergey Moiseenko)</author>
    <content:encoded>
    &lt;p style=&quot;margin: 0px 25px; font-size: 9pt;&quot;&gt;Пересказ статьи &lt;a class=&quot;let&quot; href=&quot;https://www.red-gate.com/simple-talk/databases/postgresql/learning-postgresql-with-grant-user-defined-types/&quot;&gt;Grant Fritchey. How User-Defined Types work in PostgreSQL: a complete guide&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
Узнайте, как работать с определяемыми пользователем типами в PostgreSQL, в том числе как эффективно их определять, использовать и управлять ими. В этом руководстве объясняется, как пользовательские типы могут улучшить проектирование схемы, усилить целостность данных и поддерживать более ясные и более удобные в обслуживании структуры баз данных в реальных приложениях.&lt;br /&gt;
&lt;br /&gt;
Я уверен, что не одинок, когда говорю: иногда я отвлекаюсь. В данном конкретном случае я не собирался изучать &lt;a class=&quot;let&quot; target=&quot;_blank&quot; href=&quot;https://www.postgresql.org/docs/current/xtypes.html&quot;&gt;пользовательские типы (UDT) в PostgreSQL&lt;/a&gt; — я просто хотел протестировать поведение, связанное с созданием UDT. Но как только я начал читать, меня зацепило. Я имею в виду четыре разных UDT с разным поведением. Это очень круто. Давайте займемся этим.&lt;br /&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>Mon, 14 Sep 2026 09:49:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3545.html</guid>
    
</item>
<item>
    <title>Почему SUM после JOIN завышает итог — и почему DISTINCT не всегда помогает</title>
    <link>https://sql-ex.ru/blogs/?/SUM-JOIN-DISTINCT.html</link>
            <category>Articles</category>
    
    <comments>https://sql-ex.ru/blogs/?/SUM-JOIN-DISTINCT.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3543</wfw:comment>

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

    <author>nospam@example.com (Sergey Moiseenko)</author>
    <content:encoded>
    &lt;p style=&quot;margin: 0px 25px; font-size: 9pt;&quot;&gt;Автор Глеб Зайцев&lt;/p&gt;&lt;br /&gt;
В отчёте два оплаченных заказа на 1 600 рублей, а запрос возвращает 2 600. Синтаксис правильный, ошибок выполнения нет. Причина может быть в том, что после соединения таблиц одна и та же сумма заказа встречается несколько раз.&lt;br /&gt;
&lt;br /&gt;
Разберём этот случай на маленькой базе SQLite и проверим исправление не только на удачном примере, но и на пограничных данных. Для запуска полного скрипта в конце статьи нужны Python 3 и встроенный модуль `sqlite3`. Внешняя база, аккаунт и дополнительные пакеты не требуются.&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/SUM-JOIN-DISTINCT.html#extended&quot;&gt;Continue reading &quot;Почему SUM после JOIN завышает итог — и почему DISTINCT не всегда помогает&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 11 Sep 2026 16:10:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3543.html</guid>
    
</item>
<item>
    <title>Новости за 2026-09-05 - 2026-09-11</title>
    <link>https://sql-ex.ru/blogs/?/2026-09-05-2026-09-11.html</link>
            <category>Site news</category>
    
    <comments>https://sql-ex.ru/blogs/?/2026-09-05-2026-09-11.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3544</wfw:comment>

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

    <author>nospam@example.com (Sergey Moiseenko)</author>
    <content:encoded>
    &lt;p&gt;&lt;font color=&quot;#ff0080&quot;&gt;&amp;sect; &lt;/font&gt;Новая задача от Pegoopik (1 балл) выставлена для обсуждения под номером 303.&lt;/p&gt; &lt;p&gt;&lt;font color=&quot;#ff0080&quot;&gt;&amp;sect; &lt;/font&gt;Популярные темы недели на форуме&lt;/p&gt;  &lt;pre&gt;&lt;b&gt;Топик&amp;#09;&amp;#09;Сообщений&amp;#09;Просмотров&lt;/b&gt;&lt;br /&gt; &lt;a class=&quot;let&quot; href=&quot;https://sql-ex.ru/forum/Lforum.php?F=3&amp;N=58&quot;&gt;58 (Learn)&lt;/a&gt;&amp;#09;&amp;#09;6&amp;#09;&amp;#09;6&lt;br /&gt; &lt;a class=&quot;let&quot; href=&quot;https://sql-ex.ru/forum/forum.php?F=1&amp;N=207&quot;&gt;207 (SELECT)&lt;/a&gt;&amp;#09;&amp;#09;2&amp;#09;&amp;#09;4&lt;br /&gt; &lt;a class=&quot;let&quot; href=&quot;https://sql-ex.ru/forum/Lforum.php?F=3&amp;N=53&quot;&gt;53 (Learn)&lt;/a&gt;&amp;#09;&amp;#09;2&amp;#09;&amp;#09;6&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&lt;font color=&quot;#ff0080&quot;&gt;&amp;sect; &lt;/font&gt;Авторы недели на форуме&lt;/p&gt;  &lt;pre&gt;&lt;b&gt;Автор&amp;#09;&amp;#09;Сообщений&lt;/b&gt;&lt;br /&gt; Steamboat&amp;#09;3&lt;br /&gt; &lt;a class=&quot;let&quot; href=&quot;https://sql-ex.ru/users_page.php?uid=556296&quot; target=&quot;_blank&quot;&gt;Murderface_&lt;/a&gt;  &amp;#09;3&lt;br /&gt; Demon_gr&amp;#09;2&lt;br /&gt; &lt;a class=&quot;let&quot; href=&quot;https://sql-ex.ru/users_page.php?uid=69553&quot; target=&quot;_blank&quot;&gt;pegoopik&lt;/a&gt;  &amp;#09;2&lt;br /&gt; &lt;a class=&quot;let&quot; href=&quot;https://sql-ex.ru/users_page.php?uid=128116&quot; target=&quot;_blank&quot;&gt;selber&lt;/a&gt;  &amp;#09;2&lt;br /&gt;&lt;/pre&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/2026-09-05-2026-09-11.html#extended&quot;&gt;Continue reading &quot;Новости за 2026-09-05 - 2026-09-11&quot;&lt;/a&gt;
    </content:encoded>

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

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

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

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

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

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

    <pubDate>Wed, 09 Sep 2026 20:02:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3540.html</guid>
    
</item>
<item>
    <title>Всё о GUC по порядку: семейство geqo</title>
    <link>https://sql-ex.ru/blogs/?/GUC-geqo.html</link>
            <category>PostgreSQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/GUC-geqo.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3539</wfw:comment>

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

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Christophe Pettus: &lt;a href=&quot;https://thebuild.com/blog/all-your-gucs-in-a-row-the-geqo-family/&quot;&gt;All Your GUCs in a Row: The geqo Family&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Семь параметров, одна функция и разумная цель — никогда не использовать ни один из них.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;geqo, geqo_threshold, geqo_effort, geqo_pool_size, geqo_generations, geqo_selection_bias и geqo_seed — все они настраивают Генетический оптимизатор запросов (Genetic Query Optimizer), альтернативный поиск порядка соединений, к которому PostgreSQL прибегает, когда в запросе слишком много отношений для полного перебора обычным планировщиком. Все семь параметров имеют контекст user, поэтому любой из них можно установить для сессии, роли или базы данных.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Причина рассматривать их как группу в том, что шесть из семи имеют значение только в том случае, если вы уже «проиграли». Тот, который имеет значение, — это geqo_threshold, и он определяет, вступают ли в игру остальные шесть вообще.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/GUC-geqo.html#extended&quot;&gt;Continue reading &quot;Всё о GUC по порядку: семейство geqo&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 08 Sep 2026 11:49:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3539.html</guid>
    
</item>
<item>
    <title>Как работает многостолбцовая статистика</title>
    <link>https://sql-ex.ru/blogs/?/unknown.html</link>
            <category>Optimization</category>
            <category>T-SQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/unknown.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3538</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3538</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.brentozar.com/archive/2026/04/how-multi-column-statistics-work/&quot;&gt;Brent Ozar. How Multi-Column Statistics Work&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
Краткий ответ: в реальных ситуациях работает только первый столбец. Когда SQL Server необходимы данные о втором столбце, он строит вместо этого свою собственную статистику по этому столбцу (предполагая, что ее не существует) и использует эти две статистики совместно - но на самом деле они не связаны.&lt;br /&gt;
&lt;br /&gt;
Чтобы дать более подробный ответ, давайте возьмем большую версию &lt;a class=&quot;let&quot; target=&quot;_blank&quot; href=&quot;https://www.brentozar.com/archive/2015/10/how-to-download-the-stack-overflow-database-via-bittorrent/&quot;&gt;базы данных Stack Overflow&lt;/a&gt;, создадим двухстолбцовый индекс на таблице Users, а затем посмотрим на полученную статистику:&lt;br /&gt;
&lt;br /&gt;
&lt;pre lang=&quot;sql&quot;&gt;DropIndexes;&lt;br /&gt;
GO&lt;br /&gt;
CREATE INDEX Location_Reputation&lt;br /&gt;
    ON dbo.Users(Location, Reputation);&lt;br /&gt;
GO&lt;br /&gt;
DBCC SHOW_STATISTICS(&#039;dbo.Users&#039;, &#039;Location_Reputation&#039;);&lt;br /&gt;
GO&lt;/pre&gt;&lt;br /&gt;
Вывод DBCC SHOW_STATISTICS показывает, что мы получили 22 миллиона строк в этой таблице. Итак, что гистограмма статистики говорит нам о связи между  locations и reputations?&lt;br /&gt;
&lt;br /&gt;
&lt;img src=&quot;https://sql-ex.ru/blogs/wp-content/uploads/2026/09/multi_column_statistics_1.jpg&quot; /&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>Tue, 08 Sep 2026 08:48:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3538.html</guid>
    
</item>
<item>
    <title>MVCC в PostgreSQL — это плохо, как и у других</title>
    <link>https://sql-ex.ru/blogs/?/MVCC-PostgreSQL-,.html</link>
    
    <comments>https://sql-ex.ru/blogs/?/MVCC-PostgreSQL-,.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3537</wfw:comment>

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

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Radim Marek: &lt;a href=&quot;https://boringsql.com/posts/mvcc-bad-bad/&quot;&gt;PostgreSQL&#039;s MVCC is bad. So is everyone else&#039;s&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Первое, что вы, вероятно, узнаете о Postgres, если следите за людьми, которым он не нравится, — это то, что MVCC — это плохо. Ошибка дизайна сорокалетней давности. Её признаки повсюду: раздутые таблицы, удваивающиеся в размере, 32-битный лимит счётчика транзакций, бесконечная борьба с VACUUM, кошмары с мёртвыми кортежами. Это подтверждается и авторитетами: Uber измерил амплификацию (здесь - усиление) записи в 2016 году и ушёл на MySQL из-за этого; группа баз данных Энди Павло назвала MVCC частью PostgreSQL, которую они ненавидят больше всего. Это реально. Postgres настолько плох, насколько это возможно.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Хотя всё это не преувеличено, это сводится к реальному дизайнерскому выбору. Раздувание, амплифицированные записи, постоянный уход за VACUUM — все эти обвинения связаны с решением, а не с дефектом, и мы воспроизводим каждое из них ниже на живом экземпляре PostgreSQL 19 beta2, чтобы вы могли увидеть ущерб своими глазами. Но вердикт, который распространяется из сообщества в сообщество, всегда останавливается на один вопрос раньше: по сравнению с чем? Что вместо этого делают все другие движки, и во что это обходится?&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Потому что MVCC не является опциональным. Любая база данных, которая хочет, чтобы читатели не блокировали писателей, должна где-то хранить несколько версий строк, и каждый движок, который это делает, отвечает на одни и те же четыре вопроса:&lt;/p&gt;&lt;br /&gt;
&lt;ol&gt;&lt;br /&gt;
    &lt;li&gt;Где живут старые версии? В самой таблице или в отдельной структуре?&lt;/li&gt;&lt;br /&gt;
    &lt;li&gt;В каком направлении указывают цепочки версий? От старых к новым или от новых к старым?&lt;/li&gt;&lt;br /&gt;
    &lt;li&gt;На что указывают индексы? На физическое расположение строки или на логический ключ?&lt;/li&gt;&lt;br /&gt;
    &lt;li&gt;Кто выполняет очистку и когда? Фоновый процесс позже или сама транзакция?&lt;/li&gt;&lt;br /&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Ответы PostgreSQL: в таблице, от старых к новым, физическое расположение, фоновый процесс позже. Каждая стоимость, которую перечисляют критики, следует из этих четырёх ответов. И каждая альтернатива — это другой набор ответов, где счёт выставляется кому-то другому: писателю, читателю истории, tempdb, кэшу, компактору. Одна из них потратила годы инженерной работы, чтобы купить одно свойство, которое дизайн PostgreSQL имел бесплатно с первого дня. Все они терпят неудачу по-разному, когда транзакция остаётся открытой во время обеда...&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/MVCC-PostgreSQL-,.html#extended&quot;&gt;Continue reading &quot;MVCC в PostgreSQL — это плохо, как и у других&quot;&lt;/a&gt;
    </content:encoded>

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

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

    <pubDate>Mon, 07 Sep 2026 11:36:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3536.html</guid>
    
</item>
<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>Новости за 2026-08-29 - 2026-09-04</title>
    <link>https://sql-ex.ru/blogs/?/2026-08-29-2026-09-04.html</link>
            <category>Site news</category>
    
    <comments>https://sql-ex.ru/blogs/?/2026-08-29-2026-09-04.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3534</wfw:comment>

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

    <author>nospam@example.com (Sergey Moiseenko)</author>
    <content:encoded>
    &lt;p&gt;&lt;font color=&quot;#ff0080&quot;&gt;&amp;sect; &lt;/font&gt;Лидеры недели&lt;/p&gt;  &lt;pre&gt;&lt;b&gt;&amp;#09;Участник&amp;#09;&amp;#09;w_sel&amp;#09;all_sel&amp;#09;select&amp;#09;dml&amp;#09;Всего&amp;#09;Рейтинг&lt;/b&gt;&lt;br /&gt; Цыбин А.В.  (magicdragon)     &amp;#09;4&amp;#09;38&amp;#09;11&amp;#09;3&amp;#09;14&amp;#09;1524&lt;br /&gt; Шибаев  (saah)                &amp;#09;4&amp;#09;90&amp;#09;9&amp;#09;0&amp;#09;9&amp;#09;537&lt;br /&gt; Скоков Б.С.  (leks$$)         &amp;#09;4&amp;#09;48&amp;#09;8&amp;#09;0&amp;#09;8&amp;#09;1097&lt;br /&gt; &lt;a class=&#039;let&#039; href=&#039;/users_page.php?uid=233431&#039;&gt;Виноградова С.М.  (Tigra1)    &lt;/a&gt;&amp;#09;2&amp;#09;154&amp;#09;7&amp;#09;0&amp;#09;7&amp;#09;148&lt;br /&gt; Powkh N.M.  (I_AiLL_I)        &amp;#09;4&amp;#09;4&amp;#09;5&amp;#09;21&amp;#09;26&amp;#09;4141&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&lt;font color=&quot;#ff0080&quot;&gt;&amp;sect; &lt;/font&gt;Претенденты на попадание в TOP 100&lt;/p&gt;  &lt;pre&gt;&lt;b&gt;Рейтинг&amp;#09; Участник (решенные задачи, время в днях)&lt;/b&gt;&lt;br /&gt; 148&amp;#09;&amp;#09;&lt;a class=&#039;let&#039; href=&#039;/users_page.php?uid=233431&#039;&gt;Tigra1&lt;/a&gt; (154, 31.674)&lt;br /&gt;&lt;/pre&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/2026-08-29-2026-09-04.html#extended&quot;&gt;Continue reading &quot;Новости за 2026-08-29 - 2026-09-04&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 04 Sep 2026 19:10:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3534.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>Новости за 2026-08-22 - 2026-08-28</title>
    <link>https://sql-ex.ru/blogs/?/2026-08-22-2026-08-28.html</link>
            <category>Site news</category>
    
    <comments>https://sql-ex.ru/blogs/?/2026-08-22-2026-08-28.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3522</wfw:comment>

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

    <author>nospam@example.com (Sergey Moiseenko)</author>
    <content:encoded>
    &lt;p&gt;&lt;font color=&quot;#ff0080&quot;&gt;&amp;sect; &lt;/font&gt;Лидеры недели&lt;/p&gt;  &lt;pre&gt;&lt;b&gt;&amp;#09;Участник&amp;#09;&amp;#09;w_sel&amp;#09;all_sel&amp;#09;select&amp;#09;dml&amp;#09;Всего&amp;#09;Рейтинг&lt;/b&gt;&lt;br /&gt; Цыбин А.В.  (magicdragon)     &amp;#09;4&amp;#09;34&amp;#09;8&amp;#09;6&amp;#09;14&amp;#09;1799&lt;br /&gt; &lt;a class=&#039;let&#039; href=&#039;/users_page.php?uid=233431&#039;&gt;Виноградова С.М.  (Tigra1)    &lt;/a&gt;&amp;#09;2&amp;#09;152&amp;#09;6&amp;#09;0&amp;#09;6&amp;#09;151&lt;br /&gt; Скоков Б.С.  (leks$$)         &amp;#09;3&amp;#09;44&amp;#09;5&amp;#09;0&amp;#09;5&amp;#09;1182&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&lt;font color=&quot;#ff0080&quot;&gt;&amp;sect; &lt;/font&gt;Претенденты на попадание в TOP 100&lt;/p&gt;  &lt;pre&gt;&lt;b&gt;Рейтинг&amp;#09; Участник (решенные задачи, время в днях)&lt;/b&gt;&lt;br /&gt; 151&amp;#09;&amp;#09;&lt;a class=&#039;let&#039; href=&#039;/users_page.php?uid=233431&#039;&gt;Tigra1&lt;/a&gt; (152, 29.339)&lt;br /&gt;&lt;/pre&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/2026-08-22-2026-08-28.html#extended&quot;&gt;Continue reading &quot;Новости за 2026-08-22 - 2026-08-28&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 28 Aug 2026 18:56:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3522.html</guid>
    
</item>
<item>
    <title>Новости за 2026-08-22 - 2026-08-28</title>
    <link>https://sql-ex.ru/blogs/?/2026-08-22-2026-08-28.html</link>
            <category>Site news</category>
    
    <comments>https://sql-ex.ru/blogs/?/2026-08-22-2026-08-28.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3523</wfw:comment>

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

    <author>nospam@example.com (Sergey Moiseenko)</author>
    <content:encoded>
    &lt;p&gt;&lt;font color=&quot;#ff0080&quot;&gt;&amp;sect; &lt;/font&gt;Лидеры недели&lt;/p&gt;  &lt;pre&gt;&lt;b&gt;&amp;#09;Участник&amp;#09;&amp;#09;w_sel&amp;#09;all_sel&amp;#09;select&amp;#09;dml&amp;#09;Всего&amp;#09;Рейтинг&lt;/b&gt;&lt;br /&gt; Цыбин А.В.  (magicdragon)     &amp;#09;4&amp;#09;34&amp;#09;8&amp;#09;6&amp;#09;14&amp;#09;1799&lt;br /&gt; &lt;a class=&#039;let&#039; href=&#039;/users_page.php?uid=233431&#039;&gt;Виноградова С.М.  (Tigra1)    &lt;/a&gt;&amp;#09;2&amp;#09;152&amp;#09;6&amp;#09;0&amp;#09;6&amp;#09;151&lt;br /&gt; Скоков Б.С.  (leks$$)         &amp;#09;3&amp;#09;44&amp;#09;5&amp;#09;0&amp;#09;5&amp;#09;1182&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&lt;font color=&quot;#ff0080&quot;&gt;&amp;sect; &lt;/font&gt;Претенденты на попадание в TOP 100&lt;/p&gt;  &lt;pre&gt;&lt;b&gt;Рейтинг&amp;#09; Участник (решенные задачи, время в днях)&lt;/b&gt;&lt;br /&gt; 151&amp;#09;&amp;#09;&lt;a class=&#039;let&#039; href=&#039;/users_page.php?uid=233431&#039;&gt;Tigra1&lt;/a&gt; (152, 29.339)&lt;br /&gt;&lt;/pre&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/2026-08-22-2026-08-28.html#extended&quot;&gt;Continue reading &quot;Новости за 2026-08-22 - 2026-08-28&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 28 Aug 2026 18:56:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3523.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>Новости за 2026-08-15 - 2026-08-21</title>
    <link>https://sql-ex.ru/blogs/?/2026-08-15-2026-08-21.html</link>
            <category>Site news</category>
    
    <comments>https://sql-ex.ru/blogs/?/2026-08-15-2026-08-21.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3509</wfw:comment>

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

    <author>nospam@example.com (Sergey Moiseenko)</author>
    <content:encoded>
    &lt;p&gt;&lt;font color=&quot;#ff0080&quot;&gt;&amp;sect; &lt;/font&gt;Изменения среди лидеров рейтинга&lt;/p&gt;  &lt;pre&gt;&lt;b&gt;Рейтинг&amp;#09;Участник (решенные задачи)&lt;/b&gt;&lt;br /&gt; 14&amp;#09;&amp;#09;&lt;a class=&#039;let&#039; href=&#039;/users_page.php?uid=791796&#039;&gt;gennadi_s&lt;/a&gt; (206)&lt;br /&gt; 35&amp;#09;&amp;#09;&lt;a class=&#039;let&#039; href=&#039;/users_page.php?uid=512176&#039;&gt;Шведа Сауля&lt;/a&gt; (160)&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&lt;font color=&quot;#ff0080&quot;&gt;&amp;sect; &lt;/font&gt;Лидеры недели&lt;/p&gt;  &lt;pre&gt;&lt;b&gt;&amp;#09;Участник&amp;#09;&amp;#09;w_sel&amp;#09;all_sel&amp;#09;select&amp;#09;dml&amp;#09;Всего&amp;#09;Рейтинг&lt;/b&gt;&lt;br /&gt; Шибаев  (saah)                &amp;#09;5&amp;#09;85&amp;#09;12&amp;#09;0&amp;#09;12&amp;#09;622&lt;br /&gt; &lt;a class=&#039;let&#039; href=&#039;/users_page.php?uid=233431&#039;&gt;Виноградова С.М.  (Tigra1)    &lt;/a&gt;&amp;#09;2&amp;#09;150&amp;#09;5&amp;#09;0&amp;#09;5&amp;#09;151&lt;br /&gt; &lt;a class=&#039;let&#039; href=&#039;/users_page.php?uid=791796&#039;&gt;Саркисьян Г. (gennadi_s)      &lt;/a&gt;&amp;#09;1&amp;#09;223&amp;#09;4&amp;#09;0&amp;#09;4&amp;#09;14&lt;br /&gt; Чвикова А.М.  (Chvikova)      &amp;#09;3&amp;#09;14&amp;#09;4&amp;#09;0&amp;#09;4&amp;#09;5150&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&lt;font color=&quot;#ff0080&quot;&gt;&amp;sect; &lt;/font&gt;Претенденты на попадание в TOP 100&lt;/p&gt;  &lt;pre&gt;&lt;b&gt;Рейтинг&amp;#09; Участник (решенные задачи, время в днях)&lt;/b&gt;&lt;br /&gt; 135&amp;#09;&amp;#09;&lt;a class=&#039;let&#039; href=&#039;/users_page.php?uid=556296&#039;&gt;Murderface_&lt;/a&gt; (155, 714.490)&lt;br /&gt; 151&amp;#09;&amp;#09;&lt;a class=&#039;let&#039; href=&#039;/users_page.php?uid=233431&#039;&gt;Tigra1&lt;/a&gt; (150, 28.918)&lt;br /&gt;&lt;/pre&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/2026-08-15-2026-08-21.html#extended&quot;&gt;Continue reading &quot;Новости за 2026-08-15 - 2026-08-21&quot;&lt;/a&gt;
    </content:encoded>

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

</channel>
</rss>
