sp_updatestats (Transact-SQL)

Aplica-se a:SQL ServerBanco 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 UPDATE STATISTICS (Transact-SQL). 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 opção RESAMPLE 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 informa que as estatísticas foram atualizadas em todas as tabelas.

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

Para tabelas baseadas em disco, atualiza as modification_counter estatísticas com base nas informações na exibição de catálogo sys.dm_db_stats_properties, sp_updatestats atualizando estatísticas em que pelo menos uma linha foi modificada. As estatísticas em tabelas otimizadas para memória são sempre atualizadas ao executar sp_updatestatso . 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, pode não causar uma recompilação, sp_updatestats 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.

Para bancos de dados com um nível de compatibilidade abaixo de 90, a execução sp_updatestats não preserva a configuração NORECOMPUTE mais recente para estatísticas específicas. Para bancos de dados com um nível de compatibilidade de 90 ou superior, sp_updatestats preserva a opção NORECOMPUTE mais recente 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 SQL do Azure e a partir do SQL Server 2022 (16.x).

Permissões

Para o 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 o Adaptive Index Defrag para gerenciar automaticamente 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 reconstruir ou reorganizar um índice de acordo com seu nível de fragmentação, entre outros parâmetros, e atualizar estatísticas com um limite linear.