Yearly Pay yearly and get 2 months free on every paid plan. See plans
Sign in Start free

SQL optimizer

Diagnose a slow query: likely plan problems, rewritten query, and the indexes to add.

Run this template ≈ 1,000 Runs

Sample: input → output

Input
The slow query
SELECT * FROM orders o WHERE o.customer_id IN (SELECT id FROM customers WHERE country = 'TR') ORDER BY o.created_at DESC
Tables + sizes + engine
orders has 20M rows, customers 500k, Postgres 16
Sample outputMade on 27 October 2026

Likely planner behavior and bottlenecks

Postgres will normally rewrite the IN subquery as a semi-join. A plausible plan is:

  1. Scan customers to find rows where country = 'TR'.
  2. Build a hash table of matching customer IDs.
  3. Scan all 20M rows of orders.
  4. Hash-join orders against the matching customers.
  5. Sort every matched order by created_at DESC.

The planner is not necessarily making a semantic mistake; without suitable indexes, this may be the cheapest available plan. The expensive parts are likely:

  • A sequential scan of orders.…
Read the full sample →
Run this template The form opens filled with this sample's inputs; change anything.

Similar templates

Sample outputText
Library Management REST API Base URL: https://api.example.com/v1 All request and response bodies use application/json. Dates use ISO 8601 in UTC. Resource IDs are UUIDs. Endpoint Table Books Method Path Purpose Status Codes GET /books List and filter books 200, 400 POST /books Create a book record 201, 400, 409, 422 GET /books/{bookId} Retrieve a book 200, 404 PATCH /books/{bookId} Update book metadata or inventory 200, 400, 404, 409, 422 …
Read the full sample →

REST API designer

Input: a library management API: books, members, loans, reservations

≈ 1,000
Use this
Sample outputText
add(a, b) Adds two values using JavaScript’s + operator. Parameters Name Type Constraints a any None. If either operand is a string, string concatenation may occur. b any None. If either operand is a string, string concatenation may occur. Returns any — The result of evaluating a + b. Errors This function does not explicitly throw errors. JavaScript may throw a TypeError for incompatible operand types, such as mixing a bigint with a number. Example const result = add(2, 3);…
Read the full sample →

API doc writer

Input: function add(a, b) { return a + b; }

≈ 1,000
Use this
Sample outputText
The Cost of Doing Nothing Assumptions Replace these inputs with internal figures as needed: 20 engineers run or wait for CI an average of 2 times per day 220 working days per year Fully loaded engineering cost: $150/hour Current suite duration: 45 minutes Estimated productive time lost per run: 15 minutes due to parallel work, context switching, and delayed feedback 5 flaky-test reruns or investigations per day, averaging 20 minutes each 2 production incidents last quarter traced to untested paths Average incident cost:…
Read the full sample →

Tech debt business case

Input: our test suite takes 45 minutes, flaky tests get skipped, two incidents last quarter traced to untested paths

≈ 1,000
Use this