DBAtlas · Atlas de operações de banco de dados

Atualizar estatísticas (para o otimizador)

Oracle

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

A tarefa AUTO geralmente as coleta à noite; colete manualmente quando houver um problema. Recomenda-se ESTIMATE_PERCENT=>AUTO_SAMPLE_SIZE.

PostgreSQL

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

O autovacuum faz isso automaticamente; um ANALYZE manual após uma carga de dados repentina gera planos precisos.

MySQL

ANALYZE TABLE customer;

Obtém um breve lock de leitura no InnoDB; em tabelas grandes, execute em períodos de baixa atividade.

SQL Server

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

FULLSCAN é o mais preciso, mas o mais caro; em tabelas grandes, pode-se preferir a amostragem (SAMPLE).

MongoDB

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

Em vez de estimativa de custo, o MongoDB executa testes reais (plan racing); estatísticas manuais não são necessárias.

Redis

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

A complexidade dos comandos é fixa; o desempenho depende da escolha da estrutura de dados.

Abrir no DBAtlas →