postgresql.sequential_scans
Sequential scans initiatedDimensions:None
Interface Metrics (4)
Dimensions:None
Dimensions:None
Sources
Technical Annotations (37)
Configuration Parameters (2)
default_statistics_targetrecommended: 500cpu_tuple_costrecommended: 0.01CLI Commands (16)
EXPLAIN (ANALYZE) SELECT * FROM table WHERE column = 'value';diagnosticCREATE INDEX ON table_name(column_name);remediationexplain (analyze, buffers) SELECT latitude, longitude, id FROM cities WHERE country_code = 'CA';diagnostic\d citiesdiagnosticCREATE INDEX CONCURRENTLY ON cities (country_code);remediationALTER TABLE your_table ALTER COLUMN status SET STATISTICS 500;remediationCREATE INDEX idx_orders_status_created ON orders (status, created_at);remediationEXPLAIN ANALYZE SELECT o.id, o.total, c.name FROM orders o JOIN customers c ON c.id = o.customer_id WHERE o.created_at > '2026-01-01' AND o.status = 'completed';diagnosticEXPLAIN ANALYZE SELECT * FROM table_name WHERE column_name = 'value'diagnosticEXPLAIN ANALYZE query_returning_large_datasetdiagnosticCREATE INDEX idx_orders_customer ON orders(customer_id);remediationSELECT relname AS table, seq_scan, seq_tup_read, idx_scan, seq_tup_read / NULLIF(seq_scan, 0) AS avg_seq_tup FROM pg_stat_user_tables WHERE seq_scan > 0 ORDER BY seq_tup_read DESC LIMIT 20;diagnosticSELECT schemaname || '.' || relname AS table, seq_scan, idx_scan, n_live_tup, round(100.0 * seq_scan / NULLIF(seq_scan + idx_scan, 0), 2) AS seq_scan_pct FROM pg_stat_user_tables WHERE seq_scan > 1000 AND n_live_tup > 10000 ORDER BY seq_scan DESC;diagnosticSELECT datname, stats_reset FROM pg_stat_database;diagnosticSELECT relname, seq_scan, seq_tup_read / seq_scan AS tup_per_scan FROM pg_stat_user_tables WHERE seq_scan > 0;diagnosticSELECT schemaname, relname AS table_name, seq_scan, idx_scan, n_tup_ins AS inserts, n_tup_upd AS updates, n_tup_del AS deletes, n_dead_tup AS dead_tuples, last_vacuum, last_autovacuum FROM pg_stat_user_tables ORDER BY n_dead_tup DESC;diagnosticTechnical References (19)
Seq ScanconceptIndex ScanconceptRows Removed by FilterconceptEXPLAINcomponentCONCURRENTLYconcepthistogramconceptselectivityconceptcardinality estimatesconceptBitmap Index Scancomponentpg_stat_statementscomponentsequential scanconceptshared bufferscomponentwork memorycomponentWHERE predicateconceptpg_stat_user_indexescomponentpg_stat_user_tablescomponentpg_stat_databasecomponentseq_scancomponentidx_scancomponentRelated Insights (10)
Sequential scan instead of index scan causes 10-20x slowdownwarning
▸
Insufficient column statistics cause poor selectivity estimateswarning
▸
Sequential scan reads excessive rows due to missing indexwarning
▸
Missing or ineffective indexes cause sequential scans on large tableswarning
▸
Sequential scans consume CPU resources during row extraction phaseinfo
▸
Missing indexes force sequential scans on small result setswarning
▸
Large result sets make sequential scans optimal despite proper indexinginfo
▸
Missing indexes on WHERE clause columns cause full table scanscritical
▸
High sequential scan count may indicate missing indexes requiring query optimizationwarning
▸
High sequential scan to index scan ratio indicates missing indexeswarning
▸