Coletando Estatísticas do Catálogo Precisas, Incluindo Recursos de Estatísticas Avançados
Estatísticas de banco de dados precisas são críticas para otimização de consulta. Execute RUNSTATS operações de comando regularmente em quaisquer tabelas que sejam críticas para consultar o desempenho.
Você também pode querer coletar estatísticas sobre tabelas de catálogo do sistema, se um aplicativo consultar essas tabelas diretamente e se houver atividade de atualização de catálogo significativa, como a resultante da execução de instruções de linguagem de definição de dados (DDL). A coleta de estatísticas automática pode ser ativada para permitir que o servidor de dados Db2® execute automaticamente uma operação de comando RUNSTATS . A coleta de estatísticas em tempo real pode ser ativada para permitir que o servidor de dados Db2 forneça estatísticas ainda mais oportunas, coletando-as imediatamente antes de as consultas serem otimizadas.
RUNSTATS ON TABLE DB2USER.DAILY_SALES
WITH DISTRIBUTION AND SAMPLED DETAILED INDEXES ALLAs estatísticas de distribuição tornam o otimizador ciente de defasamento de dados. As estatísticas detalhadas do índice fornecem mais detalhes sobre a E/S necessária para buscar páginas de dados quando a tabela é acessada usando um índice em particular. A coleta de estatísticas detalhadas do índice usa tempo de processamento e memória consideráveis para tabelas grandes. A opção SAMPLED fornece estatísticas detalhadas do índice com quase a mesma precisão mas requer uma fração da CPU e da memória. Essas opções são usadas pela coleta de estatísticas automáticas quando um perfil estatístico não é fornecido para uma tabela.Para melhorar o desempenho da consulta, considere coletar estatísticas mais avançadas, como estatísticas do grupo de colunas ou estatísticas LIKE, ou criar visualizações estatísticas.
update db cfg for dbname using auto_stats_views onPara desativar esse recurso, emita o seguinte comando:update db cfg for dbname using auto_stats_views offrunstats on view view_name with distributionupdate db cfg for dbname using auto_sampling onAs estatísticas coletadas nem sempre são exatas. Além de fornecer acesso de dados mais eficiente, um índice pode ajudar a fornecer estatísticas mais precisas para colunas que muitas vezes são usadas na consulta predicados. Quando as estatísticas são coletadas para uma tabela e seus índices, os objetos de índice podem fornecer estatísticas precisas para as colunas de índice principais.
Como ativar a coleta automática de estatísticas do grupo de colunas
update db cfg for dbname using auto_cg_stats on
A coleta automática de estatísticas do grupo de colunas irá gerar um perfil descrevendo as estatísticas que precisam ser coletadas. Se um perfil de usuário não existir, a coleta de estatísticas de antecedente executará inicialmente uma descoberta automática de estatísticas do grupo de colunas esperadas dentro da tabela e configurará um perfil de estatísticas. Após a conclusão da descoberta, são reunidas estatísticas sobre a tabela usando o recurso de perfil de estatísticas existente. O conjunto de grupos de colunas descoberto é preservado nas descobertas subsequentes.
Se um perfil de estatísticas já estiver configurado manualmente, ele será usado como está e a descoberta não será realizada. O perfil de estatísticas gerado automaticamente pode ser usado juntamente com qualquer opção PROFILE do comando RUNSTATS . Se o perfil for atualizado usando a opção UPDATE PROFILE , qualquer descoberta adicional está bloqueada na tabela, mas o conjunto de estatísticas do grupo de colunas já configurado no perfil continuará sendo coletado automaticamente assim como com um manual RUNSTATS que inclui a opção USE PROFILE .
O comando UNSET PROFILE pode ser usado para remover o perfil de estatísticas para reiniciar o processo de descoberta.
update db cfg for dbname using auto_cg_stats offA desativação deste recurso impedirá qualquer descoberta adicional, mas os perfis de estatística persisirão e continuarão a ser usados. Se houver a necessidade de remover o perfil, use a opção UNSET PROFILE de RUNSTATS.