<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Database Internals on Ilya Baybikov&#39;s home page</title>
    <link>https://baybikov.com/blog/database-internals/</link>
    <description>Recent content in Database Internals on Ilya Baybikov&#39;s home page</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <copyright>Copyright © 2025 - 2026, Ilya Baybikov</copyright>
    <lastBuildDate>Tue, 21 Apr 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://baybikov.com/blog/database-internals/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Lovely Heap and poor CPU</title>
      <link>https://baybikov.com/lovely-heap-and-poor-cpu/</link>
      <pubDate>Tue, 21 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://baybikov.com/lovely-heap-and-poor-cpu/</guid>
      <description>&lt;p&gt;Let&amp;rsquo;s assume you&amp;rsquo;re dealing with a legacy application where most of the logic lives in stored procedures, functions, triggers, and so on.&lt;/p&gt;&#xA;&lt;p&gt;The app uses a queue implemented on top of SQL Server - not unusual for legacy applications. The interesting part is that the table behind the queue is a &lt;a href=&#34;https://learn.microsoft.com/en-us/sql/relational-databases/indexes/heaps-tables-without-clustered-indexes&#34;&gt;Heap&lt;/a&gt; with no nonclustered indexes. Let&amp;rsquo;s call this table &lt;em&gt;Lovely Heap&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The application has hundreds of thousands of tables, and each one has a trigger that inserts one or more rows into &lt;em&gt;Lovely Heap&lt;/em&gt;. Okay, okay, not hundreds of thousands - just hundreds. But you get the idea of how everything was built.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
