{
  "version": 1,
  "source": "pitch-finder/variance-hunt/rerun-e9, ExoBench 1.4.15, captured 2026-10-09",
  "note": "Supplemental data for explain-analyze-is-a-sample-size-of-one.mdx. The three mcp-call result strings are the terminal benchmarkSql responses from the 2026-10-09 recapture of E9, correlationId a8a8f76e-b776-491a-8e37-11ded4ddb798. Inputs are the arguments as sent. Plans, timings, buffers, and samples are unedited. Captions are authored. The page-count query and the two-scan row set are quoted in the post; their payloads are in pitch-finder/variance-hunt/rerun-e9.",
  "blocks": {
    "coldRuns": {
      "type": "mcp-call",
      "name": "benchmarkSql",
      "input": {
        "schemaTemplate": "CREATE TABLE events (id INT PRIMARY KEY, tenant_id INT NOT NULL, created_at TIMESTAMP NOT NULL, payload TEXT NOT NULL);\n-- ~170 bytes/row: 1.5M rows is ~250 MB, well past the synchronize_seqscans threshold (shared_buffers/4 = 114 MB here).\n-- tenant 42 owns exactly the LAST 1% of ids, so its rows are physically clustered at the end of the heap.\nINSERT INTO events\nSELECT i,\n       CASE WHEN i > (${ROWS} * 0.99)::int THEN 42 ELSE 1 + (i % 41) END,\n       NOW() - (i * interval '1 second'),\n       repeat('x', 120)\nFROM generate_series(1, ${ROWS}) i;\nVACUUM ANALYZE;",
        "query": "EXPLAIN (ANALYZE, BUFFERS) SELECT id FROM events WHERE tenant_id = 42 LIMIT 20",
        "scalePoints": [
          {
            "ROWS": 1500000
          }
        ],
        "databaseType": "POSTGRES",
        "preBenchmarkSql": "SET max_parallel_workers_per_gather = 0;",
        "warmCache": "0",
        "repetitions": "10",
        "includeSamples": true,
        "exobenchServerVersion": "1.4.15"
      },
      "result": "{\"timestamp\":\"2026-10-09T07:18:49.679603404Z\",\"databaseType\":\"postgres\",\"sql\":\"EXPLAIN (ANALYZE, BUFFERS) SELECT id FROM events WHERE tenant_id = 42 LIMIT 20\",\"warmCacheIterations\":0,\"repetitions\":10,\"scalePointCount\":1,\"totalComputeSeconds\":4.458,\"results\":[{\"kind\":\"postgres_explain_analyze\",\"scalePoint\":{\"ROWS\":1500000},\"output\":\"QUERY PLAN\\nStatistics over 10 runs: avg = mean, stddev = sample standard deviation, omitted where 0.\\nLimit  (avg_cost=0.00..61.79 samples_cost=0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00;61.79,61.79,61.79,61.79,61.79,61.79,61.79,61.79,61.79,61.79 avg_rows=20 samples_rows=20,20,20,20,20,20,20,20,20,20 avg_width=4 samples_width=4,4,4,4,4,4,4,4,4,4) (actual avg_time=7.840..7.845 stddev_time=24.629..24.629 samples_time=77.935,0.049,0.051,0.049,0.050,0.046,0.044,0.047,0.085,0.044;77.940,0.053,0.056,0.054,0.054,0.050,0.048,0.052,0.089,0.049 avg_rows=20 samples_rows=20,20,20,20,20,20,20,20,20,20 avg_loops=1 samples_loops=1,1,1,1,1,1,1,1,1,1)\\n  Buffers: shared avg_hit=3172.4 stddev_hit=9987.7 samples_hit=31598,14,14,14,14,14,14,14,14,14\\n  ->  Seq Scan on events  (avg_cost=0.00..50665.06 samples_cost=0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00;50665.06,50665.06,50665.06,50665.06,50665.06,50665.06,50665.06,50665.06,50665.06,50665.06 avg_rows=16400 samples_rows=16400,16400,16400,16400,16400,16400,16400,16400,16400,16400 avg_width=4 samples_width=4,4,4,4,4,4,4,4,4,4) (actual avg_time=7.840..7.842 stddev_time=24.629..24.629 samples_time=77.934,0.049,0.051,0.048,0.049,0.046,0.044,0.047,0.084,0.044;77.937,0.051,0.054,0.052,0.051,0.048,0.046,0.049,0.087,0.046 avg_rows=20 samples_rows=20,20,20,20,20,20,20,20,20,20 avg_loops=1 samples_loops=1,1,1,1,1,1,1,1,1,1)\\n        Filter: (tenant_id = 42)\\n        Rows Removed by Filter: avg=148996.8 stddev=469423.675 samples=1485000,552,552,552,552,552,552,552,552,552\\n        Buffers: shared avg_hit=3172.4 stddev_hit=9987.7 samples_hit=31598,14,14,14,14,14,14,14,14,14\\nPlanning:\\n  Buffers: shared avg_hit=2.2 stddev_hit=7.0 samples_hit=22,0,0,0,0,0,0,0,0,0\\nPlanning Time: avg=0.06 ms stddev=0.02 n=10 samples=0.11,0.06,0.05,0.05,0.08,0.05,0.04,0.04,0.05,0.03\\nExecution Time: avg=7.86 ms stddev=24.63 n=10 samples=77.97,0.07,0.07,0.07,0.07,0.07,0.06,0.07,0.12,0.06\",\"runtimeDurationMs\":12,\"rowsAreCapped\":false,\"computeSeconds\":4.458}],\"workerId\":\"23cddd10-c545-4797-a736-0582786dbbe5\",\"correlationId\":\"a8a8f76e-b776-491a-8e37-11ded4ddb798\",\"correlationIdInstruction\":\"Echo correlationId on subsequent ExoBench tool calls. Tracking only — it does NOT preserve DB state.\",\"version\":\"1.4.15\"}",
      "isError": false,
      "caption": "Ten cold runs of LIMIT 20: one execution at 77.97 ms, nine around 0.07 ms, same Seq Scan throughout.",
      "planCaptions": {
        "1.5M": "At 1.5 million rows the plan is a Limit over a Seq Scan on events, Filter (tenant_id = 42), and that shape holds for all ten runs. Execution Time avg 7.86 ms, stddev 24.63, samples 77.97, 0.07, 0.07, 0.07, 0.07, 0.07, 0.06, 0.07, 0.12, 0.06. Rows removed average 148996.8, one sample of 1485000 and nine of 552. Shared hits average 3172.4, one sample of 31598 and nine of 14, with no reads."
      }
    },
    "syncOff": {
      "type": "mcp-call",
      "name": "benchmarkSql",
      "input": {
        "schemaTemplate": "CREATE TABLE events (id INT PRIMARY KEY, tenant_id INT NOT NULL, created_at TIMESTAMP NOT NULL, payload TEXT NOT NULL);\n-- ~170 bytes/row: 1.5M rows is ~250 MB, well past the synchronize_seqscans threshold (shared_buffers/4 = 114 MB here).\n-- tenant 42 owns exactly the LAST 1% of ids, so its rows are physically clustered at the end of the heap.\nINSERT INTO events\nSELECT i,\n       CASE WHEN i > (${ROWS} * 0.99)::int THEN 42 ELSE 1 + (i % 41) END,\n       NOW() - (i * interval '1 second'),\n       repeat('x', 120)\nFROM generate_series(1, ${ROWS}) i;\nVACUUM ANALYZE;",
        "query": "EXPLAIN (ANALYZE, BUFFERS) SELECT id FROM events WHERE tenant_id = 42 LIMIT 20",
        "scalePoints": [
          {
            "ROWS": 1500000
          }
        ],
        "databaseType": "POSTGRES",
        "preBenchmarkSql": "SET max_parallel_workers_per_gather = 0; SET synchronize_seqscans = off;",
        "warmCache": "0",
        "repetitions": "10",
        "includeSamples": true,
        "correlationId": "a8a8f76e-b776-491a-8e37-11ded4ddb798",
        "exobenchServerVersion": "1.4.15"
      },
      "result": "{\"timestamp\":\"2026-10-09T07:20:22.531796223Z\",\"databaseType\":\"postgres\",\"sql\":\"EXPLAIN (ANALYZE, BUFFERS) SELECT id FROM events WHERE tenant_id = 42 LIMIT 20\",\"warmCacheIterations\":0,\"repetitions\":10,\"scalePointCount\":1,\"totalComputeSeconds\":23.166,\"results\":[{\"kind\":\"postgres_explain_analyze\",\"scalePoint\":{\"ROWS\":1500000},\"output\":\"QUERY PLAN\\nStatistics over 10 runs: avg = mean, stddev = sample standard deviation, omitted where 0.\\nLimit  (avg_cost=0.00..73.16 samples_cost=0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00;73.16,73.16,73.16,73.16,73.16,73.16,73.16,73.16,73.16,73.16 avg_rows=20 samples_rows=20,20,20,20,20,20,20,20,20,20 avg_width=4 samples_width=4,4,4,4,4,4,4,4,4,4) (actual avg_time=80.811..80.817 stddev_time=1.059..1.059 samples_time=80.139,81.242,80.473,80.272,82.286,81.619,82.461,80.607,79.336,79.679;80.144,81.247,80.479,80.277,82.291,81.623,82.466,80.613,79.342,79.684 avg_rows=20 samples_rows=20,20,20,20,20,20,20,20,20,20 avg_loops=1 samples_loops=1,1,1,1,1,1,1,1,1,1)\\n  Buffers: shared avg_hit=31598 samples_hit=31598,31598,31598,31598,31598,31598,31598,31598,31598,31598\\n  ->  Seq Scan on events  (avg_cost=0.00..50665.00 samples_cost=0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00;50665.00,50665.00,50665.00,50665.00,50665.00,50665.00,50665.00,50665.00,50665.00,50665.00 avg_rows=13850 samples_rows=13850,13850,13850,13850,13850,13850,13850,13850,13850,13850 avg_width=4 samples_width=4,4,4,4,4,4,4,4,4,4) (actual avg_time=80.810..80.813 stddev_time=1.059..1.059 samples_time=80.138,81.241,80.472,80.270,82.285,81.617,82.460,80.606,79.335,79.678;80.141,81.244,80.475,80.273,82.288,81.620,82.462,80.609,79.338,79.681 avg_rows=20 samples_rows=20,20,20,20,20,20,20,20,20,20 avg_loops=1 samples_loops=1,1,1,1,1,1,1,1,1,1)\\n        Filter: (tenant_id = 42)\\n        Rows Removed by Filter: avg=1485000 samples=1485000,1485000,1485000,1485000,1485000,1485000,1485000,1485000,1485000,1485000\\n        Buffers: shared avg_hit=31598 samples_hit=31598,31598,31598,31598,31598,31598,31598,31598,31598,31598\\nPlanning:\\n  Buffers: shared avg_hit=2 stddev_hit=6.3 samples_hit=20,0,0,0,0,0,0,0,0,0\\nPlanning Time: avg=0.07 ms stddev=0.03 n=10 samples=0.16,0.06,0.06,0.05,0.05,0.05,0.05,0.07,0.05,0.05\\nExecution Time: avg=80.84 ms stddev=1.06 n=10 samples=80.17,81.27,80.5,80.3,82.32,81.65,82.49,80.64,79.37,79.71\",\"runtimeDurationMs\":85,\"rowsAreCapped\":false,\"computeSeconds\":23.166}],\"workerId\":\"20539597-2ba5-442c-a585-70f63f0bd11a\",\"correlationId\":\"a8a8f76e-b776-491a-8e37-11ded4ddb798\",\"correlationIdInstruction\":\"Echo correlationId on subsequent ExoBench tool calls. Tracking only — it does NOT preserve DB state.\",\"version\":\"1.4.15\"}",
      "isError": false,
      "caption": "synchronize_seqscans off: every run starts at block 0, 80.84 ms, 1,485,000 rows removed, 31,598 hits.",
      "planCaptions": {
        "1.5M": "With synchronize_seqscans off and parallelism disabled, every run is a Seq Scan from the start of events. Execution Time avg 80.84 ms, stddev 1.06, samples 80.17, 81.27, 80.5, 80.3, 82.32, 81.65, 82.49, 80.64, 79.37, 79.71. Rows Removed by Filter is 1485000 on every sample, and shared hits are 31598 on every sample. There is no avg_read."
      }
    },
    "warmed": {
      "type": "mcp-call",
      "name": "benchmarkSql",
      "input": {
        "schemaTemplate": "CREATE TABLE events (id INT PRIMARY KEY, tenant_id INT NOT NULL, created_at TIMESTAMP NOT NULL, payload TEXT NOT NULL);\n-- ~170 bytes/row: 1.5M rows is ~250 MB, well past the synchronize_seqscans threshold (shared_buffers/4 = 114 MB here).\n-- tenant 42 owns exactly the LAST 1% of ids, so its rows are physically clustered at the end of the heap.\nINSERT INTO events\nSELECT i,\n       CASE WHEN i > (${ROWS} * 0.99)::int THEN 42 ELSE 1 + (i % 41) END,\n       NOW() - (i * interval '1 second'),\n       repeat('x', 120)\nFROM generate_series(1, ${ROWS}) i;\nVACUUM ANALYZE;",
        "query": "EXPLAIN (ANALYZE, BUFFERS) SELECT id FROM events WHERE tenant_id = 42 LIMIT 20",
        "scalePoints": [
          {
            "ROWS": 1500000
          }
        ],
        "databaseType": "POSTGRES",
        "preBenchmarkSql": "SET max_parallel_workers_per_gather = 0;",
        "warmCache": "1",
        "repetitions": "10",
        "includeSamples": true,
        "correlationId": "a8a8f76e-b776-491a-8e37-11ded4ddb798",
        "exobenchServerVersion": "1.4.15"
      },
      "result": "{\"timestamp\":\"2026-10-09T07:19:37.770590454Z\",\"databaseType\":\"postgres\",\"sql\":\"EXPLAIN (ANALYZE, BUFFERS) SELECT id FROM events WHERE tenant_id = 42 LIMIT 20\",\"warmCacheIterations\":1,\"repetitions\":10,\"scalePointCount\":1,\"totalComputeSeconds\":4.01,\"results\":[{\"kind\":\"postgres_explain_analyze\",\"scalePoint\":{\"ROWS\":1500000},\"output\":\"QUERY PLAN\\nStatistics over 10 runs: avg = mean, stddev = sample standard deviation, omitted where 0.\\nLimit  (avg_cost=0.00..68.93 samples_cost=0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00;68.93,68.93,68.93,68.93,68.93,68.93,68.93,68.93,68.93,68.93 avg_rows=20 samples_rows=20,20,20,20,20,20,20,20,20,20 avg_width=4 samples_width=4,4,4,4,4,4,4,4,4,4) (actual avg_time=0.055..0.060 stddev_time=0.007..0.007 samples_time=0.049,0.047,0.047,0.048,0.060,0.060,0.062,0.060,0.058,0.062;0.053,0.051,0.051,0.052,0.064,0.065,0.067,0.065,0.063,0.067 avg_rows=20 samples_rows=20,20,20,20,20,20,20,20,20,20 avg_loops=1 samples_loops=1,1,1,1,1,1,1,1,1,1)\\n  Buffers: shared avg_hit=14 samples_hit=14,14,14,14,14,14,14,14,14,14\\n  ->  Seq Scan on events  (avg_cost=0.00..50665.00 samples_cost=0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00;50665.00,50665.00,50665.00,50665.00,50665.00,50665.00,50665.00,50665.00,50665.00,50665.00 avg_rows=14700 samples_rows=14700,14700,14700,14700,14700,14700,14700,14700,14700,14700 avg_width=4 samples_width=4,4,4,4,4,4,4,4,4,4) (actual avg_time=0.054..0.057 stddev_time=0.007..0.007 samples_time=0.048,0.046,0.046,0.047,0.059,0.059,0.061,0.060,0.057,0.061;0.050,0.048,0.049,0.050,0.062,0.063,0.064,0.063,0.061,0.064 avg_rows=20 samples_rows=20,20,20,20,20,20,20,20,20,20 avg_loops=1 samples_loops=1,1,1,1,1,1,1,1,1,1)\\n        Filter: (tenant_id = 42)\\n        Rows Removed by Filter: avg=552 samples=552,552,552,552,552,552,552,552,552,552\\n        Buffers: shared avg_hit=14 samples_hit=14,14,14,14,14,14,14,14,14,14\\nPlanning Time: avg=0.07 ms stddev=0.03 n=10 samples=0.06,0.06,0.06,0.05,0.06,0.06,0.15,0.06,0.05,0.05\\nExecution Time: avg=0.08 ms stddev=0.0099 n=10 samples=0.1,0.07,0.07,0.07,0.08,0.09,0.09,0.09,0.08,0.09\",\"runtimeDurationMs\":3,\"rowsAreCapped\":false,\"computeSeconds\":4.01}],\"workerId\":\"1a5eff07-0ac4-405e-b615-60b801398c15\",\"correlationId\":\"a8a8f76e-b776-491a-8e37-11ded4ddb798\",\"correlationIdInstruction\":\"Echo correlationId on subsequent ExoBench tool calls. Tracking only — it does NOT preserve DB state.\",\"version\":\"1.4.15\"}",
      "isError": false,
      "caption": "One warm-up, then ten timed runs at 0.08 ms, 552 rows removed and 14 buffer hits on every sample.",
      "planCaptions": {
        "1.5M": "After one untimed execution, all ten timed runs are a Seq Scan that removes 552 rows and hits 14 shared buffers, both quantities identical on every sample. Execution Time avg 0.08 ms, stddev 0.0099, samples 0.1, 0.07, 0.07, 0.07, 0.08, 0.09, 0.09, 0.09, 0.08, 0.09. The scan node itself reports actual avg_time 0.055 to 0.060 ms."
      }
    }
  }
}
