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

Collecter des statistiques avec options avancées (histogrammes, etc.)

Oracle

EXEC DBMS_STATS.GATHER_TABLE_STATS(
  ownname=>'HR', tabname=>'EMPLOYEE',
  estimate_percent=>DBMS_STATS.AUTO_SAMPLE_SIZE,
  method_opt=>'FOR ALL COLUMNS SIZE AUTO', degree=>4);

method_opt contrôle les histogrammes et degree le parallélisme. Utilisez LOCK_TABLE_STATS pour verrouiller les statistiques.

PostgreSQL

ALTER TABLE customer ALTER COLUMN city SET STATISTICS 500;
ANALYZE customer;

Cible d'échantillonnage par colonne ; default_statistics_target fixe la valeur par défaut globale.

MySQL

ANALYZE TABLE customer UPDATE HISTOGRAM ON city WITH 32 BUCKETS;

Prise en charge des histogrammes dans MySQL 8.0 ; utile sur les colonnes filtrées mais peu sélectives.

SQL Server

UPDATE STATISTICS dbo.customer WITH FULLSCAN;
-- Filtered statistics: CREATE STATISTICS ... WHERE ...

FULLSCAN est le plus précis ; utilisez SAMPLE sur les grandes tables. AUTO_UPDATE_STATISTICS pour les mises à jour automatiques.

MongoDB

// There are no manual statistics; the planner measures at runtime.
db.customer.getPlanCache().clear()

Hormis l'effacement d'un plan cache obsolète, aucune statistique manuelle n'est nécessaire.

Redis

# Not applicable.

Il n'y a ni statistiques ni optimiseur.

Elasticsearch

# There is no statistics gathering; refresh searchability:
POST <index>/_refresh

Les field data et doc values sont utilisés au moment de la requête ; force merge réduit le nombre de segments.

Ouvrir dans DBAtlas →