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

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

<item>
    <title>CONVERT_IMPLICIT: Почему SQL Server игнорирует ваш индекс</title>
    <link>https://sql-ex.ru/blogs/?/CONVERT_IMPLICIT-SQL-Server.html</link>
            <category>Optimization</category>
            <category>T-SQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/CONVERT_IMPLICIT-SQL-Server.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3535</wfw:comment>

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

    <author>nospam@example.com (Sergey Moiseenko)</author>
    <content:encoded>
    &lt;p style=&quot;margin: 0px 25px; font-size: 9pt;&quot;&gt;Пересказ статьи &lt;a class=&quot;let&quot; href=&quot;https://www.sqlfingers.com/2026/04/convertimplicit-why-sql-server-is.html&quot;&gt;rebecca@sqlfingers. CONVERT_IMPLICIT: Why SQL Server Is Ignoring Your Index&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
Вы построили индекс и протестировали запрос в SSMS.  Index seek. Идеально. Вы пошли домой.&lt;br /&gt;
&lt;br /&gt;
Между тем ваше приложение сканировало каждую строку в этой таблице, начиная со дня его запуска.&lt;br /&gt;
&lt;br /&gt;
Это CONVERT_IMPLICIT - один из наиболее скрытых убийц производительности в SQL Server. Никаких ошибок. Никаких предупреждений в журнале приложения. Запрос возвращает правильные результаты, а ваш индекс отлично структурирован, но оптимизатор его не использует, поскольку тип данных, приходящих из приложения, не соответствует типу данных столбца - и SQL Server должен преобразовывать каждую строку, прежде чем он сможет выполнить сравнение.&lt;br /&gt;
&lt;br /&gt;
Здесь рассказывается, как найти, понять и доказать разработчику, который продолжает говорить вам, что &quot;все прекрасно работает на моей машине&quot;. &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/CONVERT_IMPLICIT-SQL-Server.html#extended&quot;&gt;Continue reading &quot;CONVERT_IMPLICIT: Почему SQL Server игнорирует ваш индекс&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 06 Sep 2026 08:44:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3535.html</guid>
    
</item>
<item>
    <title>Зачем использовать составной индекс в 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>Проблемы параллелизма SQL Server с планами одновременно выполняющихся запросов</title>
    <link>https://sql-ex.ru/blogs/?/SQL-Server.html</link>
            <category>Optimization</category>
            <category>T-SQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/SQL-Server.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3479</wfw:comment>

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

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

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

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

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

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

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

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

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

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

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

    <pubDate>Thu, 02 Jul 2026 19:27:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3447.html</guid>
    
</item>
<item>
    <title>Методы разбиения на страницы в SQL: повышение производительности запросов и эффективное управление памятью</title>
    <link>https://sql-ex.ru/blogs/?/SQL.html</link>
            <category>Optimization</category>
    
    <comments>https://sql-ex.ru/blogs/?/SQL.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3417</wfw:comment>

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

    <author>nospam@example.com (Sergey Moiseenko)</author>
    <content:encoded>
    &lt;p style=&quot;margin: 0px 25px; font-size: 9pt;&quot;&gt;Пересказ статьи &lt;a class=&quot;let&quot; href=&quot;https://medium.com/@PradipBhusnar/sql-for-pagination-queries-memory-and-performance-567af4913b50&quot;&gt;Pradip Bhusnar. SQL Pagination Techniques: Enhancing Query Performance and Managing Memory Efficiently&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
Эффективная обработка разбивки на страницы (пагинация) в SQL, особенно в высоконагруженных системах, требует тщательного учета как использования памяти, так и производительности. Здесь представлен детальный обзор проектирования и эффективного применения запросов постраничной разбивки.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Основные методы эффективной разбивки на страницы в SQL&lt;/h2&gt;&lt;br /&gt;
&lt;strong&gt;1. Limit и Offset:&lt;/strong&gt;&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;Традиционная разбивка на страницы с использованием LIMIT и OFFSET проста, но может оказаться неэффективной при больших смещениях.&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Например:&lt;br /&gt;
&lt;br /&gt;
&lt;pre lang=&quot;sql&quot;&gt;SELECT * FROM data_table&lt;br /&gt;
ORDER BY timestamp DESC&lt;br /&gt;
LIMIT 10 OFFSET 1000;&lt;/pre&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Проблемы производительности: по мере увеличения смещения базе данных приходится сканировать больше строк, что может привести к значительному падению производительности.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/SQL.html#extended&quot;&gt;Continue reading &quot;Методы разбиения на страницы в SQL: повышение производительности запросов и эффективное управление памятью&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sat, 13 Jun 2026 23:42:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3417.html</guid>
    
</item>

</channel>
</rss>
