AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 19130
Accepted
Onion-Knight
Onion-Knight
Asked: 2012-06-13 07:16:52 +0800 CST2012-06-13 07:16:52 +0800 CST 2012-06-13 07:16:52 +0800 CST

Quando atualizar as estatísticas?

  • 772

Eu herdei um Planos de Manutenção que faz o seguinte:

  • Limpar dados antigos
  • Verifica a integridade do banco de dados
  • Executa backups de banco de dados e log de transações
  • Reorganiza nossos índices
  • Estatísticas de atualizações
  • Excluir backups antigos e arquivos do Plano de Manutenção

Do plano de manutenção de 23 minutos, a atualização das estatísticas leva impressionantes 13 minutos. Durante esse período de 13 minutos, o acesso ao banco de dados é bloqueado (ou pelo menos, a replicação desse banco de dados para os outros é pausada).

Minha pergunta é:

Quando devemos atualizar as estatísticas e por quê?

Este parece ser o tipo de coisa que devemos fazer com menos frequência do que todos os dias. Estou tentando nos tirar da mentalidade "só porque" de fazer manutenção desnecessária.

sql-server performance
  • 2 2 respostas
  • 111318 Views

2 respostas

  • Voted
  1. Best Answer
    Thomas Stringer
    2012-06-13T07:30:20+08:002012-06-13T07:30:20+08:00

    Se você não tiver a janela de manutenção para isso, atualizar as estatísticas diariamente provavelmente é um pouco exagerado. Especialmente se você tiver as Estatísticas de atualização automática ativadas para o banco de dados. Em sua postagem original, você disse que os usuários estão vendo uma degradação de desempenho devido a esse plano de manutenção. Não há outro momento para executar este plano de manutenção? Nenhuma outra janela? Vejo que seu plano abrange a reorganização de índices, quando você está reconstruindo índices? Quando essa operação acontece, as estatísticas são atualizadas automaticamente (desde que não esteja desativada para o índice).

    A frequência exata com que você deve atualizar as estatísticas depende muito de quanta modificação de dados seus índices e dados estão recebendo . Se houver muito pouca modificação ( INSERT, UPDATE, DELETE) nos dados, você poderá ter um agendamento menos frequente para o trabalho de atualização de estatísticas.

    Uma maneira de descobrir se suas estatísticas estão desatualizadas é observar os planos de execução e se as linhas estimadas diferem muito das linhas reais retornadas, isso é uma boa indicação de que o intervalo precisa ser aumentado. No seu caso, você está indo para o outro lado e um pouco de julgamento pode estar em ordem para você. Atualize as estatísticas semanalmente e, se você estiver começando a ver os sinais indicadores de estatísticas obsoletas, vá a partir daí.

    Se você estiver usando estatísticas de atualização automática para seu banco de dados, consulte esta referência para o limite de quando as estatísticas são atualizadas.

    • 29
  2. AmmarR
    2012-06-15T01:21:19+08:002012-06-15T01:21:19+08:00

    Quando atualizar as estatísticas?

    se e somente se o recurso de estatísticas de atualização automática não for bom o suficiente para suas necessidades. Quero dizer, se as estatísticas de criação automática e atualização automática estiverem ativadas e você estiver recebendo um plano de consulta ruim porque as estatísticas não são precisas ou atuais, pode ser uma boa ideia ter controle sobre a criação e atualização de estatísticas. mas se você estiver bem com o desempenho do servidor sql e os tempos de execução da consulta.

    então sugiro parar o comando Updates Statistics dos seus Planos de Manutenção

    a atualização de estatísticas é importante e útil 1. permite que o otimizador de consulta do SQL Server produza bons planos de consulta de forma consistente, mantendo os custos de desenvolvimento e administração baixos 2. As estatísticas são usadas pelo otimizador de consulta para estimar a seletividade das expressões e, portanto, o tamanho do intermediário e resultados finais da consulta. 3. Boas estatísticas permitem que o otimizador avalie com precisão o custo de diferentes planos de consulta e escolha um plano de alta qualidade


    Se quiser actualizar as Estatísticas manualmente deverá primeiro saber Quando as Estatísticas são actualizadas automaticamente

    Se o otimizador de consulta do SQL Server exigir estatísticas para uma coluna específica em uma tabela que passou por uma atividade de atualização substancial desde a última vez que as estatísticas foram criadas ou atualizadas, o SQL Server atualiza automaticamente as estatísticas por amostragem dos valores da coluna (usando estatísticas de atualização automática) . A atualização automática das estatísticas é acionada pela otimização da consulta ou pela execução de um plano compilado e envolve apenas um subconjunto das colunas referidas na consulta. As estatísticas são atualizadas antes da compilação da consulta se AUTO_UPDATE_STATISTCS_ASYNC estiver OFF

    aqui estão bons artigos que falam sobre quando as estatísticas de atualização são acionadas no servidor SQL

    1. do simple-talk Seção 13. Quando a atualização automática para estatísticas é acionada?
    2. support.microsoft Seção: Automatizando a determinação de Autostats
    3. Seção msdn.microsoft : Mantendo estatísticas no SQL Server 2008

    depois de saber quando as estatísticas são acionadas, isso ajudará você a decidir quando atualizar as estatísticas manualmente

    para saber mais sobre Estatística e seu efeito no desempenho eu recomendo BrentOzar e Kimberly em sqlskills muito bons blogs e blogueiros.

    • 26

relate perguntas

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Como determinar se um Índice é necessário ou necessário

  • Onde posso encontrar o log lento do mysql?

  • Como posso otimizar um mysqldump de um banco de dados grande?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como ver a lista de bancos de dados no Oracle?

    • 8 respostas
  • Marko Smith

    Quão grande deve ser o mysql innodb_buffer_pool_size?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    restaurar a tabela do arquivo .frm e .ibd?

    • 10 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Como selecionar a primeira linha de cada grupo?

    • 6 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve