Partilhar via


sp_updatestats (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure

É executado UPDATE STATISTICS em todas as tabelas internas e definidas pelo usuário no banco de dados atual.

Para obter mais informações sobre UPDATE STATISTICSo , consulte ATUALIZAR ESTATÍSTICAS. Para obter mais informações sobre estatísticas, consulte Estatísticas.

Convenções de sintaxe de Transact-SQL

Sintaxe

sp_updatestats [ [ @resample = ] 'resample' ]

Valores do código de retorno

0 (sucesso) ou 1 (falha).

Argumentos

@resample [ = ] 'reamostragem'

Especifica que sp_updatestats usa a RESAMPLE opção da instrução UPDATE STATISTICS . Se resample não for especificado, sp_updatestats atualiza as estatísticas usando a amostragem padrão. O resample argumento é varchar(8) com um valor padrão de NO.

Comentários

sp_updatestats executa UPDATE STATISTICS, especificando a ALL palavra-chave, em todas as tabelas internas e definidas pelo usuário no banco de dados. sp_updatestats exibe mensagens que indicam seu progresso. Quando a atualização é concluída, ela relata que as estatísticas são atualizadas para todas as tabelas.

sp_updatestats Atualiza estatísticas sobre índices não clusterizados desabilitados e não atualiza estatísticas sobre índices clusterizados desabilitados.

Para tabelas baseadas em disco, sp_updatestats atualiza as modification_counter estatísticas com base nas informações na exibição do catálogo sys.dm_db_stats_properties , atualizando as estatísticas em que pelo menos uma linha é modificada. As estatísticas em tabelas com otimização de memória são sempre atualizadas durante a execução do sp_updatestats. Portanto, não execute sp_updatestats mais do que o necessário.

sp_updatestats pode disparar uma recompilação de procedimentos armazenados ou outro código compilado. No entanto, sp_updatestats pode não causar uma recompilação, se apenas um plano de consulta for possível para as tabelas referenciadas e os índices nelas. Uma recompilação será desnecessária nesses casos mesmo que as estatísticas sejam atualizadas.

sp_updatestats preserva a opção mais recente NORECOMPUTE para estatísticas específicas. Para obter mais informações sobre como desabilitar e reabilitar atualizações de estatísticas, veja Estatísticas.

Ao restaurar um banco de dados para o SQL Server 2022 (16.x) de uma versão anterior, você deve executar sp_updatestats no banco de dados. Isso está relacionado à configuração de metadados adequados para o recurso de descarte automático de estatísticas introduzido no SQL Server 2022 (16.x). O recurso de descarte automático está disponível no Banco de Dados SQL do Azure, na Instância Gerenciada de SQL do Azure e a partir do SQL Server 2022 (16.x).

Permissões

Para SQL Server, você deve ser o proprietário do banco de dados (dbo) ou um membro da função de servidor fixa sysadmin .

Para o Banco de Dados SQL do Azure, você deve ser membro da função de banco de dados fixa db_owner .

Exemplos

O exemplo a seguir atualiza as estatísticas de todas as tabelas do banco de dados:

USE AdventureWorks2022;
GO
EXEC sp_updatestats;

Índice automático e gerenciamento de estatísticas

Use soluções, como Adaptive Index Defrag, para gerenciar de forma automática a desfragmentação do índice e as atualizações de estatísticas para um ou mais bancos de dados. Esse procedimento escolhe automaticamente se deseja recompilar ou reorganizar um índice de acordo com o nível de fragmentação, entre outros parâmetros, e realizar a atualização de estatísticas com um limite linear.