DATABASES & SQL · FREE DEVELOPER TOOL
SQL Query Cost Estimator
Estimates a SQL query’s planner-style cost from sequential and random page reads, CPU tuple work and startup overhead. Free, instant and entirely client-side.
Planner cost units are relative, not milliseconds.
Estimates a SQL query’s planner-style cost from sequential and random page reads, CPU tuple work and startup overhead.
- Typical page size
- 8 KB
- Source: PostgreSQL / SQL Server
- Healthy index hit ratio
- 70–90%
- Source: Workload-dependent
- Connections per CPU core
- 10–20
- Source: Pooling guidance
- Replica lag target
- ≤ 1 s
- Source: Async replication
Quick answer
Estimates a SQL query’s planner-style cost from sequential and random page reads, CPU tuple work and startup overhead. The calculator applies cost = startup + seq_pages × seq_cost + random_pages × random_cost + rows_examined × cpu_tuple_cost and shows every intermediate value.
On this page
- 1Quick Answer
- 2Interactive Calculator
- 3SQL Query Cost Estimator: Calculation Breakdown
- 4Key Takeaways
- 5Databases & SQL Reference Numbers
- 6Implementation Approaches
- 7Reference Tables
- 8Formulas & How to Use
- 9Worked Examples
- 10Advanced Guide: SQL Query Cost Estimator
- 11Language Playbooks
- 12Glossary
- 13Mistakes & Pro Tips
- 14Use Cases
- 15Related Calculators
- 16Long-Tail Answers
- 17FAQs (29)
- 18References
Interactive Calculator
Enter a value — every result updates instantly, in your browser. Free forever, no sign-up.
SQL Query Cost Estimator
Every input is evaluated locally in your browser with deterministic arithmetic.
Live result
2,330.5 cost units
57.1% of the estimated cost is I/O.
Estimated latency
46.61 milliseconds
Startup cost
0.5
Sequential I/O cost
1,250
Random I/O cost
80
SQL Query Cost Estimator: Calculation Breakdown
Every input, intermediate value and result row behind the estimate.
| Estimated latency | 46.61 milliseconds Calibrated at 0.02 ms per cost unit. |
|---|---|
| Startup cost | 0.5 |
| Sequential I/O cost | 1,250 |
| Random I/O cost | 80 |
| CPU tuple cost | 1,000 |
| I/O share of total | 57.1% |
| Cost per returned row | 0.0233 Assumes every examined row is returned. |
Step-by-step calculation
- 1Sequential I/O: 1,250 pages × 1 = 1,250.
- 2Random I/O: 20 pages × 4 = 80.
- 3CPU: 100,000 rows × 0.01 = 1,000.
- 4Total: 0.5 + 1,250 + 80 + 1,000 = 2,330.5 cost units.
Key Takeaways
The 30-second version — the exact answers Google loves to feature.
- 1Planner cost units are relative, not milliseconds.
- 2Sequential page cost is typically 1.0; random page cost is often 4.0.
- 3Formula: cost = startup + seq_pages × seq_cost + random_pages × random_cost + rows_examined × cpu_tuple_cost
- 4Default scenario: 2,330.5 cost units
Databases & SQL Reference Numbers
Useful benchmarks to sanity-check the output before you commit to a decision.
- Typical page size
- 8 KB
- Source: PostgreSQL / SQL Server
- Healthy index hit ratio
- 70–90%
- Source: Workload-dependent
- Connections per CPU core
- 10–20
- Source: Pooling guidance
- Replica lag target
- ≤ 1 s
- Source: Async replication
- Headroom for storage growth
- 3×
- Source: Capacity planning
- Client-side calculation
- 100%
- Source: No data uploaded
Implementation Approaches
Three practical ways teams use sql query cost estimator, with the precision and safeguards each one needs.
Plan with measured statistics
Best for: Production changes where the query plan matters
- Method: Collect row counts, average row width, index hit ratios and buffer-pool size, then run the calculator with the real values.
- Precision: Use table statistics refreshed within the last day and separate hot from cold data.
- Safeguards: Confirm the estimate with EXPLAIN (ANALYZE) on a staging copy before changing indexes or pool sizes.
Design-time sizing
Best for: New schemas, migrations and capacity proposals
- Method: Start from expected rows and column widths, add index and backup overhead, then model 12, 36 and 60 months of growth.
- Precision: Express assumptions as ranges and keep the growth rate visible.
- Safeguards: Revisit after the first month of real data; early growth is rarely linear.
Incident triage
Best for: Latency spikes, pool exhaustion and replica lag
- Method: Compare current latency, active connections and lag against the baseline to identify which component moved first.
- Precision: Use p95 and p99 rather than averages, with the same measurement window.
- Safeguards: Correlate with application deploys, traffic changes and maintenance jobs before changing configuration.
Quick Reference Tables
Widths, ranges, boundary values and language types — the lookup tables you will come back to.
Query cost inputs
| Input | Typical source |
|---|---|
| Sequential pages | EXPLAIN buffers or pg_statio_user_tables |
| Random pages | Index scans and bitmap heap fetches |
| CPU tuple cost | postgresql.conf cpu_tuple_cost |
| Startup cost | EXPLAIN top line |
Database sizing quick reference
| Item | Typical value | Why it matters |
|---|---|---|
| Page size | 8 KB (PostgreSQL), 8 KB (SQL Server), 16 KB (MySQL InnoDB) | Rows per page drives I/O and index fan-out |
| Row header | 23–24 bytes | Adds up quickly on narrow tables |
| Index pointer | 6–8 bytes | Included in every B-tree entry |
| Default fill factor | 90–100% | Lower values leave room for updates |
| Backup compression | 2:1 to 5:1 | Depends on data entropy |
| Replica lag alert | > 5 s or > 30 s | Match the business tolerance |
Formulas & How to Use This Calculator
Core relationship
cost = startup + seq_pages × seq_cost + random_pages × random_cost + rows_examined × cpu_tuple_cost
Unit convention
Inputs are sequential pages read, random pages read, rows examined, sequential page cost, random page cost, cpu cost per row, startup cost, milliseconds per cost unit. Keep each unit consistent with the result rows; convert before comparing estimates that use different units or time windows.
Validation
1. Reproduce the headline from the displayed rows. 2. Compare the result with a measured, billed or benchmarked value. 3. Re-run with a boundary input and with a scaled input. 4. Record the assumptions, source and date next to the result.
How to use — step by step
- Open the SQL Query Cost Estimator and review the input defaults.
- Replace sequential pages read with your measured or planned value.
- Set random pages read (Pages fetched by random I/O, such as index lookups.).
- Set rows examined (Rows the executor must inspect.).
- Set sequential page cost (Planner cost unit per sequential page.).
- Read the headline result and compare it with the supporting rows in the breakdown.
- Test one boundary value and one scaled value to understand the sensitivity.
- Copy or record the result together with the units and assumptions used.
Worked Examples
Real numbers and raw bits, fully worked — copy the pattern for your own code or protocol.
Default scenario
Inputs
Sequential pages read = 1250; Random pages read = 20; Rows examined = 100000; Sequential page cost = 1.0; Random page cost = 4.0
Math
cost = startup + seq_pages × seq_cost + random_pages × random_cost + rows_examined × cpu_tuple_cost
Result
2,330.5 cost units · Estimated latency: 46.61 milliseconds · Startup cost: 0.5 · Sequential I/O cost: 1,250
Scaled scenario
Inputs
Sequential pages read = 2500; Random pages read = 30; Rows examined = 100000; Sequential page cost = 1.0; Random page cost = 4.0
Math
cost = startup + seq_pages × seq_cost + random_pages × random_cost + rows_examined × cpu_tuple_cost
Result
3,620.5 cost units · Estimated latency: 72.41 milliseconds · Startup cost: 0.5 · Sequential I/O cost: 2,500
Advanced Guide: SQL Query Cost Estimator
Beyond the calculator — how to use sql query cost estimator in real engineering, capacity and review decisions.
What the SQL Query Cost Estimator measures
Estimates a SQL query’s planner-style cost from sequential and random page reads, CPU tuple work and startup overhead. It turns ordinary project, infrastructure or runtime inputs into a visible number you can defend in a design review. The calculator is deliberately transparent: the result is derived from cost = startup + seq_pages × seq_cost + random_pages × random_cost + rows_examined × cpu_tuple_cost rather than from an opaque benchmark, so you can change one assumption and immediately see how the answer moves.
The formula and its units
The core relationship is cost = startup + seq_pages × seq_cost + random_pages × random_cost + rows_examined × cpu_tuple_cost. Every field is labelled with its unit and expected range next to the input, and the breakdown repeats the intermediate values so a reviewer can verify the arithmetic. When you compare two results, make sure both were computed with the same units and the same time window; most apparent differences in databases & sql estimates are really unit or scope mismatches.
A worked check with the default inputs
With the default inputs (Sequential pages read = 1250; Random pages read = 20; Rows examined = 100000; Sequential page cost = 1.0; Random page cost = 4.0), the calculator reports 2,330.5 cost units. Change Sequential pages read and the headline moves to 3,620.5 cost units. That sensitivity is useful: if a small input change produces a large output change, the assumption deserves a source or a range rather than a single guess.
Inputs, assumptions and defaults
The inputs are Sequential pages read (Heap or index pages read in sequential order.); Random pages read (Pages fetched by random I/O, such as index lookups.); Rows examined (Rows the executor must inspect.); Sequential page cost (Planner cost unit per sequential page.); Random page cost (Planner cost unit per random page.); CPU cost per row (Planner cost unit per examined row.); Startup cost (Fixed planning and executor startup cost.); Milliseconds per cost unit (Calibration from observed query latency.). Defaults are realistic starting points, not recommendations for your system. Replace them with measured values wherever possible: production metrics, billing exports, compiler sizeof output, provider documentation or historical project data. Keep the assumptions beside the result so the estimate can be reproduced later.
Reading a low or high result
A low result usually means small scale, generous headroom or optimistic assumptions; a high result means the opposite. Neither is automatically good or bad. Ask which input dominates the change, then compare the result with a second method such as a benchmark, a bill, a query plan or a pilot. Agreement between two independent methods is much stronger evidence than a single formula.
Common mistakes in databases & sql
Comparing cost units across database engines; each planner has its own scale. Forgetting that cached pages are much cheaper than disk reads. Document the units, the measurement window and the scope, and re-run the calculation when the workload or architecture changes.
How to validate the result
Validate with three checks: reproduce the headline from the displayed rows, compare the estimate with a measured production value, and test a boundary case (zero, one, the maximum or a doubled input). If the three checks disagree, the model or the input is wrong. Record the validation date and the data source so the next reviewer can repeat it.
Where this fits in Databases & SQL
This tool supports query cost, table and index size, connection pooling, replication, backups, partitioning and sharding. Use it during design, capacity review, incident follow-up or cost planning. Pair it with the related calculators to cover adjacent assumptions, and keep the output with the design decision so future changes can be compared against a known baseline.
Limitations and precision
No estimate is more accurate than its inputs. The calculator assumes steady-state behavior, consistent units and the defaults described in the field help. Real systems have bursty traffic, fragmentation, retries, background jobs and measurement error. Where the result informs a commitment or a budget, add a range and a contingency rather than treating the headline as a guarantee.
Related calculations to run next
The most useful companion tools are Index Size Estimator, Database Index Selectivity Calculator, Query Latency Calculator, Query Throughput Calculator. Together they cover the neighbouring assumptions — for example scale, overhead, failure headroom and cost — so you can present a complete estimate rather than a single isolated number.
Language & Platform Playbooks
The same bit pattern behaves differently in every language. Here is how to adapt the conversion safely.
PostgreSQL
Use EXPLAIN (ANALYZE, BUFFERS) to validate query cost, pg_total_relation_size for table and index size, and pg_stat_activity plus pgBouncer metrics to size pools. For sql query cost estimator, use the same units and time window described in the calculator so the result lines up with your platform data.
MySQL / InnoDB
Check EXPLAIN ANALYZE, information_schema.tables and innodb_buffer_pool_size. Keep the pool well below the server’s available RAM and monitor InnoDB row locks. For sql query cost estimator, use the same units and time window described in the calculator so the result lines up with your platform data.
SQL Server
Compare estimated and actual execution plans, inspect sys.dm_db_index_usage_stats, and size the buffer pool and max worker threads from measured workload. For sql query cost estimator, use the same units and time window described in the calculator so the result lines up with your platform data.
Cloud managed databases
Use the provider’s storage, IOPS and replica-lag metrics, and remember that backup size, retention and cross-region copies are billed separately. For sql query cost estimator, use the same units and time window described in the calculator so the result lines up with your platform data.
Glossary: Key Terms Explained
- Page
- The fixed-size block a database reads and writes, usually 8–16 KB.
- Selectivity
- The fraction of rows an index or predicate is expected to match.
- Fill factor
- The percentage of each page filled with data, leaving room for updates.
- Replica lag
- How far a read replica trails the primary in time or applied transactions.
- Cardinality
- The number of distinct values in a column or index.
Common Mistakes & Pro Tips
Mistakes that break conversions
- Comparing cost units across database engines; each planner has its own scale.
- Forgetting that cached pages are much cheaper than disk reads.
- Mixing units or time windows when comparing two sql query cost estimator results.
- Treating the default values as a recommendation instead of a starting point.
- Reporting a single number without the assumptions, range or measurement date behind it.
Pro tips for production code
- Calibrate milliseconds per cost unit on the same hardware and workload before quoting latency.
- Measure the dominant input before refining the model; the largest uncertainty deserves the most attention.
- Keep a short record of the inputs, result and date so future comparisons are meaningful.
- Validate the estimate with a second method — a benchmark, a bill or production telemetry.
- Pair this result with the related calculators (Index Size Estimator, Database Index Selectivity Calculator, Query Latency Calculator) for a complete picture.
Who Should Use This Calculator?
- ▸ Query plan comparison before adding an index.
- ▸ Explaining why a plan changed after a statistics refresh.
- ▸ Capacity review: turn sequential pages read into a defensible planning number.
- ▸ Design review: compare two architectures or configurations with the same assumptions.
- ▸ Incident follow-up: quantify the gap between the estimate and observed behaviour.
Related Programming Calculators
Keep going — every tool below links directly into this workflow.
People Also Search For
Tap a long-tail question to jump to the matching FAQ answer.
Frequently Asked Questions (29)
Long-tail answers: each question targets a real Google search about sql query cost estimator — click to expand.
Showing 29 of 29 answers.
Is SQL query cost measured in milliseconds?
What does the SQL Query Cost Estimator calculate?
What formula does the SQL Query Cost Estimator use?
What should I enter for sequential pages read?
What should I enter for random pages read?
What should I enter for rows examined?
What should I enter for sequential page cost?
What should I enter for random page cost?
What should I enter for cpu cost per row?
What should I enter for startup cost?
What should I enter for milliseconds per cost unit?
How do I interpret the SQL Query Cost Estimator result?
What units does the SQL Query Cost Estimator use?
What are common mistakes when calculating sql query cost estimator?
When should I use the SQL Query Cost Estimator?
How can I validate the SQL Query Cost Estimator result?
What is a worked example of the SQL Query Cost Estimator?
What related calculators should I use with the SQL Query Cost Estimator?
Is the SQL Query Cost Estimator free and private?
Can I use the SQL Query Cost Estimator for production planning?
How sensitive is the SQL Query Cost Estimator to sequential pages read?
How accurate is a database size estimate?
Should I use decimal or binary units for database storage?
Why does the estimated query cost differ from EXPLAIN?
What does a typical SQL Query Cost Estimator output look like?
How precise is the SQL Query Cost Estimator?
Does the SQL Query Cost Estimator include overhead?
How often should I re-run the SQL Query Cost Estimator?
What is the best first step after using the SQL Query Cost Estimator?
Resources & Authoritative References
Further reading
- PostgreSQL documentation — Official planner, index and storage documentation.
- Use The Index, Luke — Practical SQL indexing and query tuning guide.
- MySQL Reference Manual — InnoDB storage, indexing and optimization.
- SQLite documentation — Embedded database limits and query planning.
Authoritative sources
Was this calculator helpful?
Last updated: October 2026 · Free forever · No sign-up · Part of Programming Calculators at Atlascalcs.com · All math runs in your browser