DBAtlas · Atlas d'exploitation des bases de données

Mettre à jour les statistiques (pour l'optimiseur)

Oracle

EXEC DBMS_STATS.GATHER_TABLE_STATS('HR', 'EMPLOYEE');
-- Whole schema: EXEC DBMS_STATS.GATHER_SCHEMA_STATS('HR');

La tâche AUTO les collecte généralement la nuit ; collectez-les manuellement en cas de problème. ESTIMATE_PERCENT=>AUTO_SAMPLE_SIZE est recommandé.

PostgreSQL

ANALYZE customer;
-- Both cleanup and analyze: VACUUM ANALYZE customer;

Autovacuum le fait automatiquement ; un ANALYZE manuel après un chargement massif de données donne des plans exacts.

MySQL

ANALYZE TABLE customer;

Pose un bref verrou en lecture sur InnoDB ; sur les grandes tables, exécutez-le en période de faible activité.

SQL Server

UPDATE STATISTICS dbo.customer WITH FULLSCAN;
-- Whole database: EXEC sp_updatestats;

FULLSCAN est le plus précis mais le plus coûteux ; sur les grandes tables, l'échantillonnage (SAMPLE) peut être préférable.

MongoDB

// There are no manual statistics; the planner measures at runtime.
// To clear a stale plan cache:
db.customer.getPlanCache().clear()

Au lieu d'une estimation de coût, MongoDB effectue des essais réels (plan racing) ; les statistiques manuelles ne sont pas nécessaires.

Redis

# Not applicable: Redis has no query optimizer / statistics.

La complexité des commandes est fixe ; les performances dépendent du choix de la structure de données.

Ouvrir dans DBAtlas →